Sé que ha habido un poco de discusión sobre temas similares a este. Pero esto es lo que básicamente estoy tratando de hacer.
Tengo un directorio de observación llamado watchedy cada vez que se agrega un archivo a ese directorio, quiero activar un script llamado syncbh.shque sacará los archivos de ese directorio y los cargará en un servidor remoto.
La advertencia es que los archivos son creados en el watcheddirectorio por un usuario (usuario2), pero el script es ejecutado por otro (usuario1).
Intenté usar incron para lograr esto, pero sigo encontrándome con un problema importante porque si bien el script1 puede ser ejecutado manualmente por el usuario1 con privilegios de root, el demonio incron nunca se activa automáticamente por un evento de creación de archivos por parte del otro usuario2.
He pensado si la inoticoming sería una mejor alternativa, pero no tengo claro cómo funciona la sintaxis. Si hay una mejor manera de lograr esto, o si termino usando inoticoming, ¿cuál sería la sintaxis del comando para pedirle que mire el /home/user1/watcheddirectorio y ejecute el script /usr/local/bin/syncbh.shsi se crea / modifica un archivo dentro de ese directorio?
Cualquier ayuda sería muy apreciada.
fuente

inoticoming?Respuestas:
Utilizando
inoticoming:Puede poner un script
/etc/init.d/que se ejecuteinoticomingen el momento del arranque.Cree una nueva carpeta para guardar el
inoticomingregistro / últimopidpara lawatchedcarpeta:sudo mkdir -p /var/log/inoticoming/watched/Crea un script
inoticoming_watcheden/etc/init.d/:* Recuerde cambiar <path_to_folder> y <path_to_script> para que coincidan con la ruta completa de la
watchedcarpeta y la ruta completa del script para ejecutarMarque el script como ejecutable:
sudo chmod u+x /etc/init.d/inoticoming_watchedAsegúrese de que el script llamado por
inoticoming_watchedsea ejecutable.Actualización
rc.dpara que el servicio seinoticoming_watchedinicie en el momento del arranque:sudo update-rc.d inoticoming_watched defaultsPuedes consultar el
inoticominginicio de sesión/var/log/inoticoming/watched.fuente
En primer lugar, instale inoticoming :
Luego usa este comando:
Preste atención a los procesos en curso de inoticoming, ya que pueden iniciarse varias veces.
El proceso se ejecuta en segundo plano y está observando
/home/user1/watchedCuando se agrega o cambia un archivo en ese directorio,
/usr/local/bin/syncbh.shse llama al script .El parámetro para este script es en este caso
/home/user1/watched/<name_of_changed_or_modified_file>{}se reemplaza por el nombre del archivofuente
En primer lugar, un script para ver el
watcheddirectorio:Segundo Para sincronizar como otro usuario (usuario2) el:
Ahora, para no hacer que el usuario solicite, puede establecer su
sudocontraseña en un archivo y leer la contraseña de este archivo cuando sea necesario (tenga en cuenta que debe usar-Sconsudopara obtener la contraseña del archivo).Pon tu
sudocontraseña en un archivo, supongamospasswd.txt, entonces el comando anterior será una mierdaAhora el guión general será como:
fuente