Linux使用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
!
小结:把以上脚本另存为文件加入到crontab中即可实现ftp自动上传、下载文件。
注解:

  1. -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)

  2. << 是使用即时文件重定向输入。

  3. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

1ftp -n 10.0.0.252 <<FTP 2user "$2" "$3" //$2 用户名 ¥3 密码 3cd "$UPLOADDIR" //打开要上传的目录 4prompt //多文件上传 5mkdir ZED-3 //创建目录 6mkdir NEUTRAL 7mkdir DCN 8lcd "$WORKDIR/RPMS" //打开本地的目录 9put Common.CheckSum.txt //上传文件 10put asg-codec-*.rpm 11put asg-ha*.rpm 12put asg-music*.rpm 13put asg-voice-prompt-cn*.rpm 14cd ZED-3 15put ZED-3.CheckSum.txt 16put asg*_upgrade.i386.rpm 17lcd "$WORKDIR/RPMS_NEUTRAL" 18cd ../NEUTRAL 19put NEUTRAL.CheckSum.txt 20put asg*_upgrade_neutral.i386.rpm 21lcd "$WORKDIR/RPMS_DCN" 22cd ../DCN 23put DCN.CheckSum.txt 24put asg*_upgrade_dcn.i386.rpm 25lcd "$WORKDIR" 26bye 27FTP 28 29

代码交流 2021