在Debian系統中,設置inotify事件觸發通常涉及以下幾個步驟:
首先,確保你已經安裝了inotify-tools
,這是一個用于監控文件系統事件的工具集。
sudo apt update
sudo apt install inotify-tools
inotifywait
是inotify-tools
中的一個命令行工具,可以用來監控文件或目錄的變化。
inotifywait -m /path/to/directory -e create,delete,modify
-m
:持續監控,直到手動終止。/path/to/directory
:要監控的目錄路徑。-e
:指定要監控的事件類型,例如create
(創建)、delete
(刪除)、modify
(修改)等。監控/home/user/documents
目錄下的所有文件創建、刪除和修改事件:
inotifywait -m /home/user/documents -e create,delete,modify
你可以編寫一個簡單的腳本來自動化處理這些事件。
創建一個名為monitor.sh
的腳本:
#!/bin/bash
MONITOR_DIR="/home/user/documents"
LOG_FILE="/var/log/inotify_monitor.log"
inotifywait -m -r -e create,delete,modify --format '%w%f %e' "$MONITOR_DIR" |
while read FILE EVENT
do
echo "$(date '+%Y-%m-%d %H:%M:%S') - $FILE - $EVENT" >> "$LOG_FILE"
# 在這里添加你想要執行的命令或腳本
# 例如:rsync -avz /home/user/documents /backup/location
done
chmod +x monitor.sh
你可以手動運行這個腳本,或者將其設置為系統服務以便在后臺持續運行。
為了確保腳本在系統啟動時自動運行,你可以將其設置為系統服務。
創建一個名為inotify-monitor.service
的文件:
[Unit]
Description=Inotify Monitor Service
After=network.target
[Service]
ExecStart=/path/to/monitor.sh
Restart=always
User=your_username
[Install]
WantedBy=multi-user.target
sudo systemctl enable inotify-monitor.service
sudo systemctl start inotify-monitor.service
你可以定期檢查日志文件以查看監控事件。
tail -f /var/log/inotify_monitor.log
通過以上步驟,你可以在Debian系統中設置inotify事件觸發,并根據需要自動化處理這些事件。