RSYNC:一種強大的工具,用於同步本地和遠程目錄
Rsync是用於同步目錄的強大且多功能的實用程序,有效地僅傳輸修改的文件部分。這使得它非常適合使用經常更新的文件管理大型目錄,無論是在兩台機器之間還是在單個系統之間。 SSH集成,數據壓縮,文件屬性保存(權限和時間戳)以及從源缺失的目的地刪除文件的能力,從而增強了其靈活性。
Rsync命令結構:
rsync [options] [源] [目標]
密鑰rsync選項:
-a
( --archive
):保留關鍵的文件元數據(符號鏈接,權限,時間戳)。-v
( --verbose
):提供詳細的輸出。-r
( --recursive
):遞歸處理目錄。--delete
:從源中不在目的地中刪除文件。真正的同步至關重要。-z
( --compress
):在傳輸過程中壓縮數據,保存帶寬。-h
( --human-readable
):以用戶友好的格式顯示文件大小和其他數值數據。-P
:組合--partial
(恢復中斷的傳輸)和--progress
(顯示轉移進度)。同步方案和設置:
Rsync對於各種任務很有價值:將數據備份到遠程服務器,跨機器共享文件,將代碼部署到生產以及保持開發和分期環境之間的一致性。
對於本指南的示例,我們將使用:
本地系統: Debian 11桌面,本地目錄: ~/local/sync/
遠程系統: Debian 12服務器,遠程用戶: ostechnix
,遠程IP: 192.168.1.12
, ~/remote/sync/
基本用法:
假設安裝了rsync
並正確設置了權限,則以下命令副本/將本地目錄同步到遙控器:
rsync -avzp〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
請記住,用您的實際路徑,IP地址和用戶名代替佔位符。
與--delete
的真實同步:
上面的命令反映了目的地的源。為了確保完整的同步(相同的內容),請使用--delete
:
rsync -avzp -dlete〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
這將從源中不存在的目標中刪除文件。謹慎行事--delete
以避免意外數據丟失。
重要考慮因素:
/
)至關重要。省略它們可能導致意外的目錄創建。進一步的增強:
基於密鑰的SSH身份驗證:生成SSH鍵對( ssh-keygen
),將公共密鑰複製到遠程服務器( ssh-copy-id
),並使用默認密鑰路徑或明確指定rsync
命令中的私有密鑰路徑。
實時同步(Inotify):將rsync
與inotifywait
(從inotify-tools
軟件包)相結合,以在文件更改時觸發同步。原始文檔中提供了示例腳本。
使用cron
進行調度:使用cron
自動同步以特定的間隔(例如,每日,每小時)運行。原始文檔中提供了cron
條目的示例。
顯式SSH密鑰路徑:雖然通常不需要默認的密鑰位置,但明確指定腳本中的私鑰路徑提供了更多的控制。
結論:
Rsync是有效文件同步的強大工具。了解其選項並採用最佳實踐,例如基於SSH的基於SSH的身份驗證和計劃的任務,可確保可靠且安全的數據管理。在將rsync
命令應用於生產環境之前,尤其是在使用--delete
選項時,請務必徹底測試。
以上是如何在Linux中使用RSYNC同步本地和遠程目錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!