一、安裝與基本使用
scp(secure copy)命令是Linux系統中常用的一個工具,用於在不同主機之間複製文件和目錄,scp使用SSH協議進行傳輸,既安全又能保證數據完整性。使用scp非常方便,只需要在終端輸入下面的命令即可:
scp username@source:/path/to/file username@destination:/path/to/destination
其中username為遠程主機的用戶名,source是源主機,destination是目標主機,/path/to/file是源主機上的文件路徑,/path/to/destination是目標主機上的文件路徑。
如果需要傳輸目錄,只需加上-r選項:
scp -r username@source:/path/to/directory username@destination:/path/to/destination
下面是一個示例,將本地文件test.txt傳輸到遠程主機的/tmp目錄中:
scp test.txt username@192.168.1.100:/tmp
如果需要從遠程主機複製文件,只需要交換本地和遠程服務器的位置即可:
scp username@source:/path/to/file /path/to/destination
二、常用選項
scp命令支持多種選項,下面列出幾個常用的選項:
- -P:指定SSH服務器的端口號(默認為22)。
- -p:保持原文件的修改時間、訪問時間和權限屬性。
- -q:安靜模式,不顯示scp的執行過程。
- -C:開啟壓縮傳輸,能夠提高傳輸效率。
- -v:詳細模式,顯示scp的執行過程。
下面是一個示例,將本地文件夾/backup下的文件傳輸到遠程服務器192.168.1.100的/tmp目錄,並開啟壓縮傳輸和詳細模式:
scp -Cv -r /backup username@192.168.1.100:/tmp
三、使用SSH密鑰認證登錄
使用密碼認證雖然方便,但安全性不高。使用SSH密鑰認證能夠提高安全性,同時也更加方便。下面是使用SSH密鑰認證登錄的步驟:
- 生成密鑰對:
ssh-keygen -t rsa
運行上述命令後,按照提示一步步操作,確保在不需要輸入密碼的情況下連接到遠程服務器。ssh將為您生成兩個密鑰:一個公鑰和一個私鑰。其中,私鑰必須始終保持保密狀態,並且只應在本地計算機上存儲;公鑰需要複製到遠程服務器端。
- 將公鑰複製到遠程服務器上:
ssh-copy-id username@remotehost
運行上述命令後,將自動將您的公鑰複製到遠程服務器的authorized_keys文件中。現在您可以使用ssh命令連接到遠程服務器,無需輸入密碼。
- 使用scp命令:
在複製文件或目錄時,只需要在scp命令後添加-i選項並指定私鑰文件的路徑:
scp -i /path/to/privatekey /path/to/file username@remotehost:/path/to/destination
四、使用rsync命令代替scp
雖然scp命令功能強大,但在複製大量文件或目錄時,它可能會比較慢。這時,推薦使用rsync命令,這是一個更加高級的工具,能夠快速、安全地傳輸大量數據,並提供更多功能。
rsync命令的基本語法如下:
rsync [OPTIONS] source destination
其中,source是源目錄或文件,destination是目標目錄或文件。下面是一些常用選項:
- -a:歸檔模式,遞歸複製文件,保留文件的所有屬性。
- -z:開啟壓縮傳輸。
- –progress:顯示傳輸進度。
下面是一個示例,將本地目錄/backup傳輸到遠程主機192.168.1.100的/tmp目錄中:
rsync -az --progress /backup/ username@192.168.1.100:/tmp
rsync命令還支持多種其他選項,如刪除源文件、同步文件夾等功能。有興趣的讀者可以查看文檔了解更多信息。
五、總結
本文介紹了使用scp命令在Linux系統之間快速、安全地傳輸文件的方法,包括基本使用、常用選項、SSH密鑰認證登錄、以及使用rsync命令代替scp。使用scp命令能夠方便地在不同主機之間傳輸文件,而使用SSH密鑰認證登錄和rsync命令能夠提高安全性和傳輸效率。希望本文能夠幫助讀者更好地管理Linux系統。
原創文章,作者:SHMH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/143598.html