2011-11-17 22 views
2

我想監視我的服務器上的目錄以添加(或文件更新),並且在添加某些內容時運行php腳本。我看到有watch,但我不確定如何使用它。監控目錄,然後運行PHP腳本

我知道watch -d ls -l將跟蹤文件列表中的更改,但是如何將更改後的文件傳送到php腳本?另外,如何查看不是新的文件,而是更新?

我可以運行此配置文件(什麼目錄等),以便於安裝到最終用戶?

+1

相關:[文件夾監控和事件觸發根據文件夾狀態在PHP](http://stackoverflow.com/questions/8135842/folder-monitoring-and-event-triggering-according-to-folder-status-in -php) – hakre

回答

2

您可以在bash腳本中使用inotifywait(來自inotify-tools)。

while read file; do 
    php some_script.php "$file" 
done < inotifywait -e create,delete,move,modify -m . --format "%w%f" $dir 

%w%f會給你文件路徑。如果您還需要添加%e事件。有關更多格式選項和事件名稱,請參閱聯機幫助頁。

另一種可能性是incron,但這需要一個系統守護進程。

0

每次我使用手錶,它似乎消耗當前控制檯/ tty。可能不是管理PHP腳本的最佳工具。

我會採取的一種方法是有一個PHP腳本做目錄列表,存儲在數據庫像SQLite等,然後比較差異,因爲它是一個PHP腳本,它可以將信息傳遞給其他PHP腳本或將腳本的其餘部分合並。你可以讓cron運行你的php腳本。