相信各位VPSer在使用VPS時會常常在不同VPS間互相備份數據或者轉移數據,大部分情況下VPS上都已經安裝了Nginx或者類似的web server,直接將要傳輸的文件放到web server的文件夾。然后在目標機器上運行:wget http://www.vpser.net/testfile.zip 即可了。當VPS上沒有安裝web server和ftp server的時候或感覺上面的方法比較麻煩,那么用scp命令就會排上用場。
一、scp是什么?
scp是secure copy的簡寫,用於在Linux下進行遠程復制文件的命令,和它類似的命令有cp,只是cp僅僅是在本機進行拷貝不能跨server,並且scp傳輸是加密的。可能會略微影響一下速度。
二、scp有什么用?
1、我們須要獲得遠程server上的某個文件。遠程server既沒有配置ftpserver。沒有開啟webserver,也沒有做共享。無法通過常規途徑獲得文件時,僅僅須要通過scp命令便可輕松的達到目的。
2、我們須要將本機上的文件上傳到遠程server上,遠程server沒有開啟ftpserver或共享,無法通過常規途徑上傳是。僅僅須要通過scp命令便能夠輕松的達到目的。
三、scp用法
1、獲取遠程server上的文件
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
上port大寫P 為參數,2222 表示更改SSHport后的port。假設沒有更改SSHport能夠不用加入該參數。 root@www.vpser.net 表示使用root用戶登錄遠程serverwww.vpser.net。:/root/lnmp0.4.tar.gz 表示遠程server上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路徑和文件名稱。
2、獲取遠程server上的文件夾
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/
上port大寫P 為參數。2222 表示更改SSHport后的port。假設沒有更改SSHport能夠不用加入該參數。-r 參數表示遞歸復制(即復制該文件夾以下的文件和文件夾);root@www.vpser.net 表示使用root用戶登錄遠程serverwww.vpser.net,:/root/lnmp0.4/ 表示遠程server上的文件夾。最后面的/home/lnmp0.4/表示保存在本地上的路徑。
3、將本地文件上傳到server上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz
上port大寫P 為參數。2222 表示更改SSHport后的port,假設沒有更改SSHport能夠不用加入該參數。
/home/lnmp0.4.tar.gz表示本地上准備上傳文件的路徑和文件名稱。root@www.vpser.net 表示使用root用戶登錄遠程serverwww.vpser.net。:/root/lnmp0.4.tar.gz 表示保存在遠程server上文件夾和文件名稱。
4、將本地文件夾上傳到server上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
上 port大寫P 為參數,2222 表示更改SSHport后的port,假設沒有更改SSHport能夠不用加入該參數。-r 參數表示遞歸復制(即復制該文件夾以下的文件和文件夾);/home/lnmp0.4/表示准備要上傳的文件夾。root@www.vpser.net 表示使用root用戶登錄遠程serverwww.vpser.net。:/root/lnmp0.4/ 表示保存在遠程server上的文件夾位置。
5、可能實用的幾個參數 :
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示運行進度 . 能夠用來查看連接 , 認證 , 或是配置錯誤 .
-C 使能壓縮選項 .
-4 強行使用 IPV4 地址 .
-6 強行使用 IPV6 地址 .
