scp(secure copy)是乙個在各個主機之間進行複製或者檔案傳輸的乙個命令列工具。
它使用一種同ssh一樣的安全機制。事實上,它在後台使用ssh連線來進行檔案的傳輸。
scp既指一種定義安全複製應該如何工作的協議,也指一種可以被安裝的作為openssh工具套的一部分的軟體或是指令。
在這篇簡單的教程中,我們可以看到一些scp指令的例子以及如何使用它進行安全的檔案傳輸。
語法格式:
scp source_file_path destination_file_path
所以如果你正在從你的本地計算機「傳送」檔案到遠端計算機(上傳)的語法是這樣的:
scp ~/my_local_file.txt user@remote_host.com:/some/remote/directory
scp user@remote_host.com:/some/remote/directory ~/my_local_file.txt
scp [email protected]:/some/path/file.txt .
這裡很多是有關用scp來完成常規任務的。除了這些,scp也支援很多其他的選項和功能。讓我們快速看一下他們的綜述。
沒錯,預設情況下,scp總是覆蓋目標位址的檔案。如果你想避免它,那就使用功能更為強大的rsync工具吧。
一、詳細輸出
有了詳細的輸出,scp的程式將輸出大量關於它在後台做什麼的資訊。
當程式失敗或無法完成請求時這是非常有用的。詳細的輸出將正確的指明該程式**出了問題。
輸出的資訊將會很多,而且包含有關連線如何建立,正在使用什麼配置和認證檔案等等的詳細資訊。
scp -v ~/test.txt [email protected]:/root/help2356.txt
二、多檔案傳輸
多個檔案可以像下面那樣用空格分隔開
scp foo.txt bar.txt username@remotehost:/path/directory/
從遠端主機複製多個檔案到當前目錄
scp username@remotehost:/path/directory/\ .
scp [email protected]:~/\ .
三、複製整個資料夾(遞迴)
為了從乙個主機往另乙個主機複製整個資料夾,需要使用r switch並且指定目錄
scp -v -r ~/downloads [email protected]:/root/downloads
四、在兩個遠端主機之間複製檔案
scp也可以把檔案從乙個遠端主機複製到另乙個遠端主機。
scp user1@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/
五、用壓縮來加快傳輸
乙個用於加快傳輸,節省時間和頻寬的超酷的選項!你所需要做的就是用c選項來啟用壓縮功能。
該檔案在傳輸過程中被壓縮,在目的主機上被解壓縮。
scp -vrc ~/downloads [email protected]:/root/downloads
在上面的例子中我們開啟壓縮選項移動了整個資料夾。速度的增長取決於多少檔案能被壓縮。
六、限制頻寬的使用
如果你不想scp占用所有的頻寬,那麼用選項「l」來限制最大傳輸速度,kbit/s
scp -vrc -l 400 ~/downloads [email protected]:/root/downloads
七、在遠端主機上連線乙個不同的埠
如果遠端伺服器有ssh守護程序執行在不同的埠上(預設是22),那麼你需要告訴scp使用「-p」選項(大寫)來使用指定的埠。
scp -vc -p 2200 ~/test.txt [email protected]:/some/path/test.txt
八、儲存檔案屬性
「-p」選項(小寫),將會儲存原始檔的修改時間,訪問時間以及方式。
scp -c -p ~/test.txt [email protected]:/some/path/test.txt
九、安靜模式
在安靜模式(「-q」選項),scp輸出將會減少,並且不再顯示進度表以及警告和診斷資訊。
scp -vcq ~/test.txt [email protected]:/some/path/test.txt
十、特殊標識檔案
當使用基於秘鑰認證(無密碼)。你將使用特殊的包含私有秘鑰的標識檔案。
這個選項直接傳遞到ssh命令並且以同樣的方式工作。
scp -vcq -i private_key.pem ~/test.txt [email protected]:/some/path/test.txt
十
一、使用不同的ssh_config檔案
用」f」選項指定不同的ssh_config檔案
scp -vc -f /home/user/my_ssh_config ~/test.txt [email protected]:/some/path/test.txt
十
二、使用不同的加密
scp預設使用aes加密,有時候你可能想使用不同的加密。
用不同的加密可能會加快轉移過程,舉例來說,blowfish和arcfour被認為比aes更快的存在(但是安全上不如aes)。
scp -c blowfish -c ~/local_file.txt username@remotehost:/remote/path/file.txt
在上面的例子中我們用blowfish加密並同時壓縮,這可以得到顯著的速度上的提公升,當然也取決於可用的頻寬。
儘管scp在安全地傳輸檔案方面是非常有效的,它缺乏乙個檔案同步工具必要的功能。
它所能做的就是複製貼上上述所有檔案從乙個位置到另乙個位置。
乙個更強大的工具的rsync它不僅具有scp的所有功能,而且增加了更多的功能用來在2個主機智慧型同步檔案。
例如,它可以檢查並上傳只有修改過的檔案,忽略現有的檔案等等。
12個scp傳輸檔案的命令栗子
12個scp傳輸檔案的命令栗子 一直在用scp進行簡單的遠端複製檔案的功能,今天無意間看到一篇介紹scp的文章,便想著學習學習並將其翻譯了過來。安全複製 scp secure copy 是乙個在各個主機之間進行複製或者檔案傳輸的乙個命令列工具。它使用一種同ssh一樣的安全機制。事實上,它在後台使用s...
12個scp傳輸檔案的命令栗子
12個scp傳輸檔案的命令栗子 一直在用scp進行簡單的遠端複製檔案的功能,今天無意間看到一篇介紹scp的文章,便想著學習學習並將其翻譯了過來。原文戳這裡。翻譯不對的地方,敬請指正。另外我最近搭建了個新的部落格。戳這裡進去 voidy s blog。歡迎在新部落格留下足跡 以後也會不定時在此更新。好...
12個scp傳輸檔案的命令栗子
12個scp傳輸檔案的命令栗子 一直在用scp進行簡單的遠端複製檔案的功能,今天無意間看到一篇介紹scp的文章,便想著學習學習並將其翻譯了過來。原文戳這裡。翻譯不對的地方,敬請指正。另外我最近搭建了個新的部落格。戳這裡進去 voidy s blog。歡迎在新部落格留下足跡 以後也會不定時在此更新。好...