作者介紹:一個在簡歷上沒有標注精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面的思維導圖展示了預計更新的內容和當前進度(不定時更新)。
在上一章節中,我們已經對linux系統自帶的日志服務有了初步的了解。接下來,我們將深入探討一些高級命令,這些命令將從以下幾個方面進行講解:系統操作、系統查看和處理、Linux文本處理、邏輯判斷、重定向、網絡傳輸、服務啟動以及文件句柄等。通過這些操作,您將能夠更加熟練地操作Linux系統。具體內容將分為以下章節進行講解:
Linux進階命令-top
Linux進階命令-ps&kill
Linux進階命令-sort&wc
Linux進階命令-sed&split
Linux進階命令-awk&uniq
Linux進階命令-邏輯或&邏輯與
Linux進階命令-重定向
Linux進階命令-scp(本章節)
Linux進階命令-rsync
Linux進階命令-rsync-daemon
Linux進階命令-nohup&screen
Linux進階命令-lsof
Linux進階命令-小結
隨著對命令的深入學習和網絡傳輸相關內容的介紹,一個常見的問題是如何將文件傳輸到服務器中?在windows和Linux之間,可以使用rz和sz進行文件傳輸,但在Linux系統內如何通過網絡傳輸文件呢?
SCP
scp(secure copy)命令用于在本地計算機和遠程計算機之間或兩個遠程計算機之間安全地復制文件或目錄。它基于ssh協議,因此在傳輸過程中會加密數據以保護安全性。scp命令的語法和常用選項如下:
基本語法
scp [options] source destination
source和destination:指定要復制的文件或目錄的路徑,可以是本地路徑或遠程路徑。使用示例:
- 從本地復制文件到遠程計算機
scp localfile.txt username@remotehost:/remote/path/
將localfile.txt文件從本地計算機復制到遠程計算機的/remote/path/目錄中。
- 從遠程計算機復制文件到本地
scp username@remotehost:/remote/path/remotefile.txt /local/path/
將遠程計算機上的/remote/path/remotefile.txt文件復制到本地計算機的/local/path/目錄中。
- 從本地復制目錄到遠程計算機
scp -r localdir/ username@remotehost:/remote/path/
使用-r選項遞歸復制localdir/目錄及其內容到遠程計算機的/remote/path/目錄中。
- 從遠程計算機復制目錄到本地
scp -r username@remotehost:/remote/path/remotedir/ /local/path/
使用-r選項遞歸復制遠程計算機上的/remote/path/remotedir/目錄及其內容到本地計算機的/local/path/目錄中。
- 從一個遠程計算機復制文件到另一個遠程計算機
scp username1@remotehost1:/remote/path/file.txt username2@remotehost2:/remote/path/
將remotehost1上的/remote/path/file.txt文件復制到remotehost2上的/remote/path/目錄中。
說實話,我從未使用過這種復制方式。
常用選項
- -r:遞歸復制整個目錄。
- -P port:指定遠程主機的SSH端口(注意是大寫的-P,與ssh的小寫-p不同)。
- -i identity_file:指定用于身份驗證的私鑰文件。
- -q:靜默模式,不顯示進度信息。
- -C:啟用壓縮,以提高傳輸速度(對于大文件或慢速網絡連接可能有用)。
- -o option:傳遞選項給SSH,例如-o StrictHostKeyChecking=no來禁用主機密鑰檢查。
認證方式
scp使用SSH協議進行認證,支持多種身份驗證方式:
- 密碼認證:在連接時輸入SSH密碼。
- 密鑰認證:使用SSH密鑰對進行無密碼登錄。可以通過-i選項指定私鑰文件。
安全性
scp的安全性來自于SSH協議,這包括:
- 數據加密:所有傳輸的數據都被加密,防止數據被竊聽。
- 身份驗證:使用密碼或密鑰進行身份驗證,確保訪問權限。
- 數據完整性:通過加密技術確保數據在傳輸過程中不被篡改。
總結
scp主要用于兩個Linux服務器之間進行數據傳輸,實際上,如果在Windows上安裝了git命令,也可以使用此命令。這里的用戶名可以省略,默認會讀取當前登錄系統的用戶名。此外,這里還涉及到SSH端口的問題,與用戶名一樣,如果本地SSH端口和服務器一致,則可以省略。需要注意的是,如果目標端已存在文件,scp傳輸文件時會覆蓋該文件。
scp的一個重要問題是沒有考慮復制中斷和增量復制的需求。如果在復制過程中出現意外,您需要重新開始復制;如果重復執行復制命令,它也會再次復制。