換服務器或添加服務器時常會用到兩臺服務器之間複製文件,這個時候就能夠使用scp命令。服務器
scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它相似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,並且scp傳輸是加密的。可能會稍微影響一下速度。ssh
兩臺主機之間複製文件必需得同時有兩臺主機的複製執行賬號和操做權限。
ide
scp通常有六種使用方法:加密
本地複製遠程文件:(把遠程的文件複製到本地)spa
scp root@www.test.com:/val/test/test.tar.gz /val/test/test.tar.gz
調試
遠程複製本地文件:(把本地的文件複製到遠程主機上)遞歸
scp /val/test.tar.gz root@www.test.com:/val/test.tar.gz
ip
本地複製遠程目錄:(把遠程的目錄複製到本地)ci
scp -r root@www.test.com:/val/test/ /val/test/
it
遠程複製本地目錄:(把本地的目錄複製到遠程主機上)
scp -r /val/ root@www.test.com:/val/
本地複製遠程文件到指定目錄:(把遠程的文件複製到本地)
scp root@www.test.com:/val/test/test.tar.gz /val/test/
遠程複製本地文件到指定目錄:(把本地的文件複製到遠程主機上)
scp /val/test.tar.gz root@www.test.com:/val/
注意:前面的一個是待複製的文件或目錄,後面的一個是指定複製到哪裏。如:
scp /val/test.tar.gz root@www.test.com:/val/test.tar.gz
中的前面 /val/test.tar.gz 是要複製的文件,後面root@www.test.com:/val/test.tar.gz是指定複製到哪裏和對應的文件名。若是兩個對換則功能相反。若是要複製的是目錄則使用 -r 參數遞歸複製目錄。
當同時有多個服務器的文件要複製到本地目錄:
scp root@192.168.0.1:/var/cp1.tar.gz root@192.168.0.2:/var/cp2.tar.gz /var/tmp/
注意:最後面的一個必需是目錄,前面的必須是文件,才能成功批量複製,複製中會提示屢次輸入密碼。
[root@localhost ~]# scp --help
usage: 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
命令參數:-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 若是習慣於使用ssh_config(5)中的參數傳遞方式, -P port 注意是大寫的P, port是指定數據傳輸用到的端口號 -S program 指定加密傳輸時所使用的程序。此程序必須可以理解ssh(1)的選項。