溫馨提示×

inotify如何檢測目錄變動

小樊
51
2025-09-25 05:33:45
欄目: 編程語言

inotify 是 Linux 系統中的一個內核子系統,它可以實時監控文件系統事件,如文件的創建、刪除、修改等。要使用 inotify 檢測目錄變動,你需要使用 Linux 提供的 inotify API。以下是一個簡單的示例,展示了如何使用 inotify 監控目錄變動:

  1. 首先,確保你的系統已經安裝了 inotify-tools。在大多數 Linux 發行版中,可以使用以下命令安裝:
sudo apt-get install inotify-tools
  1. 創建一個名為 monitor_directory.sh 的 shell 腳本,并添加以下內容:
#!/bin/bash

# 檢查參數數量
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <directory> <event>"
    exit 1
fi

# 獲取目錄和事件參數
DIRECTORY=$1
EVENT=$2

# 使用 inotifywait 監控目錄
inotifywait -m -r -e "$EVENT" "$DIRECTORY" --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S'

這個腳本接受兩個參數:要監控的目錄和要檢測的事件(如 CREATE、DELETE、MODIFY 等)。

  1. 為腳本添加可執行權限:
chmod +x monitor_directory.sh
  1. 運行腳本,監控指定目錄的變動:
./monitor_directory.sh /path/to/directory CREATE

這將監控 /path/to/directory 目錄,并在檢測到文件創建事件時輸出相關信息。

注意:inotify 有一個限制,即它只能監控一定數量的文件描述符。默認情況下,這個限制可能較低(例如 128)。如果你需要監控大量文件或目錄,可能需要增加這個限制??梢酝ㄟ^以下命令查看當前限制:

cat /proc/sys/fs/inotify/max_user_watches

要增加限制,可以運行以下命令(需要 root 權限):

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

這將把限制增加到 524,288。你可以根據需要調整這個值。

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