Preciso monitorar se, por exemplo, arquivo/tmp/algumarquivo123foi criado após alguns eventos. Eu tentei usarinotifywaitmas aqui está um problema:
# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
porque exatamente não existe esse arquivo, quero saber se ele estará lá!
Como posso resolver esse problema?
Atualização: Talvez se eu explicar o que quero alcançar ficará mais claro.
Preciso escrever shell script (sh) com consumo mínimo de CPU, algo assim:
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
Espero que esse script pare a execução eminotifywait -e criar $SPECIFIC_FILEaté que este $SPECIFIC_FILE não seja criado e seria melhor então
while [ ! -f $SPECIFIC_FILE ]; do
blah-blah-blah some actions
sleep 1
done
Responder1
Tendoinotifywaitverifique noDiretório Parental:
/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1
Você também pode especificar o formato da hora do evento com o botão-timefmtopção. Além disso, se você quiser agir imediatamente executando algum arquivo de script, por exemplo, você pode usarcauda -fno arquivo de script para monitorar continuamente o arquivo de log, aqui/home/eu/zzou você pode criar umtubo nomeadoarquivar e terinotifywaitescreva nele, enquanto seu script lê a partir dele.