UNIX/linux系统下FTP自动上传文件脚本

方法一: Expect 实现交互

UNIX 窗口中 输入以下命令:

expect ftplinux.txt 10.0.15.22 ftplinux.txt


ftplinux.txt 中内容如下:
--开始-----

spawn ftp [lindex $argv 0]
expect "Name(*):"
send "ftp/r"
expect "Password:*"
send "hell05a/r"
expect "ftp>"
send "binary/r"
expect "ftp>"
send "hash/r"
expect "ftp>"
send "put [lindex $argv  1]/r"
expect "* Transfer complete."
send "exit/r"

-----结束----
可将 文件ftplinux.txt 上传到对方FTP默认目录下

方法二: ftp 直接实现交互

FTP自动登录批量下载文件
 
  从ftp服务器192.168.1.171上的/home/data 到本地的/home/databackup
---建立一个文件 ftp.ssh  命令: vi ftp.ssh
---开始----- 
!/bin/bash
ftp -v -n 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
----结束-----------
在命令行输入: ./ftp.ssh


  FTP自动登录批量上传文件
 
  从ftp服务器192.168.1.171上的/home/data 到本地的/home/databackup
---建立一个文件 ftp.ssh  命令: vi ftp.ssh
---开始----- 
-----开始---- 
#!/bin/bash
ftp -v -n 192.168.1.171 << END
user guest 123456
binary
hash
cd /home/data
lcd /home/databackup
prompt
mput *
bye
END
---结束-----
在命令行输入: ./ftp.ssh

----设定定时运行,命令行输入:
crontab -e
然后在文件中设定 时间 和文件ftp.ssh的路径
这样就可以自动调用ftp.ssh文件运行上传程序。

----------SFTP 批量自动上传方法

# !/ bin / bash
local_dir =/ path /
target_dir =/ path /
user = user
password = password
serverip = serverip
lftp - u $user,$password sftp: // $serverip <<END_SFTP l
cd $local_dir
cd $target_dir
mput *
bye
END_SFTP

猜你喜欢

转载自blog.csdn.net/rizhinan/article/details/5341634