Linux

shell 腳本可以等待文件更改並採取行動嗎?

  • January 21, 2020

我想知道我是否可以編寫一個腳本來監視文件中的更改並在檢測到更改時執行一些操作。

詳細解釋:

  1. OpenVPN 每 1 分鐘將其狀態寫入一個文件。
  2. 我需要解析這個狀態文件並採取行動。
  3. OpenVPN 在寫入狀態文件之前會截斷它。
  4. 我嘗試寫入命名管道,但當應用程序無法截斷管道時,我會在應用程序中遇到不希望的(但不是致命的)錯誤。

便宜又髒的方式:

stat -c %Y file當修改時間發生變化時循環並採取行動。

可能更好:

使用 inotify cron 服務來監視文件修改事件並執行您的操作:

/path/to/your/file IN_MODIFY /path/to/your/script $#

看看incron

$$ 1 $$或其他 inotify-stuff 來觸發腳本的執行。 $$ 1 $$ http://inotify.aiken.cz/?section=incron&page=about&lang=en

引用自:https://serverfault.com/questions/287050