天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

linux使用Shell脚本来实现FTP的自动上传下载

2010-1-18CFAN整理佚名
操作系统:linux
说明:使用了expect,参数为ftp服务器地址和要下载的文件名
参数:lindex $argv 0 读取ftp服务器ip地址
      lindex $argv 1 读取要下载的文件名
编辑:
#vi ftp.sh
spawn ftp [lindex $argv 0]
expect "Name (*):"
send "anonymous\r"
expect "Password:*"
send "\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "hash\r"
expect "ftp>"
send "get [lindex $argv 1]\r"
expect "* Transfer complete."
send "exit\r"
执行方法:expect ftp.sh 服务器ip地址 文件名称
         (expect ftp.sh 192.168.0.1 filename.txt )

扩展:可以根据需要把用户名和密码也作为参数输入里边,这个根据个人需求去做


使用Shell脚本来实现FTP的自动上传下载

1. FTP自动登录批量下载文件。


#####从ftp服务器上的/home/data 到 本地的/home/databackup####

#!/bin/bash

ftp -n<<!

open 192.168.1.171

user guest 123456

binary

cd /home/data

lcd /home/databackup

prompt

mget *

close

bye

!

2. FTP自动登录上传文件。

####本地的/home /databackup to ftp服务器上的/home/data#### #!/bin/bash ftp -n<<! open 192.168.1.171 user guest 123456 binary hash cd /home/data lcd /home/databackup prompt mput * close bye !


3. FTP自动登录下载单个文件。

####ftp服务器上下载/home /data/a.sh to local /home/databackup#### #!/bin/bash ftp -n<<! open 192.168.1.171 user guest 123456 binary cd /home/data lcd /home/databackup prompt get a.sh a.sh close bye !

4. FTP自动登录上传单个文件。

####把本地/home /databachup/a.sh up ftp /home/databackup 下#### #!/bin/bash ftp -n<<! open 192.168.1.171 user guest 123456 binary cd /home/data lcd /home/databackup prompt put a.sh a.sh close bye !

使用.netrc文件方式自动登录


在用户目录下下建.netrc的文件
.netrc文件的内容如下:
machine host2 :host2作为登陆用的主机名
login username :ftp用户名
password     userpwd : host2用户的口令
macdef init :定义一个名为init的宏,它将在自动注册进程的最后被执行
bin :文件以二进制传输
lcd /backup :进入本地目录/backup
cd /pub :进入远程主机目录/pub
mput :将/backup目录下的所有文件传输至远程主机
bye :退出ftp
并修改文件属性:$chmod 600 .netrc即该文件只能被该用户访问

本文来源:CFAN整理 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行