一般情況下執行拷貝命令時會提示我們輸入遠程伺服器的使用者名稱和密碼,這在自動執行的程式中是一個障礙,因為沒有人工的幹預。關於伺服器之間互訪不要求輸入密碼的方式前面已經有介紹,可以參考前面的文章。這裡介紹一下scp拷貝命令。
scp 本機使用者名@IP地址:檔案名稱1 遠端使用者名@IP地址:檔案名稱2
[本機使用者名@IP地址:] 可以不輸入,可能需要輸入遠端使用者名所對應的密碼.
scp 命令
==================
scp 可以在 2個 linux 主機間複製檔案;
命令基本格式:
scp [選擇性參數] file_source file_target
======
從 本地 複製到 遠程
======
* 複製檔案:
* 命令格式:
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個指定了檔案名稱;
* 常式:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/002.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/002.mp3
* 複製目錄:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1個指定了使用者名稱,命令執行後需要再輸入密碼;
第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼;
* 常式:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 將 本地 music 目錄 複製 到 遠程 others 目錄下,即複製後有 遠程 有 ../others/music/ 目錄
======
從 遠程 複製到 本地
======
從 遠程 複製到 本地,只要將 從 本地 複製到 遠程 的命令 的 後2個參數 調換順序 即可;
例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/i.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
假設有兩台伺服器A和B,B伺服器的IP地址是115.47.169.130,現在需要將B伺服器上的/var/logs/test.log檔案拷貝到A伺服器上的/bak/目錄下。則可以在A伺服器上執行命令
/usr/bin/scp root@115.47.169.130:/var/logs/test.log /bak/test.log
如果需要將A伺服器上的/bak/test.sql拷貝到B伺服器的/data/目錄下則可以在A伺服器上執行
/usr/bin/scp /bak/test.sql root@115.47.69.130:/data/test.sql
說到這裡如果要在B伺服器上操作,相信各位應該都會了吧,另外一點如果遠程伺服器預設的連接埠不是22可以使用在scp後使用-P命令指定連接埠,例如:
/usr/bin/scp -P2200 root@115.47.169.130:/var/logs/test.log /bak/test.log
可能有用的幾個參數:
-v 和大多數linux命令中的-v意思一樣,用來顯示進度.可以用來查看串連,認證,或是配置錯誤.
-C 使能壓縮選項.
-P 選擇連接埠.注意-p已經被rcp使用.
-4 強行使用IPV4地址.
-6 強行使用IPV6地址.
拷貝單個檔案命令:
scp file username@ip:filepath
說明:
file: 要拷貝的檔案名稱
username: 遠程登入的使用者名稱,
ip:遠程伺服器ip
filepath:遠程檔案路徑
拷貝檔案夾命令如下(多加上一個-r 參數即可):
scp -r file username@ip:filepath