Shell sftp或ftp传输的ssh服务器交互

例1:
-n禁止第一次连接的时候自动登陆,即不使用.netrc文件;
-i 在多个文件传输期间关闭交互提示,相当于FTP中prompt命令关闭;

#!/bin/bash 
ftp -i -n 192.168.167.187 << EOF
user hzc 123456 
pwd 
cd test 
pwd 
close 
bye 
EOF

例2:
#这条语句将从远程主机的  /var/www/fuyatao/目录下将 index.php 下载到本地  /home/fuyatao/目录下。
sftp>get /var/www/fuyatao/index.php  /home/fuyatao/ 

#这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/


例3:sftp的密钥连接
#!/bin/sh
sftp remote_user@remote_host << EOF
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
EOF


例4:批模式
cd /home/remote_user/data/
lcd /home/local_user/data/
-get 20050201 .
-get 20050202 .
-get 20050203 .
-get 20050204 .
-get 20050205 .
quit
这里存为: sftp_cmds.txt
说明: get命令前加一个"-"以防止其执行错误时sftp执行过程被终止.
以下为脚本示例:
#!/bin/sh
sftp -b ./sftp_cmds.txt remote_user@remote_host

猜你喜欢

转载自qnzhl.iteye.com/blog/2201395