在服務器之間做數據備份一般會用到遠程拷貝命令,scp命令就可以做到遠程拷貝,并且支持從本地到遠程的拷貝和從遠程到本地的拷貝.
一般情況下執行拷貝命令時會提示我們輸入遠程服務器的用戶名和密碼,這在自動執行的程序中是一個障礙,因為沒有人工的干預,關于服務器之間互訪不需要密碼的方式前面已經有介紹,可以參考前面的文章,這里介紹一下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@m.survivalescaperooms.com:/home/root/others/music
- scp /home/space/music/1.mp3 root@m.survivalescaperooms.com:/home/root/others/music/002.mp3
- scp /home/space/music/1.mp3 m.survivalescaperooms.com:/home/root/others/music
- scp /home/space/music/1.mp3 m.survivalescaperooms.com:/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.Vevbcom:/home/root/others/
- scp -r /home/space/music/ m.survivalescaperooms.com:/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
新聞熱點
疑難解答