用putty实现远程文件批量传输

  • Posted on
  • by

为了实现在本地的windows和远程的unix/linux之间进行批量文件传输,可以在unix/linux下,通过samba将unix/linux的硬盘设置为共享,这种办法的缺点是设置samba时,需要unix/linux管理员的权限。如果unix/linux设置成ftp服务器,也可以通过windows的ftp命令访问,这种办法的缺点是ftp命令只能传输单个文件,不能传输文件夹,因此需要在传输前后进行打包和解包工作。除了这两种办法,如果有unix/linux的ssh登陆权限,还可以通过putty进行远程文件传输。

Putty是免费的绿色的,windows下面的SSH客户端,除了可以进行远程登录,putty所带的pscp程序还可以实现远程文件和文件夹传输。pscp是命令行客户端工具,命令行工具的优点在于简单,便于调用,和其他的工具,比如宏,结合起来,就可以实现在本地和远程机器之间批量的文件传输。

pscp的一些常用选项包括:

-r      传输文件夹
-l 输入用户名
-pw 输入密码
-1 -2 强制使用某种版本的SSH协议
-C 启用压缩
-sftp 强制使用sftp协议
-scp 强制使用scp协议

如果不考虑安全性,而更重视传输速度,SSH-1相对SSH-2对cpu的负载要小,SCP协议一般比SFTP协议传输得更快。

比如以下命令就可以实现以用户名username,密码passwd登陆ip为10.11.44.11的机器,并且把远程机器/data/下面的putty文件夹下载到本地的ftp目录:

pscp -r -sftp -l  username -pw passwd 10.11.44.11:/data/putty "C:\data\My Documents\ftp"
把命令写到批处理文件中
set PATH=C:\data\My Documents\IAR_review\review\ftp\putty     %Set PATH
pscp -r -sftp -l username -pw passwd 10.11.44.11:/data/putty "C:\data\My Documents\ftp"
更进一步,还可以通过宏生成这个批处理文件,从而将文件传输的命令集成到工作流程中。

例子:

putty_batch.xls