傳輸工具sftp使用詳解
阿新 • • 發佈:2019-01-01
SFTP是Secure File Transfer Protocol的縮寫,安全檔案傳送協議,它是一個互動式檔案傳輸程式。它類似於 ftp, 但它進行加密傳輸,比FTP有更高的安全性,並且支援斷點續傳。
SFTP 為 SSH的一部份,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全檔案傳輸子系統,SFTP本身沒有單獨的守護程序,它必須使用sshd守護程序(埠號預設是22)來完成相應的連線操作,所以從某種意義上來說,SFTP並不像一個伺服器程式,而更像是一個客戶端程式。SFTP同樣是使用加密傳輸認證資訊和傳輸的資料,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。
[ [email protected] opt]# sftp --help
usage: sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]
[-o ssh_option] [-P sftp_server_path] [-R num_requests]
[-S program] [-s subsystem | sftp_server] host
sftp [[email protected]]host[:file ...]
sftp [[email protected] ]host[:dir[/]]
sftp -b batchfile [[email protected]]host
2.2 連線引數介紹-1:指定使用協議版本1。
-C:啟用壓縮。
-v:提高登入水平(列印更多的debug資訊)。
-B:指定sftp傳輸使用的快取大小,預設值為32768bytes。
-b:通過指定指令碼,呼叫指令碼命令,而不是在shell命令列輸入命令。
-F:設定一個可變動的使用者配置給ssh.這個選項直接會被傳遞到ssh(1),如[[email protected] tmp]# sftp -F /tmp/test
-o:指定配置資訊,如[[email protected] /]# sftp -o Port=22 [email protected]
-P:Connect directly to a local sftp server (rather than via ssh(1)). This option may be useful in debugging the client and server.
-R:指定同一時刻有多少請求,預設為64。增加該引數可以輕微的提高傳輸速度,不過會佔用更多的記憶體。
-S:指定用於加密連線的程式,如ssh。
-s:subsystem | sftp_server
Specifies the SSH2 subsystem or the path for an sftp server on the remote host. A path is useful for using sftp over protocol version 1, or when the remote sshd(8) does not have an sftp subsystem configured.
2.3 sftp登入方式
sftp [[email protected]]host[:dir[/]]:預設情況下登入到遠端的/root目錄。指定目錄的話,如/opt,則登入到遠端/opt目錄
例如:
[[email protected] /]# sftp [email protected]:/opt
sftp [[email protected]]host[:file ...]:直接下載遠端檔案到本地例如:
[[email protected] /]# sftp [email protected]:/opt/testfile.txt
3.1 sftp登陸後,通過help命令檢視使用方法
sftp> help
可用命令:
bye 退出sftp
cd path 更改遠端路徑,如sftp> cd /opt
chgrp grp path 將檔案“path”的組更改為“group”
chmod mode path 將檔案“path”的許可權更改為“mode”
chown own path 將檔案“path”的屬主更改為“owner”
df [-hi] [path] 顯示當前路徑或系統檔案路徑的統計資訊,如空間使用情況及inode(索引節點)使用情況,如sftp> df -h或df -i。inode介紹可參考我其它文章【http://blog.csdn.net/jesseyoung/article/details/42524813】。
exit 退出sftp
get [-P] remote-path [local-path] 下載遠端伺服器指定檔案(支援斷點續傳),如sftp> get /opt/testfile.tar /opt/
help 顯示幫助資訊
lcd path 更改本地路徑,如sftp> lcd /opt
lls [ls-options [path]] 顯示本地資料夾列表,如sftp> lls /tmp
lmkdir path 建立本地目錄,如sftp> lmkdir /tmp/test/
ln oldpath newpath 建立遠端軟連線,如sftp> ln /tmp/testfile /tmp/test.symlink
lpwd 顯示本地工作路徑,如sftp> lpwd
ls [-1aflnrSt] [path] 顯示遠端目錄列表,如如sftp> ls -l /opt/
lumask umask 指定在建立檔案時預設的許可權掩碼,關於umask的詳細介紹可參考我其它的文章【http://blog.csdn.net/jesseyoung/article/details/42525341】。
mkdir path 建立遠端目錄,如sftp> mkdir /tmp/test/
progress 進度表切換顯示,如sftp> progress 0
put [-P] local-path [remote-path] 上傳本地檔案到遠端伺服器。如sftp> put /opt/testfile.tar /opt/
pwd 顯示遠端工作目錄,如sftp> pwd
quit 退出sftp
rename oldpath newpath 重新命名遠端檔案(夾),如
rm path 刪除遠端檔案,如sftp> rm /opt/testfile.tar
rmdir path 刪除遠端資料夾,如sftp> rmdir /opt/testdir/
symlink oldpath newpath 建立遠端軟連線,如sftp> symlink /tmp/testfile /tmp/test.symlink
version 檢視sftp版本資訊。
!command 在本地視窗執行命令,如sftp> !ls
! 退出sftp
? help的同義詞
3.2 斷點續傳測試
通過get命令獲取遠端伺服器2GB大小檔案
sftp> get /opt/2GBfile.tar
Fetching /opt/2GBfile.tar
/opt/2GBfile.tar 50% 1024MB 14.3MB/s 01:35 ETA
/opt/2GBfile.tar 100% 2048MB 16.6MB/s 04:20
傳輸過程中,如傳輸50%時,中斷網路1分鐘。網路開啟後自動傳輸後續50%檔案,而非重新傳輸,節省了時間。
3.3 命令列直接傳輸
直接將遠端檔案/opt/testfile.txt傳輸到本地/tmp/目錄下
[[email protected] /]# sftp [email protected]:/opt/testfile.txt /tmp/
****************************************************************************************
原文地址:http://blog.csdn.net/jesseyoung/article/details/42523903
部落格主頁:http://blog.csdn.net/jesseyoung
****************************************************************************************