Necesito monitorear si, por ejemplo, el archivo/tmp/algunarchivo123fue creado después de algunos eventos. Intenté usarinotificaresperarpero aquí hay un problema:
# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
Debido a que no existe exactamente tal archivo, ¡quiero saber si estará allí!
¿Cómo puedo resolver este problema?
UPD: Quizás si explico a qué quiero llegar quedará más claro.
Necesito escribir un script de shell (sh) con un consumo mínimo de CPU, algo como esto:
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 el script detenga la ejecución elinotifywait -e crea $SPECIFIC_FILEhasta que este $SPECIFIC_FILE no se cree y sería mejor entonces
while [ ! -f $SPECIFIC_FILE ]; do
blah-blah-blah some actions
sleep 1
done
Respuesta1
Por tenerinotificaresperarcomprobar eldirectorio de padres:
/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1
También puede especificar el formato de hora para el evento con el-timefmtopción. Además, si desea actuar inmediatamente ejecutando algún archivo de script, por ejemplo, puede utilizarcola -fen el archivo de script para monitorear continuamente el archivo de registro, aquí/home/yo/zz, o puedes crear untubería con nombrepresentar y tenerinotificaresperarescríbalo, mientras su script lo lee.