linux下ftp自动登录的实现方法参考

发布时间:2019-07-29编辑:脚本学堂
本文介绍下,在Linux系统中,实现ftp的自动登录的方法,有需要的朋友,参考下吧。

系统:linux
说明:使用了expect,参数为ftp服务器地址和要下载的文件名
参数:lindex $argv 0  读取ftp服务器IP地址
     lindex $argv 1  读取要下载的文件名
编辑:
 

复制代码 代码示例:
#vi ftp.sh
spawn ftp [lindex $argv 0]
expect "Name (*):"
send "anonymousr"
expect "Password:*"
send "r"
expect "ftp>"
send "binaryr"
expect "ftp>"
send "hashr"
expect "ftp>"
send "get [lindex $argv 1]r"
expect "* Transfer complete."
send "exitr"
 

执行方法:expect ftp.sh 服务器ip地址  文件名称
        (expect ftp.sh 192.168.0.1 filename.txt )
 
扩展:可以根据需要把用户名和密码也作为参数输入。
 
附,实现FTP的自动上传下载的shell/ target=_blank class=infotextkey>shell脚本实例。
1,FTP自动登录批量下载文件。
 

复制代码 代码示例:
#从ftp服务器上的/home/data 到 本地的/home/databackup
#!/bin/bash
ftp -n<<!
open 192.168.8.66
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
!
 

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

复制代码 代码示例:
#本地/home/databackup to ftp服务器/home/data
#!/bin/bash
#by www.jb200.com
ftp -n<<!
open 192.168.8.66
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.8.66
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
#by www.jb200.com
ftp -n<<!
open 192.168.8.66
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即该文件只能被该用户访问。