linux - problemas para conseguir incron inotify para trabajar
centos filesystems (1)
Por lo general, puede encontrar los registros de incron en / var / log / messages
Si desea registrar eventos en un archivo específico, puede usar:
/test/ IN_CREATE mylog.sh $@$#
donde mylog.sh es un script de shell que maneja el registro.
#!/bin/bash
echo "File $1 created." >> /home/myuser/filescreated.log
No te olvides de dar permiso de ejecución a este script de shell por chmod + x mylog.sh
Explicación: Tan pronto como empiece a usar parámetros para su comando al que está llamando, debe ponerlo todo en un script de shell. Dado que incron no pasa los argumentos a su comando sino que lo interpreta como un argumento para sí mismo.
No se olvide de llamar a incrontab --reload después de cambiar el incrontab.
Otro ejemplo
incrontab -e
/text/ IN_CREATE /home/myuser/mylog.sh $@ $#
mylog.sh
#!/bin/bash
echo "$(date) File $2 in $1 created." >> /home/myuser/log.txt
así que después de la respuesta de Alex aquí están mis pasos:
creando código de shell
root@ip[/]# touch mylog.sh
root@ip[/]# nano mylog.sh
copiando el código en mylog.sh
#!/bin/bash
echo "File $1 created." >> /mylog.log
permiso
root@ip[/]# chmod +x mylog.sh
creando el archivo de registro
root@ip[/]# touch mylog.log
abriendo mesa icron
incrontab -e
poniendo nuevo comando en
/test/ IN_CREATE mylog.sh $@$#
recargar incron - crear un nuevo archivo - verificar el archivo de registro
root@ip[/]# incrontab --reload
requesting table reload for user ''root''...
request done
root@ip[/]# cd test
root@ip[/test]# touch newfile.txt
root@ip[/test]# cd /
root@ip[/]# nano mylog.log
pero aún archivo de registro vacío ... ¿me falta algo?
finalmente llamar al script de shell con la ruta completa hizo el truco así:
/test/ IN_CREATE /mylog.sh $@$#