Ejecutar script python en Crontab


Estoy tratando de ejecutar un script python usando el linux crontab, pero encontré muchas soluciones y ninguna de ellas funciona. Por ejemplo: edite el anacron en /etc / cron.d o utilice crontab-e.

Quiero ejecutar este script cada 10 minutos.

¿Qué archivo debo editar para configurar esto?

Gracias de antemano

EDITAR

Pongo esta línea al final del archivo, pero no cambia nada. ¿Tengo que reiniciar alguna servicio?

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py

EDITAR [2]

Chicos, he seguido el código fuente. Tal vez haya un problema aquí, pero cuando lo ejecuto manualmente, funciona:

Http://pastebin.com/qsWHNzqT

Author: FractalSpace, 2012-01-04

3 answers

Simplemente use crontab-e y siga el tutorial aquí:

Http://adminschoice.com/crontab-quick-reference

Mire el punto 3 para una guía sobre cómo especificar la frecuencia.

Basado en su requerimiento, debería ser efectivamente:

*/10 * * * * /usr/bin/python script.py
 103
Author: Raul Marengo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-04 14:08:41

Ponga su script en un archivo foo.py comenzando con

#!/usr/bin/python

Luego dale permiso de ejecución a ese script usando

chmod a+x foo.py

Y usa la ruta completa de tu archivo foo.py en tu crontab.

Ver la documentación de execve(2) que está manejando el shebang

 51
Author: Basile Starynkevitch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-07 16:47:32

Como has mencionado no cambia nada,

Primero, debe redirigir tanto stdin como stderr desde la ejecución de crontab como a continuación:

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py > /tmp/listener.log 2>&1

Luego puede ver el archivo /tmp/listener.log para ver si el script se ejecutó como esperaba.

Segundo, adivina lo que quieres decir cambiar cualquier cosa es viendo los archivos creados por tu programa:

f = file('counter', 'r+w')
json_file = file('json_file_create_server.json','r+w')

El trabajo de crontab anterior no creará estos archivos en el directorio /home/souza/Documets/Listener, ya que el trabajo de cron no se ejecuta en este directorio, y se utiliza la ruta relativa en el programa. Así que para crear estos archivos en el directorio /home/souza/Documets/Listener, el siguiente trabajo cron hará el truco:

*/2 * * * * cd /home/souza/Documets/Listener && /usr/bin/python listener.py > /tmp/listener.log 2>&1

Cambie al directorio de trabajo y ejecute el script desde allí, luego puede ver los archivos creados en su lugar.

 10
Author: greenqy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-12 03:33:14