实现自动FTP

     因为开发平台与测试平台不是同一机器,所以要经常用FTP传输东西,不过每次都手工进行FTP太麻烦了,这样找了一下自动FTP的方法以记之。

     本来想用一个输入重定向的方法来代替手工输入 形式如:ftp < ftp.in 结果总是登陆失败,原尚不十分明确。所以在网上搜了另一个方法:netrc。

 

在自己的home目录下建立一个权限600,名为.netrc的文件,内容是:
machine 192.168.0.1 login test password test
这样以后你每次ftp 192.168.0.1的时候,系统都会帮你以用户名test,密码test登录。
利用这个特征可以实现自动ftp。
例如你想要每天5:00到192.168.0.1机器上面获得/test目录下的文件test.txt,可以这么做:
建立一个文件ftp_cmd,内容为:
cd test
get test.txt
bye
然后使用crontab -e设置定时任务:
0 5 * * * ftp 192.168.0.1 < ftp_cmd


.netrc的一个范例:

machine 192.168.0.82 login abc password abc123
macdef init
 binary
 bell
 hash
 prompt
 !clear
 mget *
 !clear
 bye


      该文件的作用是为FTP自动注册192.168.0.82服务器定义相应的账号与口令,并定义一个宏init。init宏的工作过程是:将文件传输格式类 型设为二进制(binary);在每个文件传输结束后响铃以提醒用户(bell);在文件传输过程中显示传输进度(hash);关闭交互提示开关 (prompt),以便后继的“mget *” 操作(获取远方服务器当前工作目录下的所有文件)能自动进行;在“mget *”操作的前后,执行“!clear”清屏;最后执行“bye”退出FTP。注意,上述.netrc文件应以空行结束,因为文件中定义了一个宏,而宏的定 义必须以空行结束。

       可以定义一些常用的“宏”。一个宏实际上就是用户预先定义的一组FTP命令,执行一个宏等价于连续自动执行这一组命令。如果宏的名字为“init”,那么在FTP注册的最后一步完成后将自动执行init宏。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值