scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,scp傳輸是加密的,可能會稍微影響一下速度其佔用的系統資源非常小。非常適合遠程文件的拷貝。本篇我們就詳細介紹下scp的用法。
首先我們啟動兩臺ubuntu系統的設備,並且確保兩臺設備都開啟了ssh遠程登錄,且兩臺設備能互相通信。然後我們介紹第一條命令將本地的目錄上傳的遠程伺服器目錄上。執行命令"scp -r /opt/test root@192.168.2.105:/opt"。本條命令意思為將本地的目錄/opt/test上傳到遠程192.168.2.105的opt目錄下。然後根據提示輸入root的密碼,等待即可上傳完畢。
接下來我們登錄遠程伺服器進行查看驗證,可以看到目錄內的文件已經全部拷貝過來。
下面我們介紹將本地的文件上傳到遠程伺服器上。執行命令"scp /root/node-v4.2.1-linux-x64.tar.gz root@192.168.2.105:/opt/test"。意思為將本地文件node-v4.2.1-linux-x64.tar.gz上傳到伺服器/opt/test目錄下。
下面我們再次驗證是否真正的上傳成功。登錄遠程伺服器進行查看,可以看到已經拷貝成功。
下面我們介紹如何將遠程伺服器的目錄,拷貝到本地。執行命令"scp -r root@192.168.2.105:/root/rules /opt"。意思為將遠程伺服器上/root/rules目錄內的內容拷貝到本地的opt目錄下。
接下來還是對拷貝結果的驗證,我們進入/opt目錄下,可以看到rules目錄以及目錄下的文件都拷貝過來了。
下面我們介紹如何將遠程伺服器上的文件拷貝的本地。我們執行命令"scp -P 22 root@192.168.2.105:/root/filters.bpf /opt/"。意思為將遠程伺服器上/root目錄下的filters.bpf文件拷貝到本地的opt目錄下。
下面還是驗證是否拷貝過來,我們進入opt目錄,可以查看到filters.bpf已經拷貝過來。
以上為簡單幾個實例來介紹scp命令的用法。其命令格式為:scp [參數] [原路徑] [目標路徑]。下面介紹參數可選項。-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)的選項。