scp(安全副本)是一個(gè)命令行實(shí)用程序,允許用戶(hù)在兩個(gè)位置之間安全地復(fù)制文件和目錄。下面本篇文章就來(lái)帶大家了解一下scp命令,介紹使用scp命令是如何安全地傳輸文件,希望對(duì)大家有所幫助。
linux SCP命令
SCP命令是一個(gè)linux下進(jìn)行遠(yuǎn)程拷貝文件的命令,允許用戶(hù)在兩個(gè)位置之間安全地復(fù)制文件和目錄。
使用SCP命令,用戶(hù)可以復(fù)制文件(或目錄):
● 從本地系統(tǒng)到遠(yuǎn)程系統(tǒng)。
● 從遠(yuǎn)程系統(tǒng)到本地系統(tǒng)。
● 在本地系統(tǒng)的兩個(gè)遠(yuǎn)程系統(tǒng)之間。
使用scp傳輸數(shù)據(jù)時(shí),文件和密碼都是加密的,這樣任何窺探流量的人都不會(huì)得到任何敏感信息。
SCP命令的基本語(yǔ)法:
scp?[OPTION]?[user@]SRC_HOST:]file1?[user@]DEST_HOST:]file2
● OPTION: scp選項(xiàng),如密碼,ssh配置,ssh端口,限制,遞歸復(fù)制..等。
● [user@]SRC_HOST:]file1:源文件。
● [user@]DEST_HOST:]file2 : 目標(biāo)文件。
本地文件應(yīng)使用絕對(duì)或相對(duì)路徑指定,而遠(yuǎn)程文件名應(yīng)包括用戶(hù)和主機(jī)規(guī)范。
SCP提供了許多選項(xiàng)來(lái)控制其行為的各個(gè)方面。最廣泛使用的選項(xiàng)有:
● -P 指定遠(yuǎn)程主機(jī)ssh端口。
● -p 保留文件修改和訪問(wèn)時(shí)間。
● -q 如果要禁止進(jìn)度表和非錯(cuò)誤消息,請(qǐng)使用此選項(xiàng)。
● -C。此選項(xiàng)將強(qiáng)制scp在將數(shù)據(jù)發(fā)送到目標(biāo)計(jì)算機(jī)時(shí)壓縮數(shù)據(jù)。
● -r 此選項(xiàng)將告訴scp以遞歸方式復(fù)制目錄。
說(shuō)明:開(kāi)始使用SCP命令時(shí)
因?yàn)閟cp命令依賴(lài)ssh進(jìn)行數(shù)據(jù)傳輸,所以在遠(yuǎn)程系統(tǒng)上進(jìn)行身份驗(yàn)證需要ssh密鑰或密碼。
冒號(hào)(:)是SCP如何區(qū)分本地和遠(yuǎn)程位置的。
為了能夠復(fù)制文件,用戶(hù)必須至少擁有源文件的讀取權(quán)限和目標(biāo)系統(tǒng)的寫(xiě)入權(quán)限。
在兩個(gè)系統(tǒng)上復(fù)制共享相同名稱(chēng)和位置的文件時(shí)要小心,scp會(huì)在沒(méi)有警告的情況下覆蓋文件。
如何使用SCP復(fù)制兩個(gè)系統(tǒng)之間的文件和目錄?
1、使用scp命令將本地文件復(fù)制到遠(yuǎn)程系統(tǒng)
要將文件從本地復(fù)制到遠(yuǎn)程系統(tǒng),請(qǐng)運(yùn)行以下命令:
scp?file.txt?remote_username@10.10.0.2:/remote/directory
說(shuō)明:file.txt是我們要復(fù)制的文件名,remote_username是遠(yuǎn)程服務(wù)器上的用戶(hù)名,10.10.0.2是服務(wù)器IP地址;/remote/directory是要將文件復(fù)制到的目錄的路徑,如果不指定遠(yuǎn)程目錄,文件將被復(fù)制到遠(yuǎn)程用戶(hù)主目錄。
系統(tǒng)將提示用戶(hù)輸入用戶(hù)密碼,然后將開(kāi)始傳輸過(guò)程。
輸出:
remote_username@10.10.0.2's?password: file.txt?????????????????????????????100%????0?????0.0KB/s???00:00
從目標(biāo)位置省略文件名會(huì)使用原始名稱(chēng)復(fù)制文件。如果要以不同的名稱(chēng)保存文件,則需要指定新名稱(chēng):
scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt
如果遠(yuǎn)程主機(jī)上的SSH正在偵聽(tīng)默認(rèn)端口22以外的端口,則可以使用以下-P參數(shù)指定端口:
ssh?-P?2322?file.txt?remote_username@10.10.0.2:/remote/directory
要將目錄從本地復(fù)制到遠(yuǎn)程系統(tǒng),請(qǐng)使用以下-r選項(xiàng):
scp?-r?/local/directory?remote_username@10.10.0.2:/remote/directory
2、使用scp命令將遠(yuǎn)程文件復(fù)制到本地系統(tǒng)
要將文件從遠(yuǎn)程系統(tǒng)復(fù)制到本地系統(tǒng),需要使用遠(yuǎn)程位置作為源,使用本地位置作為目標(biāo)。
例如,要從IP為10.10.0.2的遠(yuǎn)程服務(wù)器復(fù)制名為file.txt的文件,需要運(yùn)行以下命令:
scp remote_username@10.10.0.2:/remote/file.txt /local/directory
注:如果用戶(hù)沒(méi)有設(shè)置遠(yuǎn)程計(jì)算機(jī)的“無(wú)密碼ssh登錄”,將要求輸入用戶(hù)密碼。
3、使用scp命令在兩個(gè)遠(yuǎn)程系統(tǒng)之間復(fù)制文件
使用scp時(shí),用戶(hù)無(wú)需登錄到其中一臺(tái)服務(wù)器,就可以將文件從一臺(tái)遠(yuǎn)程計(jì)算機(jī)傳輸?shù)搅硪慌_(tái)遠(yuǎn)程計(jì)算機(jī)。
例如,以下命令可以將文件/files/file.txt從遠(yuǎn)程主機(jī)host1.com復(fù)制到遠(yuǎn)程主機(jī)host2.com上的目錄/files上。
scp?user1@host1.com:/files/file.txt?user2@host2.com:/files
系統(tǒng)將提示用戶(hù)輸入兩個(gè)遠(yuǎn)程帳戶(hù)的密碼;數(shù)據(jù)將直接從一個(gè)遠(yuǎn)程主機(jī)傳輸?shù)搅硪粋€(gè)。
相關(guān)視頻教程推薦:《Linux教程》