1. scp命令及使用過程中常見問題的解決方案
scp命令用於操作系統之間(linux之間或者linux與windows之間)復制文件和目錄。
scp是 secure 的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。
1、從本地復制到遠程
A. 復制文件命令格式
(1)scp local_file remote_username@remote_ip:remote_folder
(2)scp local_file remote_username@remote_ip:remote_file
(3)scp local_file remote_ip:remote_folder
(4)scp local_file remote_ip:remote_file
說明:
第1,2個指定了用戶名,命令執行後需要再輸入密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名;
第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名;
B. 復制目錄命令格式:
(1)scp -r local_folder remote_username@remote_ip:remote_folder
(2)scp -r local_folder remote_ip:remote_folder
說明:
第1個指定了用戶名,命令執行後需要再輸入密碼;
第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼;
2、從遠程復制到本地
從遠程復制到本地,只要將從本地復制到遠程的命令的後2個參數調換順序即可。
應用實例:
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
說明
(1)如果遠程伺服器防火牆有為scp命令設置了指定的埠,我們需要使用 -P 參數來設置命令的埠號,命令格式如下:
#scp 命令使用埠號 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator
(2)使用scp命令要確保使用的用戶具有可讀取遠程伺服器相應文件的許可權,否則scp命令是無法起作用的。
scp命令運行過程中,涉及到SSH。SSH或Secure Shell是一種安全通信協議,用於遠程連接兩個操作系統,以便我們可以使用命令控制台從客戶端計算機控制主機。關於SSH最重要的是它能夠加密連接會話,這是FTP或Telnet無法實現的,更不安全的協議,並且已經很少使用。SSH還允許將數據安全地從主機復制到客戶端,並且可以使用比普通用戶的會話密鑰更安全的RSA密鑰,我們還可以通過隧道傳輸文件來獲得更高的安全性。使用SSH,我們可以在內部網路和完全遠程連接到配置為伺服器的計算機。為此,我們必須打開TCP埠22,這是默認埠。
假設這里有兩台機器A、B,B是安裝在虛擬機里的debian系統,在B機器上可以使用ssh登錄到A機器
但是在A上使用ssh命令登錄B機器時提示錯誤:
ssh: connect to host 192.168.28.160 port 22: Connection refused
原來ssh分為ssh-client和ssh-server兩部分,B設備只安裝了ssh-client而沒有安裝ssh-server才導致上述問題。
解決方法:在B機器上安裝ssh-server,apt-get install ssh-server
然後在A上執行ssh [email protected]卻提示了另外一個waring:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
在網上搜了一下發現出現這個warning是因為對端重新的ssh服務出現變動所致。
2. 樹莓派里的文件復制到本地-scp命令
使用scp命令拷貝文件非常好用,我們可以通過scp命令把本地文件上傳到樹莓派,也可以把樹莓派里的文件拷貝到本地。
本地系統: MacOS
樹莓派的IP地址: 192.168.123.159
樹莓派用戶名: pi
本地文件夾位置: /Users/yushengtan/desktop/
樹莓派文件夾位置: /home/pi/download/Desktop/
假如我們要把本地桌面上的文件1.txt拷貝到樹莓派伺服器桌面上,可以使用命令: scp <本地文件夾及文件> <遠程用戶名>@<遠程ip>:<遠程文件夾>
執行命令後按要求輸入ssh登錄密碼即可;
支持文件夾拷貝,只需在scp 後添加一個 -r 參數即可。
加入我們要把樹莓派桌面上的文件2.txt拷貝到本地,可以使用命令: scp <遠程用戶名>@<遠程ip>:<遠程文件夾> <本地文件夾及文件>
scp同樣支持文件夾拷貝,只需在scp 後添加一個 -r 參數即可,
如把本地桌面目錄拷貝到遠程樹莓派桌面:
3. scp從linux伺服器拷貝文件到windows的機子上怎麼寫命令
scp從linux伺服器拷貝文件到windows的機子上方法:
1.首先,下載putty軟體,並可以在目錄中,找到pscp.exe文件,我們可以通過這個軟體實現Windows和linux之間拷貝文件。
4. linux 使用scp命令從一台機器復制文件到另一台linux機器上去
scp是 secure 的縮寫, scp是 linux 系統下基於ssh登陸進行安全的遠程文件拷貝命令。 linux 的scp命令可以在linux 伺服器 之間復制文件和目錄.
scp命令基本格式:
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
scp命令的參數說明:
-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)的選項
scp命令的實際應用
本地復制遠程文件:(把遠程的文件復制到本地)
scp [email protected]:/val/test/test.tar.gz /val/test/test.tar.gz
遠程復制本地文件:(把本地的文件復制到遠程主機上)
scp /val/test.tar.gz [email protected]:/val/test.tar.gz
本地復制遠程目錄:(把遠程的目錄復制到本地)
scp -r [email protected]:/val/test/ /val/test/
遠程復制本地目錄:(把本地的目錄復制到遠程主機上)
scp -r /val/ [email protected]:/val/
註:復制的是目錄的話就要加-r參數
當同時有多個伺服器的文件要復制到本地目錄:
scp [email protected]:/var/cp1.tar.gz [email protected]:/var/cp2.tar.gz /var/tmp/
注意:最後面的一個必需是目錄,前面的必須是文件,才能成功批量復制,復制中會提示多次輸入密碼。
5. scp本地往遠程伺服器拷貝文件或文件夾
1.拷貝文件
scp local_file remote_username@remote_ip:remote_file
2.拷貝文件夾
scp -r local_folder remote_username@remote_ip:remote_folder
-r 是遞歸復制整個目錄
6. scp文件用什編輯不會腳本報錯
scp文件編輯不會腳本報錯的方法:
1、scp命令用於操作系統之間(Linux之間或者linux與windows之間)復制文件和目錄。scp是secure的縮寫,scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。
2、從本地復制到遠程A.復制文件命令格式(1)scplocal_fileremote_username@remote_ip:remote_folder(2)scplocal_fileremote_username@remote_ip:remote_file(3)scplocal_fileremote_ip:remote_folder(4)scplocal_fileremote_ip:remote_file說明:第1,2個指定了用戶名,命令執行後需要再輸入密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名。第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名。
3、復制目錄命令格式:(1)scp-rlocal_folderremote_username@remote_ip:remote_folder(2)scp-rlocal_folderremote_ip:remote_folder說明:第1個指定了用戶名,命令執行後需要再輸入密碼。第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼。
7. scp如何一次拷貝多個文件或者文件夾
scp -r root@ip:/home/name/data/ 你自己的文件夾
8. scp命令詳解
轉自:https://www.cnblogs.com/likui360/p/6011769.html
先說下常用的情況:
兩台機器IP分別為:A.104.238.161.75,B.43.224.34.73。
在A伺服器上操作,將B伺服器上/home/lk/目錄下所有的文件全部復制到本地的/root目錄下,命令為:scp -r [email protected]:/home/lk /root。
具體過程為:
[root@XX ~]#scp-r [email protected]:/home/lk /root
[email protected]'s password: k2.sql100%00.0KB/s00:00
k.zip100%1760.2KB/s00:00
.bash_history 100%320.0KB/s00:00
.bash_logout 100%180.0KB/s00:00
.bashrc 100%2310.2KB/s00:00
k3.sql 100%00.0KB/s00:00
.bash_profile 100%1930.2KB/s00:00
[root@XX ~]#ls
在A伺服器上將/root/lk目錄下所有的文件傳輸到B的/home/lk/cpfile目錄下,命令為:scp -r /root/lk [email protected]:/home/lk/cpfile。
具體過稱為:
[root@XX lk]#scp-r /root/lk [email protected]:/home/lk/cpfile
[email protected]'s password: k2.sql100%00.0KB/s00:00
k3.sql 100%00.0KB/s00:00
.bash_profile 100%1930.2KB/s00:00
.bash_logout 100%180.0KB/s00:00
.bash_history 100%320.0KB/s00:00
k.zip100%1760.2KB/s00:00
.bashrc 100%2310.2KB/s00:00
[root@XX lk]#
scp在誇機器復制的時候為了提高數據的安全性,使用了ssh連接和加密方式,如果機器之間配置了 ssh免密碼登錄 ,那在使用scp的時候密碼都不用輸入。
命令詳解:
scp是secure 的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system時,用scp可以幫你把文件移出來。另外,scp還非常不佔資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然 rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。
1.命令格式:
scp [參數] [原路徑] [目標路徑]
2.命令功能:
scp是 secure 的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。linux的scp命令可以在linux伺服器之間復制文件和目錄。
3.命令參數:
-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)的選項。
4.使用實例:
scp命令的實際應用概述:
從本地伺服器復制到遠程伺服器:
(1) 復制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2個指定了用戶名,命令執行後需要輸入用戶密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名
第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名
(2) 復制目錄:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1個指定了用戶名,命令執行後需要輸入用戶密碼;
第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼;
9. SCP服務傳輸文件
scp 是用於遠程拷貝文件,類似於本地拷貝文件命令cp,scp傳輸是加密傳輸,並且不佔用系統資源。可能會稍微影響一下速度,但相比其他傳輸,在文件較小時幾乎無明顯差距。
scp src-dir-file des-dir-file
src-dir-file源文件:要復制的源文件,注意平台差異。
des-dir-file目標文件:目標文件,注意平台差異。
從遠處復制文件或者文件夾到本地目錄
linux:
scp [email protected]:/data/test.py /opt/soft/
scp -r [email protected]:/tool/romTest /opt/soft/
windows:
scp [email protected]:/log/log.txt d:/
scp -r [email protected]:/tool/romTest d:/
上傳本地文件到遠程機器指定目錄
linux:
scp /opt/soft/test.py [email protected]:/data
scp -r /opt/soft [email protected]:/tool/romTest
windows:
scp d:/log.txt [email protected]:/log
scp -r d:/romTest [email protected]:/tool
https://winscp.net/eng/download.php
10. 遠程拷貝文件命令Scp的使用
scp通過網路在兩台主機之間拷貝文件,數據在傳輸過程中是經過加密的,其底層使用ssh來進行數據傳輸,並且它和ssh有相同的驗證機制和同樣的安全級別。當使用scp拷貝一個文件到另一台主機上的時候,如果目標文件已經存在,那麼默認會將目標文件的內容替換為拷貝來的文件的內容。如果目標文件不存在,系統會先創建一個空的目標文件,然後再將拷貝文件的內容填充到新創建的目標文件中。
scp命令基本格式:
# scp [可選參數] file_source file_target
選項
scp選項:
# scp --help
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 遞歸拷貝指定的整個文件夾。
-c cipher 選擇cipher方式來加密傳輸的數據,該選項將直接傳遞給ssh使用。
-F ssh_config 指定一個可用來替代ssh的配置文件,該選項直接傳遞給ssh使用。
-i identity_file 從指定的文件中讀取用於RSA 驗證的密鑰,該選項直接傳遞給ssh使用。
-l limit 限定用戶可以使用的寬頻,以Kbit/s為速度單位。
-P port 這里的P是大寫。指定連接遠程主機用的埠。
-S program 指定加密傳輸連接時使用的加密程序。
scp使用示例:
例一:
格式:scp local_file remote_username@remote_ip:remote-directory
# scp /home/test.sh [email protected]:/test.sh
這種方式因為指定了用戶名root,所以僅需要輸入密碼。這是將本地/home/test.sh文件遠程拷貝到主機192.168.18.130的根目錄下。
例二:
# scp /home/test.sh 192.168.18.130:/test.sh
這種方式因為沒有指定用戶名,所以需要手動輸入用戶名和密碼。注意,如果沒有指定目的主機的用戶名,默認會是root用戶。
例三:
# scp –r /home/backup [email protected]:/backup
遞歸拷貝整個文件夾的內容到目標文件夾內。如果目標文件夾/backup不存在,會先創建該文件夾。從 遠程 復制到 本地
=====================================================
如果需要從遠程復制文件到本地,只要將從本地復制到遠程的命令的後2個參數調換順序即可。
例如:
scp -r [email protected]:/root/music/ /home/music/
注意兩點:
1.如果遠程主機防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:
#scp -p 5469 [email protected]:/root/music/ /home/music/
2.使用scp要注意所使用的用戶是否具有可讀取遠程主機相應文件的許可權。