
Мне нужно отслеживать, например, файл/tmp/somefile123был создан после некоторых событий. Я пытался использоватьinotifyждатьно вот проблема:
# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
поскольку такого файла точно нет, я хочу знать, будет ли он там!
Как мне решить эту проблему?
ОБНОВЛЕНИЕ: Возможно, если я объясню, чего я хочу добиться, это будет более понятно.
Мне нужно написать скрипт оболочки (sh) с минимальным потреблением ресурсов процессора, что-то вроде этого:
if [ $(inotifywait -e create $SPECIFIC_FILE) ]; then
blah-blah-blah some actions
fi
# And then similarly monitor if this file was deleted and then do another actions
Я ожидаю, что выполнение скрипта прекратитсяinotifywait -e создать $SPECIFIC_FILEпока этот $SPECIFIC_FILE не будет создан и было бы лучше тогда
while [ ! -f $SPECIFIC_FILE ]; do
blah-blah-blah some actions
sleep 1
done
решение1
Имеяinotifyждатьпроверьте народительский каталог:
/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1
Вы также можете указать формат времени для события с помощью-timefmtвариант. Также, если вы хотите действовать немедленно, например, выполнив какой-либо файл скрипта, вы можете использоватьхвост -фв файле скрипта для постоянного мониторинга файла журнала, здесь/домой/я/zz, или вы можете создатьименованный каналфайл и иметьinotifyждатьзаписывайте в него данные, пока ваш скрипт читает их.