inotify 是 Linux 內核提供的一種文件系統事件監控機制,它可以實時監控文件或目錄的變化,如創建、刪除、修改等。而 rsync 是一個用于文件同步和備份的工具。將 inotify 與 rsync 結合使用,可以實現實時的文件同步。
以下是一個簡單的示例,說明如何在 Ubuntu 系統中使用 inotifywait(inotify 的一個命令行工具)和 rsync 協同工作:
inotify-tools 軟件包,它包含了 inotifywait 命令。如果沒有安裝,可以使用以下命令安裝:sudo apt-get update
sudo apt-get install inotify-tools
sync.sh 的 shell 腳本,并添加以下內容:#!/bin/bash
# 源目錄和目標目錄
src_dir="/path/to/source/directory"
dest_dir="/path/to/destination/directory"
# 使用 inotifywait 監控源目錄的變化,并在檢測到變化時執行 rsync 命令
inotifywait -m -r -e create,delete,modify --format '%w%f' "${src_dir}" | while read file
do
# 使用 rsync 同步文件或目錄
rsync -avz --delete "${src_dir}/" "${dest_dir}"
done
請將 /path/to/source/directory 和 /path/to/destination/directory 替換為實際的源目錄和目標目錄路徑。
chmod +x sync.sh
./sync.sh
現在,每當源目錄中的文件發生變化時,inotifywait 都會檢測到這些變化,并觸發 rsync 命令將更改同步到目標目錄。
注意:這個示例僅用于演示目的。在實際應用中,可能需要根據具體需求對腳本進行調整,例如添加日志記錄、錯誤處理等功能。