溫馨提示×

Linux inotify與rsync如何配合使用

小樊
51
2025-09-27 09:06:04
欄目: 智能運維

inotify 是 Linux 系統中的一個內核子系統,它可以監控文件系統事件,如文件的創建、修改、刪除等。rsync 是一個用于在本地和遠程之間同步文件的工具。將 inotifyrsync 配合使用,可以實現實時的文件同步。

以下是一個簡單的示例,展示如何使用 inotifywaitinotify 的一個命令行工具)和 rsync 配合實現實時同步:

  1. 首先,確保已經安裝了 inotify-tools 包,它包含了 inotifywait 命令。在基于 Debian 的系統上,可以使用以下命令安裝:
sudo apt-get install inotify-tools

在基于 RHEL 的系統上,可以使用以下命令安裝:

sudo yum install inotify-tools
  1. 創建一個名為 sync.sh 的 shell 腳本,并添加以下內容:
#!/bin/bash

# 源目錄和目標目錄
src_dir="/path/to/source/directory"
dest_dir="/path/to/destination/directory"

# 使用 inotifywait 監控源目錄中的文件變化
inotifywait -m -r -e create,modify,delete --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 替換為實際的源目錄和目標目錄。

  1. sync.sh 腳本添加可執行權限:
chmod +x sync.sh
  1. 運行 sync.sh 腳本:
./sync.sh

現在,每當源目錄中的文件發生變化時,inotifywait 會檢測到這些變化,并觸發 rsync 同步文件到目標目錄。

注意:這個示例僅用于演示目的,實際使用中可能需要根據需求進行調整。例如,可以考慮將 rsync 命令放入后臺運行,以避免阻塞 inotifywait。此外,還可以考慮使用更高級的工具,如 rsyncd 或第三方實時同步工具(如 Unison 或 Syncthing)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女