12個scp傳輸檔案的命令栗子

2021-08-10 22:15:41 字數 3827 閱讀 1247

12個scp傳輸檔案的命令栗子

一直在用scp進行簡單的遠端複製檔案的功能,今天無意間看到一篇介紹scp的文章,便想著學習學習並將其翻譯了過來。原文戳這裡。翻譯不對的地方,敬請指正。

另外我最近搭建了個新的部落格。戳這裡進去:voidy's blog。歡迎在新部落格留下足跡~以後也會不定時在此更新。好了,開始講scp傳輸。

安全複製

scp(secure copy)是乙個在各個主機之間進行複製或者檔案傳輸的乙個命令列工具。它使用一種同ssh一樣的安全機制。事實上,它在後台使用ssh連線來進行檔案的傳輸。scp既指一種定義安全複製應該如何工作的協議,也指一種可以被安裝的作為openssh工具套的一部分的軟體或是指令。

在這篇簡單的教程中,我們可以看到一些scp指令的栗子以及如何使用它進行安全的檔案傳輸。

使用scp

scp的基礎語法很容易記憶,它看起來就像醬紫:

1 $ scp source_file_path destination_file_path
所以如果你正在從你的本地計算機「傳送」檔案到遠端計算機(上傳)的語法是這樣的:

1 $ scp ~/my_local_file.txt user@remote_host.com:/some/remote/directory

1 $ scp user@remote_host.com:/some/remote/directory ~/my_local_file.txt

23 # just download the file

4 $ scp [email protected]:/some/path/file.txt .

這裡很多是有關用scp來完成常規任務的。除了這些,scp也支援很多其他的選項和功能。讓我們快速看一下他們的綜述。

沒錯,預設情況下,scp總是覆蓋目標位址的檔案。如果你想避免它,那就使用功能更為強大的rsync工具吧。

一、詳細輸出

有了詳細的輸出,scp的程式將輸出大量關於它在後台做什麼的資訊。當程式失敗或無法完成請求時這是非常有用的。詳細的輸出將正確的指明該程式**出了問題。

栗子:

1 $ scp -v ~/test.txt [email protected]:/root/help2356.txt

2 executing: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txt

3 openssh_6.2p2 ubuntu-6ubuntu0.1, openssl 1.0.1e 11 feb 2013

4 debug1: reading configuration data /home/enlightened/.ssh/config

5 debug1: reading configuration data /etc/ssh/ssh_config

7 debug1: connecting to 192.168.1.3 [192.168.1.3] port 22.

8debug1: connection established.

9 ..... output truncated

輸出的資訊將會很多,而且包含有關連線如何建立,正在使用什麼配置和認證檔案等等的詳細資訊。

二、多檔案傳輸

多個檔案可以像下面那樣用空格分隔開

栗子:

1 $ scp foo.txt bar.txt username@remotehost:/path/directory/
從遠端主機複製多個檔案到當前目錄

栗子:

1 $ scp username@remotehost:/path/directory/\ .

23 $ scp [email protected]:~/\ .

三、複製整個資料夾(遞迴)

為了從乙個主機往另乙個主機複製整個資料夾,需要使用r switch並且指定目錄

栗子如下:

1 $ scp -v -r ~/downloads [email protected]:/root/downloads
四、在兩個遠端主機之間複製檔案

scp也可以把檔案從乙個遠端主機複製到另乙個遠端主機。

舉個栗子:

1 $ scp user1@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/
乙個用於加快傳輸,節省時間和頻寬的超酷的選項!你所需要做的就是用c選項來啟用壓縮功能。該檔案在傳輸過程中被壓縮,在目的主機上被解壓縮。

栗子如下:

1 $ scp -vrc ~/downloads [email protected]:/root/downloads
在上面的栗子中我們開啟壓縮選項移動了整個資料夾。速度的增長取決於多少檔案能被壓縮。

如果你不想scp占用所有的頻寬,那麼用選項「l」來限制最大傳輸速度,kbit/s

栗子如下:

1 $ scp -vrc -l 400 ~/downloads [email protected]:/root/downloads
如果遠端伺服器有ssh守護程序執行在不同的埠上(預設是22),那麼你需要告訴scp使用「-p」選項來使用指定的埠。

栗子如下:

1 $ scp -vc -p 2200 ~/test.txt [email protected]:/some/path/test.txt
「-p」選項(小寫),將會儲存原始檔的修改時間,訪問時間以及方式。

舉例如下:

1 $ scp -c -p ~/test.txt [email protected]:/some/path/test.txt
在安靜模式(「-p」選項),scp輸出將會減少,並且不再顯示進度表以及警告和診斷資訊。

栗子如下:

1 $ scp -vcq ~/test.txt [email protected]:/some/path/test.txt
當使用基於秘鑰認證(無密碼)。你將使用特殊的包含私有秘鑰的標識檔案。這個選項直接傳遞到ssh命令並且以同樣的方式工作。

舉個栗子:

1 $ scp -vcq -i private_key.pem ~/test.txt [email protected]:/some/path/test.txt
用」f」選項指定不同的ssh_config檔案

栗子如下:

1 $ scp -vc -f /home/user/my_ssh_config ~/test.txt [email protected]:/some/path/test.txt
scp預設使用aes加密,有時候你可能想使用不同的加密。用不同的加密可能會加快轉移過程,舉例來說,blowfish和arcfour被認為比aes更快的存在(但是安全上不如aes)。

舉個栗子:

1 $ 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命令傳輸檔案的例子

scp secure copy 是乙個在各個主機之間進行複製或者檔案傳輸的乙個命令列工具。它使用一種同ssh一樣的安全機制。事實上,它在後台使用ssh連線來進行檔案的傳輸。scp既指一種定義安全複製應該如何工作的協議,也指一種可以被安裝的作為openssh工具套的一部分的軟體或是指令。在這篇簡單的教...