Incron no ejecutará un script pero Cron sí, permiso denegado

Incron no ejecutará un script pero Cron sí, permiso denegado

Tengo un script sencillo para ejecutar rclone. Se ejecuta correctamente desde la línea de comando raíz. También se ejecuta correctamente cuando lo llama un trabajo cron normal. Los permisos del script están establecidos como root/root 0755, es decir, es ejecutable. (También lo es rclone).

La siguiente línea es el trabajo incron establecido incrontab -ey confirmado conicrontab -l

/var/vhosts/localdir IN_ALL_EVENTS /bin/rclonescript.sh

El siguiente es mi script que se ejecuta desde la línea de comando o desde un trabajo cron normal:

#!/bin/bash
/usr/sbin/rclone copy /var/vhosts/localdir mygoogledrive:uploadfolder

Aquí está el resultado de tail -f /var/log/cron:

Mar 16 18:45:55 localhost incrond[8215]: (root) CMD (/bin/rclonescript.sh)

El resultado parece correcto, pero el script no se ejecuta.

Así es como se ve el registro cron cuando el script se llama exitosamente desde un trabajo cron * * * * * /bin/rclonescript.sh:

Mar 16 18:59:01 localhost CROND[9070]: (root) CMD (/bin/rclonescript.sh)

El registro es prácticamente el mismo, pero el trabajo cron funciona. Incron no lo hace.

Intenté establecer la ruta en mi script, primero verificando:

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

...luego agregando la ruta al script de esta manera:

#!/bin/bash
Path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin   
/usr/sbin/rclone copy /var/vhosts/localdir mygoogledrive:uploadfolder

Cuando intento esto como trabajo de inclusión:

/var/vhosts/anne_scan IN_ALL_EVENTS,IN_NO_LOOP /bin bash rclonescript.sh

o

/var/vhosts/anne_scan IN_ALL_EVENTS,IN_NO_LOOP /bin rclonescript.sh

Resulta en permiso denegado:

Mar 17 09:00:27 localhost incrond[24917]: cannot exec process: Permission denied

Respuesta1

Agregue sudoantes del comando, así:

/var/vhosts/watcheddir IN_ALL_EVENTS,IN_NO_LOOP sudo /bin/sh /bin/yourscript.sh

Seleccione el usuario así:

/var/vhosts/watcheddir IN_ALL_EVENTS,IN_NO_LOOP sudo -u username /bin/sh /bin/yourscript.sh

información relacionada