用FTP命令实现批量文件传输
不同机器之间在传输文件的时候,经常需要用到ftp。FTP(File Transfer Protocol),就是文件传输协议的简称。关于ftp的原理或许很多人都不了解,但是用ftp进行文件的传输却是很多人有过的经历。
在使用ftp进行本地机器和ftp服务器间进行文件传输的时候,常用的工具有cuteftp,leapftp,还有filezilla。前两个软件或许大多数人都比较熟悉,在破解软件的网络传输类经常是排在前列的。filezilla是开源的ftp软件,我现在用的是这个软件,据我的体验,filezilla的用户界面和传输速度非常的优秀。
如果不是很频繁的进行和ftp服务器直接的文件传输,浏览器其实就可以进行访问ftp服务器。一般情况下,在IE浏览器或者firefox浏览器输入ftp地址就可以匿名访问服务器。如果是非匿名的服务器,浏览器有可能会弹出输入用户名和密码的对话框。实际上,我们可以在一次输入ftp服务器,用户名和密码。比如输入ftp://username:[email protected]就可以访问盘古的空间。
当然,还有时候,如果我们使用的是linux,或者安装了cygwin,如果要访问ftp服务器,只要在shell命令行模式就可以访问ftp服务器。详细的访问方式就是:$:ftp -n host #禁止匿名访问ftp服务器。可以增加-v选项显示ftp服务器提示信息。 $:user user_name passwd #完成以上操作后,输入user,后面紧跟ftp服务器的用户名和密码。
这样就登录到ftp服务器上面,可以进行一些上传和下载的任务了。
别看命令行模式功能似乎太少,而且界面很不友好。其实在批量工作的时候,命令行模式才是王道,图形界面对于自动化和批量工作就是累赘,如果你每天要点几百次鼠标,你就会发现键盘的强大了。比如这里就有一小段shell脚本,可以实现自动下载文件。
#!/bin/sh #save as FtpPut.sh F="xxxx.ftp" echo "open 192.168.7.51 21" > $F #ip地址和端口改为对应的ftp服务器地址和端口 echo "user username passwd" >> $F #username和passwd也一样 echo "bin" >> $F echo "cd /home/xxx/" >> $F #进行操作的ftp服务器路径 echo "mput $1" >> $F echo "bye" >> $F ftp -i -in < $F rm -rf $F将代码令存为FtpPut.sh后,只要在命令行下面执行
$:FtpPut.sh a.txt就可以实现将a.txt文件上传到ip地址为192.168.7.51,端口为21,的ftp服务器/home/xxx/路径下面。这段代码稍作修改,比如将mput改为mget就可以实现自动下载。
参考:Linuxsir
Comments