1.scp 不能容忍網絡閃斷,因此一旦出現網絡閃斷,那么scp 命令就會異常退出
sftp 可以容忍網絡閃斷,而且具備斷電續傳,因此sftp 適用於網絡更慢的環境,
2.
sftp 是一個交互式文件傳輸程式。它類似於 ftp, 但它進行加密傳輸,比FTP有更高的安全性。下邊就簡單介紹一下如何遠程連接主機,進行文件的上傳和下載,以及一些相關操作。
舉例,如遠程主機的 IP 是 202.206.64.33或者是域名www.hebust.edu.cn,用戶名是 fyt ,在命令行模式下:sftp fyt@202.206.64.33或者 fyt@www.hebust.edu.cn。回車提示輸入密碼。進入提示符
sftp>
如果登陸遠程機器不是為了上傳下載文件,而是要修改遠程主機上的某些文件。可以
ssh fyt@202.206.64.33 (其實sftp就是ssh 的一個程式。)
sftp> get /var/www/fuyatao/index.php /home/fuyatao/
這條語句將從遠程主機的 /var/www/fuyatao/目錄下將 index.php 下載到本地 /home/fuyatao/目錄下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
這條語句將把本地 /home/fuyatao/downloads/目錄下的 linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/ 目錄下。
你如果不知道遠程主機的目錄是什么樣, pwd命令可以幫您查詢遠程主機的當前路徑。查詢本機當前工作目錄 lpwd.
改變路徑可以用cd ,改變本機路徑可以用 lcd;
ls rm rmdir mkdir 這些命令都可以使用。同理調用本機都是加 l , 即 lls lrm.
要離開sftp,用exit 或quit、 bye 均可。詳細情況可以查閱 man sftp.
如果覺得在命令行模式下不太方便,可以 sudo apt-get install gftp。在圖形界面下操作就簡便多了。
3.sample
expect 與sftp 的結合
unix 配置自動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文件運行上傳程序。
ref
http://blog.csdn.net/rizhinan/article/details/5341634