scp 命令的基本語法
下面的命令將讀作copy source_file_name進入destination_folder在destination_host使用username account。
>scpsource_file_nameusername@destination_host:destination_folder
里面有很多參數(shù)scp你可以使用的命令。以下是可能在日常使用中使用的參數(shù)。
使用-v參數(shù)提供 scp 進程的詳細信息
基礎(chǔ)的scp不帶參數(shù)的命令將在后臺復制文件。除非該過程完成或出現(xiàn)某些錯誤,否則用戶將看不到任何內(nèi)容。
你可以使用-v參數(shù)將調(diào)試信息打印到屏幕中。它可以幫助你調(diào)試連接、身份驗證和配置問題。
rumenz@local$scp-vLabel.pdfrumenz@192.168.1.110:.
輸出
復制文件時 scp 顯示進度
Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-t. OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012 debug1:Readingconfigurationdata/etc/ssh/ssh_config debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor* debug1:Connectingto202.x.x.x[202.x.x.x]port22. debug1:Connectionestablished. debug1:Host'202.x.x.x'isknownandmatchestheRSAhostkey. debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1 debug1:ssh_rsa_verify:signaturecorrect debug1:Nextauthenticationmethod:password rumenz@202.x.x.x'spassword: debug1:Authenticationsucceeded(password). Authenticatedto202.x.x.x([202.x.x.x]:22). Sendingfilemodes:C07703760348Label.pdf Sink:C07703760348Label.pdf Label.pdf100%3672KB136.0KB/s00:27 Transferred:sent3766304,received3000bytes,in65.2seconds Bytespersecond:sent57766.4,received46.0 debug1:Exitstatus0
提供原始文件的修改時間、訪問時間和模式
-p參數(shù)將幫助你解決這個問題。估計時間和連接速度將出現(xiàn)在屏幕上。
rumenz@local$scp-pLabel.pdfrumenz@192.168.1.110:.
輸出
scp 估計復制大文件所需的時間
>rumenz@202.x.x.x'spassword: Label.pdf100%3672KB126.6KB/s00:29
使用 -C 參數(shù)加快文件傳輸速度
可以加快文件傳輸速度的參數(shù)之一是-C范圍。這-C參數(shù)將隨時隨地壓縮你的文件,獨特的是壓縮只發(fā)生在網(wǎng)絡中。當文件到達目標服務器時,它將恢復到壓縮前的原始大小。
>rumenz@local$scp-pvmessages.logrumenz@192.168.1.110:.
輸出
scp 在不壓縮的情況下傳輸文件
Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-p-t. OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012 debug1:Readingconfigurationdata/etc/ssh/ssh_config debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor* debug1:Connectingto202.x.x.x[202.x.x.x]port22. debug1:Connectionestablished. debug1:identityfile/home/pungki/.ssh/id_rsatype-1 debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1 debug1:ssh_rsa_verify:signaturecorrect debug1:Tryingprivatekey:/home/pungki/.ssh/id_rsa debug1:Nextauthenticationmethod:password rumenz@202.x.x.x'spassword: debug1:Authenticationsucceeded(password). Authenticatedto202.x.x.x([202.x.x.x]:22). debug1:Sendingcommand:scp-v-p-t. Filemtime1323853868atime1380425711 Sendingfiletimestamps:T1323853868013804257110 messages.log100%93MB58.6KB/s27:05 Transferred:sent97614832,received25976bytes,in1661.3seconds Bytespersecond:sent58758.4,received15.6 debug1:Exitstatus0
-C允許壓縮
rumenz@local$scp-Cpvmessages.logrumenz@192.168.1.110:.
輸出
scp 使用壓縮更快地傳輸文件
Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-p-t. OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012 debug1:Readingconfigurationdata/etc/ssh/ssh_config debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor* debug1:Connectingto202.x.x.x[202.x.x.x]port22. debug1:Connectionestablished. debug1:identityfile/home/pungki/.ssh/id_rsatype-1 debug1:Host'202.x.x.x'isknownandmatchestheRSAhostkey. debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1 debug1:ssh_rsa_verify:signaturecorrect debug1:Nextauthenticationmethod:publickey debug1:Tryingprivatekey:/home/pungki/.ssh/id_rsa debug1:Nextauthenticationmethod:password rumenz@202.x.x.x'spassword: debug1:Enablingcompressionatlevel6. debug1:Authenticationsucceeded(password). Authenticatedto202.x.x.x([202.x.x.x]:22). debug1:channel0:new[client-session] debug1:Sendingcommand:scp-v-p-t. Filemtime1323853868atime1380428748 Sendingfiletimestamps:T1323853868013804287480 Sink:T1323853868013804287480 Sendingfilemodes:C060097517300messages.log messages.log100%93MB602.7KB/s02:38 Transferred:sent8905840,received15768bytes,in162.5seconds Bytespersecond:sent54813.9,received97.0 debug1:Exitstatus0 debug1:compressoutgoing:rawdata97571111,compressed8806191,factor0.09 debug1:compressincoming:rawdata7885,compressed3821,factor0.48
如果你要通過網(wǎng)絡復制大量文件,-C參數(shù)將幫助你減少所需的總時間。
壓縮方法不適用于所有文件。當源文件已經(jīng)被壓縮時,就沒有什么效果了。文件如.zip,.rar,pictures, 和.iso
更改 scp 密碼以加密文件
默認情況下scp使用AES-128來加密文件。如果你想更改為其他密碼對其進行加密,你可以使用-c范圍。看看這個命令。
rumenz@local$scp-c3desLabel.pdfrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: Label.pdf100%3672KB282.5KB/s00:13
上面的命令告訴scp使用3des algorithm來加密文件。請注意此參數(shù)使用-c不是-C。
使用 scp 命令限制帶寬使用
另一個可能有用的參數(shù)是-l范圍。這-l參數(shù)將限制使用的帶寬制 。如果你執(zhí)行自動化腳本來復制大量文件,這將很有用
rumenz@local$scp-l400Label.pdfrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: Label.pdf100%3672KB50.3KB/s01:13
scp 默認帶寬的單位是Kilobyte/sec(KB/s)。所以如果你想限制你的帶寬scp最多只有50 KB/s,你需要將其設置為50 x 8=400.
指定要與 scp 一起使用的特定端口
scp正在使用端口22作為默認端口。但出于安全原因,你可以將端口更改為另一個端口. 例如,我們使用端口2249.
rumenz@local$scp-P2249Label.pdfrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: Label.pdf100%3672KB262.3KB/s00:14
遞歸復制目錄中的文件
有時我們需要復制目錄和其中的所有文件,目錄。
rumenz@local$scp-rdocumentsrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: Label.pdf100%3672KB282.5KB/s00:13 scp.txt100%10KB9.8KB/s00:00
復> 制過程完成后,你將在目標服務器上找到一個名為documents及其所有文件。文件夾documents是自動創(chuàng)建的。
禁用進度表和警告 / 診斷消息
rumenz@local$scp-qLabel.pdfrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: rumenz@local$
可以看到,輸入密碼后,沒有關(guān)于 scp 進程的信息。該過程完成后,你將再次看到提示。
通過代理使用 scp 復制文件
代理服務器通常用于辦公環(huán)境。scp 本身沒有配置代理。當你的環(huán)境使用代理時,你必須告訴scp 與代理進行通信。
例如代理地址是10.0.96.6代理端口是8080.代理還實現(xiàn)了用戶身份驗證。首先,你需要創(chuàng)建~/.ssh/config文件
ProxyCommand/usr/bin/corkscrew10.0.96.68080%h%p~/.ssh/proxyauth
然后你需要創(chuàng)建文件~/.ssh/proxyauth里面輸入。
myusername:mypassword
前提是需要安裝corkscrew
$apt-getinstallcorkscrew
Centos系統(tǒng)可以用yum安裝corkscrew
#yuminstallcorkscrew
由于~/.ssh/proxyauth文件包含你的username和password以明文格式,請確保該文件只能自己訪問。
選擇不同的ssh_config 文件
對于經(jīng)常在公司網(wǎng)絡和公共網(wǎng)絡之間切換的移動用戶來說,總是在scp中更改設置會很痛苦。
場景示例
代理在公司網(wǎng)絡中使用,但不在公共網(wǎng)絡中使用,并且你定期切換網(wǎng)絡。
rumenz@local$scp-F/home/pungki/proxy_ssh_configLabel.pdf rumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: Label.pdf100%3672KB282.5KB/s00:13
默認情況下ssh_config每個用戶的文件將被放置在~/.ssh/config。創(chuàng)建一個特定的ssh_config具有代理兼容性的文件將更容易在網(wǎng)絡之間切換。
當你在公司網(wǎng)絡,你可以使用-F范圍。當你在公共網(wǎng)絡上時,你可以不用-F參數(shù)。
-
Linux
+關(guān)注
關(guān)注
87文章
11313瀏覽量
209748 -
參數(shù)
+關(guān)注
關(guān)注
11文章
1838瀏覽量
32271 -
文件
+關(guān)注
關(guān)注
1文章
567瀏覽量
24763 -
命令
+關(guān)注
關(guān)注
5文章
685瀏覽量
22047 -
SCP
+關(guān)注
關(guān)注
0文章
29瀏覽量
9265
原文標題:在 Linux 中傳輸文件文件夾的 10個 scp 命令
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論