perl ssh scp 操作远程机器进行验证


#!/usr/bin/perl
use strict;
use FindBin qw($Bin);

my $websiteName = $ARGV[0];

if (!$websiteName){
die "you need to input the website name as a parameter,run it like this:validationOnremoteserver.pl zeel_jp\n";
}

# ALLOW_SPACE_AT_LEAST = xxG
my $ALLOW_SPACE_AT_LEAST = 20;
my $local_feedPath = "/home/kankan1218/sourcecode/data/$websiteName/feed";
my $local_validator_result_path = '/home/kankan1218/validator_result';

my $remoteserver_temp_dir_path = "/home/kankan1218/validator/$websiteName";
my $remoteserver_validatorPath = '/home/kankan1218/validator.jar';
my $javaPath = '/usr/java/jdk/bin/java';

eval {

# disk useage information
my $dfInfo = `ssh kankan1218\@ss-remoteserver "df -h"`;

# when remoteserver's space is not enough,exit
if ( $dfInfo =~ m/\d+G\s+\d+G\s+(\d+)G.*?\/\n/ ) {
my $AvailSpace = $1;
if ( $AvailSpace < $ALLOW_SPACE_AT_LEAST ) {
print "remoteserver's space is not enough\n";
exit;
}
}
else {
print "get AvailSpace failed\n";
exit;
}

if ( -e $local_feedPath ) {
# before copy ,empty unuseful folder
system("ssh kankan1218\@ss-remoteserver rm -rf $remoteserver_temp_dir_path");

# make dir on remoteserver
# -p means
# &makeRemoteDir($remoteserver_temp_dir_path);
system("ssh kankan1218\@ss-remoteserver mkdir -p $remoteserver_temp_dir_path");

if ( not -e $local_validator_result_path ) {
&makeDir($local_validator_result_path);
}

#copy feed dir from local to remoteserver
system("scp -r $local_feedPath kankan1218\@ss-remoteserver:$remoteserver_temp_dir_path");

#do validator
my $resutPath = "$remoteserver_temp_dir_path/$websiteName.result";
my $feedFilePath = "$remoteserver_temp_dir_path/feed/$websiteName.xml";
system("ssh kankan1218\@ss-remoteserver '$javaPath -jar $remoteserver_validatorPath $feedFilePath >$resutPath'");

#copy result from remoteserver to local
system("scp kankan1218\@ss-remoteserver:$remoteserver_temp_dir_path/$websiteName.result $local_validator_result_path ");

# delete feed dir
system("ssh kankan1218\@ss-remoteserver rm -rf $remoteserver_temp_dir_path");

}
else {
print "feedPath on local doesn't exist:$local_feedPath\n";
exit;
}
};
if ($@) {
print "running validator of $websiteName failed:$@\n";
}
else {
print "running validator of $websiteName successfully end,the validator result is in $local_validator_result_path\n";
}

sub makeDir {
my $path = shift;
my $filename;
$path =~ s/\\/\//g;

my @folder = split( '/', $path );
my $dir;
foreach my $folder (@folder) {
$dir .= $folder . '/';
if ( not -e $dir ) {
mkdir( $dir, 0777 );
}
}
return 1;
}

#sub makeRemoteDir {
#
# system("scp $Bin/makeDir.pl kankan1218\@ss-remoteserver:~");
# # execute makeDir.pl on remoteserver to make temp dir
# system('ssh kankan1218\@ss-remoteserver "perl ~/makeDir.pl $remoteserver_temp_dir_path"');
# # delete makeDir.pl
# system("ssh kankan1218\@ss-remoteserver rm ~/makeDir.pl");
#
#}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值