轉載自:http://www.vpser.net/manage/scp.html
一、scp是什麼?
scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件,scp傳輸是加密的,數據傳輸使用 ssh1, 並且和 ssh1 使用相同的認證方式,提供相同的安全保證。與rcp不同的是,scp會要求你輸入密碼。
二、scp有什麼用?
1、我們需要獲得遠程服務器上的某個文件,遠程服務器既沒有配置ftp服務器,沒有開啓web服務器,也沒有做共享,無法通過常規途徑獲得文件時,只需要通過scp命令便可輕鬆的達到目的。
2、我們需要將本機上的文件上傳到遠程服務器上,遠程服務器沒有開啓ftp服務器或共享,無法通過常規途徑上傳是,只需要通過scp命令便可以輕鬆的達到目的。
三、scp使用方法
1、獲取遠程服務器上的文件
scp root@host_ip:/root/tmp.log /home/tmp.log
root@host_ip 表示使用root用戶登錄遠程服務器host_ip;
:/root/tmp.log 表示遠程服務器上的文件;
/home/tmp.log 表示保存在本地上的路徑和文件名;
2、獲取遠程服務器上的目錄
scp -r root@host_ip:/root/tmp/ /home/tmp/
-r 參數表示遞歸複製(即複製該目錄下面的文件和目錄);
注意,傳輸文件夾時,要使用 -r 參數,不然會出現"not a regular file"錯誤!!
:/root/tmp/ 表示遠程服務器上的目錄;
/home/tmp/ 表示保存在本地上的路徑;
3、將本地文件上傳到服務器上
scp /home/tmp.log root@host_ip:/root/tmp.log
/home/tmp.log 表示本地上準備上傳文件的路徑和文件名;
:/root/tmp.log 表示保存在遠程服務器上目錄和文件名;
4、將本地目錄上傳到服務器上
scp -P 2222 -r /home/tmp/ root@host_ip:/root/tmp/
/home/tmp/ 表示準備要上傳的目錄;
5、可能有用的幾個參數 :
-v 和大多數linux命令中的-v意思一樣,用來顯示進度,可以用來查看連接,認證,或是配置錯誤;
-C 使能壓縮選項;
-4 強行使用IPV4地址;
-6 強行使用IPV6地址;
-P 選擇端口,注意-p已經被rcp使用;
-r 遞歸查找;
注意:
使用scp傳輸“文件夾”時,出現 not a regular file;其原因是傳輸文件夾時沒有加參數-r 導致。
所以在傳輸文件夾的時候,要使用 scp -r folder_dir user@host:folder_dir 來傳輸!!!