tiempo script minutos manualmente job instalar example ejemplos ejecutar desde crear cierto cada php bash ubuntu cron libnotify

script - Los comandos Bash no se ejecutan cuando a través de un trabajo cron-PHP



ejecutar script php cada cierto tiempo (3)

En general, sus scripts cron se ejecutarán bajo una cuenta de usuario diferente, y probablemente tengan configurada una ruta de entorno diferente.

Intenta configurar tus líneas de comando para usar la ruta completa al comando, es decir. /path/to/notify-send "x New Posts" .

Puedes usar which notify-send de which notify-send desde tu terminal habitual para que la ruta se ponga en tu script.

También puede tomar el resultado de su comando para ayudar a la depuración. El uso del operador de retroceso devolverá la salida, por lo que puede asignarlo a una variable y / o volcarlo.

$output = `$command`; error_log($output);

Tengo un trabajo cron ejecutando un script PHP cada cinco minutos; el script PHP ejecuta dos comandos bash al final del script. Sé que el script se está ejecutando debido a un archivo de registro al que se agrega. Cuando ejecuto el script PHP manualmente a través del Ubuntu Gnome Terminal, ambos comandos bash se ejecutan sin problemas; sin embargo, cuando el script PHP se desencadena a través de cron, los dos comandos bash no se ejecutan. ¿Algunas ideas?

$command = ''notify-send "'' . count($infoleakPosts) . '' New Posts."''; `$command`; $command = ''firefox http://example.com''; `$command`; */1 * * * * php /home/andrew/grab.php USERNAME PASSWORD # JOB_ID_1


cuando ejecuta la secuencia de comandos en cron, no tiene una salida tty o X-windows DISPLAY env-var. Sospecho que los comandos se están ejecutando pero fallando.


un comentario sobre la respuesta anterior sobre cron: cron ejecutará los comandos como el usuario cuyo crontab es. Entonces, si configura el crontab, ejecutará los comandos como usted. Ejecuta un conjunto ligeramente diferente de scripts de inicio de shell para aquellos que obtiene cuando inicia sesión: sabe que no tiene un tty y por lo tanto solo ejecuta el archivo ~ / .bashrc y no el conjunto de archivos de perfil. Consulte las páginas man para cron y bash para obtener más detalles