mac使用系列之scp下載遠端檔案

jasminecjc發表於2016-11-23

不同的Linux之間copy檔案常用有3種方法:

第一種就是ftp,也就是其中一臺Linux安裝ftp Server,這樣可以另外一臺使用ftp的client程式來進行檔案的copy

第二種方法就是採用samba服務,類似Windows檔案copy 的方式來操作,比較簡潔方便。

第三種就是利用scp命令來進行檔案複製。

scp是有Security的檔案copy,基於ssh登入。操作起來比較方便
命令基本格式:

scp [OPTIONS] file_source file_target 

eg: 從 本地 複製到 遠端

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 

(然後會提示你輸入另外那臺172.19.2.75主機的root使用者的登入密碼,接著就開始copy了),複製目錄加引數 -r 即可

下面介紹引數可選項。
-1 強制scp命令使用協議ssh1。
-2 強制scp命令使用協議ssh2 。
-4 強制scp命令只使用IPv4定址 。
-6 強制scp命令只使用IPv6定址 。
-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)。
-C 允許壓縮。(將-C標誌傳遞給ssh,從而開啟壓縮功能) 。
-p 保留原檔案的修改時間,訪問時間和訪問許可權。
-q 不顯示傳輸進度條。
-r 遞迴複製整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的除錯資訊。這些資訊用於除錯連線,驗證和配置問題。
-c cipher 以cipher將資料傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config 指定一個替代的ssh配置檔案,此引數直接傳遞給ssh。
-i identity_file 從指定檔案中讀取傳輸時使用的金鑰檔案,此引數直接傳遞給ssh。
-l limit 限定使用者所能使用的頻寬,以Kbit/s為單位。
-o ssh_option 如果習慣於使用ssh_config(5)中的引數傳遞方式。
-P port 注意是大寫的P, port是指定資料傳輸用到的埠號。
-S program 指定加密傳輸時所使用的程式。此程式必須能夠理解ssh(1)的選項。

注意兩點:

1.如果遠端伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:

#scp -p 4588 file_source file_target 

2.使用scp要注意所使用的使用者是否具有可讀取遠端伺服器相應檔案的許可權。
3.scp報錯:not a regular file
原因是 這樣是相當於下載資料夾,而非檔案。
解決:加-r引數
4.permission denied
其他目錄對此目錄沒有許可權
解決:
在此目錄開啟終端files target使用./

相關文章