scp是secure copy的縮寫,它是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。我們可以用scp命令在兩個Linux主機之間復制文件和目錄。
從本地主機復制到遠程主機
常用格式:
scp [可選參數] 本地文件或目錄 遠程用戶名@遠程地址:遠程文件或目錄
復制文件:
scp -P 12333 /home/www/web.tar.gz [email protected]:/home/backup
將本機/home/www目錄下的web.tar.gz文件復制到10.10.0.211的/home/backup目錄下,10.10.0.211的ssh端口為12333。
復制目錄:
scp -P 12333 -r /home/www/ [email protected]:/home/abc.com/
將本機/home/www/目錄及其下的文件復制到10.10.0.211的/home/abc.com/目錄下(復制的是整個目錄),10.10.0.211的ssh端口為12333。
從遠程主機復制到本地主機
常用格式;
scp [可選參數] 遠程用戶名@遠程地址:遠程文件或目錄 本地文件或目錄
和本地復制到遠程類似,將本地地址和遠程地址互換就行了。
scp -P 12333 [email protected]:/home/backup/web.tar.gz /home/test1
scp -P 12333 -r [email protected]:/home/abc.com/ /home/test2/
完整命令格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
參數說明:
[-1246BCpqrv]
-1
強制scp命令使用協議ssh1。
-2
強制scp命令使用協議ssh2。
-4
強制scp命令只使用IPv4尋址。
-6
強制scp命令只使用IPv6尋址。
-B
使用批處理模式(傳輸過程中不詢問傳輸口令或短語)。
-C
允許壓縮(將-C標志傳遞給ssh,從而打開壓縮功能)。
-p
保留原文件的修改時間,訪問時間和訪問權限。
-q
不顯示傳輸進度條。
-r
遞歸復制整個目錄。
-v
詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
[-c cipher]
以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
[-F ssh_config]
指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
[-i identity_file]
從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
[-l limit]
限定用戶所能使用的帶寬,以Kbit/s為單位。
[-o ssh_option]
指定傳遞中使用的格式。
[-P port]
指定遠程主機ssh使用的端口號。
[-S program]
指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。