scp 命令的基本語法
下面的命令將讀作copy source_file_name進入destination_folder在destination_host使用username account。
>scpsource_file_nameusername@destination_host:destination_folder
里面有很多參數scp你可以使用的命令。以下是可能在日常使用中使用的參數。
使用-v參數提供 scp 進程的詳細信息
基礎的scp不帶參數的命令將在后臺復制文件。除非該過程完成或出現某些錯誤,否則用戶將看不到任何內容。
你可以使用-v參數將調試信息打印到屏幕中。它可以幫助你調試連接、身份驗證和配置問題。
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參數將幫助你解決這個問題。估計時間和連接速度將出現在屏幕上。
rumenz@local$scp-pLabel.pdfrumenz@192.168.1.110:.
輸出
scp 估計復制大文件所需的時間
>rumenz@202.x.x.x'spassword: Label.pdf100%3672KB126.6KB/s00:29
使用 -C 參數加快文件傳輸速度
可以加快文件傳輸速度的參數之一是-C范圍。這-C參數將隨時隨地壓縮你的文件,獨特的是壓縮只發生在網絡中。當文件到達目標服務器時,它將恢復到壓縮前的原始大小。
>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
如果你要通過網絡復制大量文件,-C參數將幫助你減少所需的總時間。
壓縮方法不適用于所有文件。當源文件已經被壓縮時,就沒有什么效果了。文件如.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來加密文件。請注意此參數使用-c不是-C。
使用 scp 命令限制帶寬使用
另一個可能有用的參數是-l范圍。這-l參數將限制使用的帶寬制 。如果你執行自動化腳本來復制大量文件,這將很有用
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是自動創建的。
禁用進度表和警告 / 診斷消息
rumenz@local$scp-qLabel.pdfrumenz@192.168.1.110:. rumenz@202.x.x.x'spassword: rumenz@local$
可以看到,輸入密碼后,沒有關于 scp 進程的信息。該過程完成后,你將再次看到提示。
通過代理使用 scp 復制文件
代理服務器通常用于辦公環境。scp 本身沒有配置代理。當你的環境使用代理時,你必須告訴scp 與代理進行通信。
例如代理地址是10.0.96.6代理端口是8080.代理還實現了用戶身份驗證。首先,你需要創建~/.ssh/config文件
ProxyCommand/usr/bin/corkscrew10.0.96.68080%h%p~/.ssh/proxyauth
然后你需要創建文件~/.ssh/proxyauth里面輸入。
myusername:mypassword
前提是需要安裝corkscrew
$apt-getinstallcorkscrew
Centos系統可以用yum安裝corkscrew
#yuminstallcorkscrew
由于~/.ssh/proxyauth文件包含你的username和password以明文格式,請確保該文件只能自己訪問。
選擇不同的ssh_config 文件
對于經常在公司網絡和公共網絡之間切換的移動用戶來說,總是在scp中更改設置會很痛苦。
場景示例
代理在公司網絡中使用,但不在公共網絡中使用,并且你定期切換網絡。
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。創建一個特定的ssh_config具有代理兼容性的文件將更容易在網絡之間切換。
當你在公司網絡,你可以使用-F范圍。當你在公共網絡上時,你可以不用-F參數。
-
Linux
+關注
關注
87文章
11351瀏覽量
210507 -
參數
+關注
關注
11文章
1860瀏覽量
32449 -
文件
+關注
關注
1文章
571瀏覽量
24834 -
命令
+關注
關注
5文章
698瀏覽量
22127 -
SCP
+關注
關注
0文章
29瀏覽量
9291
原文標題:在 Linux 中傳輸文件文件夾的 10個 scp 命令
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Linux文件是一個什么文件的路徑
Linux命令詳解之scp命令
如何刪除msn共享文件夾
ubuntu中隱藏/顯示文件和文件夾
dos命令怎么用_DOS下創建文件、文件夾
![dos<b class='flag-5'>命令</b>怎么用_DOS下創建<b class='flag-5'>文件</b>、<b class='flag-5'>文件夾</b>](https://file.elecfans.com/web1/M00/45/05/pIYBAFpfBlmAIIq1AAA9gWs-ndg373.png)
如何在文件管理器中隱藏文件和文件夾
![如何在<b class='flag-5'>文件</b>管理器<b class='flag-5'>中</b>隱藏<b class='flag-5'>文件</b>和<b class='flag-5'>文件夾</b>](https://file.elecfans.com/web1/M00/91/8D/o4YBAFzYyAaAd7v3AABQeIeFHbU360.png)
ASP NET中的APP Code和BIN文件夾的詳細介紹
Unity中所有特殊的文件夾
筆記:Unity中所有特殊的文件夾
![筆記:Unity中所有特殊的<b class='flag-5'>文件夾</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論