Linux中利用scp命令進行自動遠程拷貝

來源:互聯網
上載者:User

一般情況下執行拷貝命令時會提示我們輸入遠程伺服器的使用者名稱和密碼,這在自動執行的程式中是一個障礙,因為沒有人工的幹預。關於伺服器之間互訪不要求輸入密碼的方式前面已經有介紹,可以參考前面的文章。這裡介紹一下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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.