`
kankan1218
  • 浏览: 276716 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

    博客分类:
  • perl
阅读更多
#!/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");
#	
#}


分享到:
评论

相关推荐

    SSH练习项目

    4. **文件传输**:通过SSH,用户可以使用`scp`或`sftp`命令安全地传输文件到远程服务器,这些命令都基于SSH协议,保证了传输过程的安全性。 在"SSH练习项目"中,MySSH_Test可能包含了实现SSH功能的源代码、配置文件...

    SSH CRUD Demo

    5. **脚本编程**: 为了实现自动化和批量处理,SSH CRUD操作通常会结合使用脚本语言,如bash、Python或Perl。这些脚本可以远程执行命令,执行一系列的CRUD操作。 6. **文件传输**: SSH也常用于安全地传输文件,如...

    SSH2做的一个批量操作用--List

    标题中的“SSH2做的一个批量操作用--List”指的是使用SSH2(Secure Shell version 2)协议进行批量执行命令或脚本的操作。SSH2是一种安全的网络协议,用于在远程服务器上执行命令、传输文件等操作,常用于系统管理、...

    secure crt用于SSH登录

    5. **文件传输**:内置的SCP和SFTP客户端允许用户安全地在本地和远程主机之间传输文件。 6. **公共密钥认证**:除了传统的密码认证外,SecureCRT还支持RSA/DSA/ECDSA等公钥认证方式,提高安全性。 7. **终端仿真**...

    ssh-student.zip_book_ssh

    SSH不仅用于远程登录,还可以执行命令、复制文件(通过scp或rsync)、端口转发等。 **学生信息管理系统** 在"ssh-student"这个场景中,SSH可能被用来实现一个学生信息管理系统。系统可能包含以下功能: 1. **增**:...

    服务器远程获取数据

    在IT行业中,远程获取数据是常见的操作,尤其在服务器管理和应用程序开发中。这一过程涉及到从一个服务器通过网络向另一个服务器请求并接收数据。本文将详细探讨这个主题,重点关注使用脚本进行远程数据获取的方法。...

    perl-Net-OpenSSH

    这个模块使得Perl程序员能够方便地在脚本中实现SSH连接、文件传输、远程命令执行等操作,而无需直接调用ssh命令行工具。在了解这个模块之前,我们先简单了解一下Perl和OpenSSH。 Perl是一种高级的、通用的、解释型...

    mysql mha0.58 rhel7依赖包

    2. **Net::SSH::Perl**:用于通过SSH协议进行远程操作,如在不同的服务器之间执行命令和传输文件,这是MHA进行故障检测和切换时必不可少的。 3. **Net::SCP::Expect**:基于Net::SSH::Perl的扩展,用于SCP(Secure ...

    SecureCRT.rar

    这款软件支持多种协议,包括SSH(Secure Shell)、Telnet、RDP(Remote Desktop Protocol)等,使得用户可以安全地连接到远程服务器进行各种操作。 SecureCRT的核心功能在于其强大的终端仿真,它支持VT100、VT220、...

    winscp.rar

    3. **SCP协议**:SCP是基于SSH的文件传输协议,通常用于快速复制文件到远程主机。WinSCP同时支持SCP,提供了一种简单的方式来执行文件的无痛迁移。 4. **图形化界面**:WinSCP的用户界面设计友好,采用了拖放操作,...

    SecureCRT网站连接工具

    它提供了安全的远程访问功能,支持多种协议,包括SSH(Secure Shell)、Telnet、RDP(Remote Desktop Protocol)等,使得用户可以安全地连接到远程服务器进行各种操作。 1. SSH连接:SecureCRT的主要特性之一是支持...

    SecureCRT.zip

    SecureCRT内置了文件传输工具,支持SFTP(Secure File Transfer Protocol)和SCP(Secure Copy),允许用户在本地与远程主机之间安全地传输文件。这一特性尤其对于需要频繁进行文件操作的开发者和系统管理员来说,...

    SecureCRT 连接工具

    11. 客户端/服务器模式:SecureCRT不仅可以用作客户端进行远程连接,还可以作为服务器端接收连接请求,实现双向通信。 12. 网络诊断:内置的网络诊断工具,如ping、traceroute等,帮助用户检查网络连通性和延迟问题...

    SecureCRT 终端仿真器

    4. **教学演示**:在教育领域,教师可以利用SecureCRT进行远程教学,展示操作步骤,提高教学效果。 **三、SecureCRT的配置与使用** 配置SecureCRT通常涉及以下几个步骤: 1. **安装与激活**:下载并安装对应平台...

    离线升级openssh ,升级目标版本openssh 7.8

    8. 验证升级:通过`ssh -V`命令查看OpenSSH的版本信息,确认已成功升级到7.8。 三、openssl的升级与配合 OpenSSL是OpenSSH的核心组件,提供加密算法支持。在升级OpenSSH的同时,也应考虑升级OpenSSL以保持一致性。...

    SecureCRT工具.zip

    内置的SCP(Secure Copy)和SFTP(Secure File Transfer Protocol)功能使得在本地和远程主机之间安全地传输文件变得简单便捷。 **6. 会话选项** 用户可以根据不同的服务器环境配置不同的会话选项,包括端口、身份...

    xshell7和xftp免费版,学校教育版,亲测可用

    1. **多协议支持**:Xshell7不仅支持SSH,还兼容其他多种网络协议,这使得用户能够连接到各种类型的远程设备,进行不同系统的操作。 2. **多标签管理**:用户可以同时开启多个会话,并在不同的终端之间快速切换,极...

    unix一些命令.pdf

    * ssh/scp:远程登录/文件传输。 * ipconfig/ifconfig:查看/设置网络接口信息。 * netstat:显示当前系统的网络连接状态。 5. 安全命令:包括身份验证、访问控制、加密等命令。 * sudo:以超级用户身份执行命令。...

    WinSCP.rar

    其中,SFTP和SCP是基于SSH协议的,提供了数据加密和身份验证,确保了文件传输的安全性。 2. **图形化用户界面**:WinSCP提供了一个直观且易于使用的界面,用户可以通过拖放操作来上传、下载或移动文件,与Windows...

    嵌入式开发终端仿真程序

    此外,SecureCRT还支持文件传输功能,可以通过SCP(Secure Copy)或SFTP(Secure File Transfer Protocol)协议安全地在本地主机和远程设备之间传输文件。这对于更新固件、部署应用程序或交换日志文件至关重要。 在...

Global site tag (gtag.js) - Google Analytics