scp是secure copy的簡寫,用于在Linux下進(jìn)行遠(yuǎn)程拷貝文件的命令诈皿,和它類似的命令有cp栗菜,不過cp只是在本機(jī)進(jìn)行拷貝不能跨服務(wù)器欠雌,而且scp傳輸是加密的「沓铮可能會稍微影響一下速度富俄。當(dāng)你服務(wù)器硬盤變?yōu)橹蛔x read only system時(shí),用scp可以幫你把文件移出來而咆。另外霍比,scp還非常不占資源,基本不影響系統(tǒng)正常使用暴备。
一悠瞬、命令功能:
scp是linux系統(tǒng)下基于ssh登陸進(jìn)行安全的遠(yuǎn)程文件拷貝命令。linux的scp命令可以在linux服務(wù)器之間復(fù)制文件和目錄。
scp [參數(shù)] [原路徑] [目標(biāo)路徑]
Options:
-1
強(qiáng)制scp命令使用協(xié)議ssh1
-2
強(qiáng)制scp命令使用協(xié)議ssh2
-4
強(qiáng)制scp命令只使用IPv4尋址
-6
強(qiáng)制scp命令只使用IPv6尋址
-B
使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C
允許壓縮浅妆。(將-C標(biāo)志傳遞給ssh玛痊,從而打開壓縮功能)
-p
保留原文件的修改時(shí)間,訪問時(shí)間和訪問權(quán)限狂打,Preserves
-q
不顯示傳輸進(jìn)度條。
-r
遞歸復(fù)制整個(gè)目錄混弥,Recursively趴乡。
-v
詳細(xì)方式顯示輸出。scp和ssh(1)會顯示出整個(gè)過程的調(diào)試信息蝗拿。這些信息用于調(diào)試連接晾捏,驗(yàn)證和配置問題。
-c
cipher 以cipher將數(shù)據(jù)傳輸進(jìn)行加密哀托,這個(gè)選項(xiàng)將直接傳遞給ssh惦辛。
-F
ssh_config 指定一個(gè)替代的ssh配置文件,此參數(shù)直接傳遞給ssh仓手。
-i
identity_file 從指定文件中讀取傳輸時(shí)使用的密鑰文件胖齐,此參數(shù)直接傳遞給ssh。
-l
limit 限定用戶所能使用的帶寬嗽冒,以Kbit/s為單位呀伙。
-o
ssh_option 如果習(xí)慣于使用ssh_config(5)中的參數(shù)傳遞方式,
-P
port 注意是大寫的P, port是指定數(shù)據(jù)傳輸用到的端口號
-S
program 指定加密傳輸時(shí)所使用的程序添坊。此程序必須能夠理解ssh(1)的選項(xiàng)剿另。
二、使用實(shí)例:
1.從本地服務(wù)器復(fù)制到遠(yuǎn)程服務(wù)器:
(1)復(fù)制文件:
scp localfile remote_username@remote_ip:remote_folder
scp localfile remote_username@remote_ip:remote_file
scp localfile remote_ip:remote_folder
scp localfile remote_ip:remote_file
第1,2個(gè)指定了用戶名贬蛙,命令執(zhí)行后需要輸入密碼雨女,第1個(gè)僅指定了遠(yuǎn)程的目錄,文件名字不變阳准,第2個(gè)指定了文件名
第3,4個(gè)沒有指定用戶名氛堕,命令執(zhí)行后需要輸入用戶名和密碼,第3個(gè)僅指定了遠(yuǎn)程的目錄溺职,文件名字不變岔擂,第4個(gè)指定了文件名
(2)復(fù)制目錄:
命令格式: 加-r
參數(shù)
scp -r localfolder remote_username@remote_ip:remote_folder
scp -r localfolder remote_ip:remote_folder
2.從遠(yuǎn)程服務(wù)器復(fù)制到本地服務(wù)器:
從遠(yuǎn)程復(fù)制到本地的scp命令與上面的命令相似,只要將從本地復(fù)制到遠(yuǎn)程的命令后面2個(gè)參數(shù)互換順序就行了浪耘。
(1)從遠(yuǎn)程復(fù)制文件到本地目錄
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
(2)從遠(yuǎn)程復(fù)制文件夾到本地
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
3.帶端口號:
問題來源:我本地是Ubuntu操作系統(tǒng)乱灵,有時(shí)需要更新一些文件到服務(wù)器。但是七冲,為了安全起見我們都是將服務(wù)器的sshd端口修改的痛倚,通常不使用默認(rèn)的22號端口。如果我們使用scp命令時(shí):scp upload_file username@server時(shí)就會遇到
ssh: connect to host my_server port 22: Connection refused
注意:在需要指定端口時(shí)要使用-P
(大寫的P)澜躺,而且要緊跟在scp之后:
scp -P 12349 upload_file username@server(正確)
-P 如果放在遠(yuǎn)程主機(jī)之后會遇到這樣的錯(cuò)誤:
scp upload_file username@server -P 12349(錯(cuò)誤)
12349: No such file or directory
在使用時(shí)請將12349換成自己服務(wù)器對應(yīng)的端口蝉稳!
Ref: