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