
Estoy trabajando en un pequeño proyecto de domótica usando raspberry pi (OS -Raspbian).
Quiero saber cómo agregar más de un archivo crontab usando el módulo python-crontab sin reemplazar las entradas anteriores crontab -e
.
Quiero programar programáticamente (sin ir manualmente crontab -e
y agregar los archivos allí) dos scripts de Python: el primer script se ejecuta cada 5 minutos y el otro se ejecuta cada 2 minutos.
Pude programar con éxito el primer script usando el módulo python-crontab, pero cuando programé el segundo script, reemplazó al primero en formato crontab -e
. Entonces, ¿cómo programar el nuevo archivo crontab sin reemplazar el anterior?
Si hay otra forma de programación crontab, sugiérala con un código de ejemplo :)
Nota: - Quiero programar secuencias de comandos de Python en crontab usando secuencias de comandos de Python únicamente, sin agregar manualmente los archivos en crontab -e
.
Respuesta1
Si desea escribir un script para agregar entradas en cron (sin usar el editor de texto a través de crontab -e
), sería algo como:
- ejecutar
crontab -l
en un archivo temporal - compruebe si su último comando ya está en el archivo. Si es así, detente.
- agregar el último comando al archivo temporal
- ejecutar
crontab
con el archivo temporal como parámetro, para reemplazar los comandos programados
Para referencia:
- crontab(1)- mantener archivos crontab para usuarios individuales
- crontab(5)- tablas para conducir cron
Respuesta2
Dado que, después de todo, los crontabs son archivos de texto, ¿por qué no simplemente agregar texto?
with open("/var/spool/cron/crontabs/john", "a") as ctfile:
ctfile.write("1 0 * * 3 /path/to/newcommand --option")
Respuesta3
crontab -e
es en realidad un archivo donde enumeras todos tus cronjobs.
Cuando escriba, crontab -e
obtendrá una lista de cronjobs y tildas ( ~
) anteriores.
Presione el botón Insertar en su teclado para cambiar entre modos y presione Enter al final de su último cronjob.
Borrará la tilda y podrás escribir tu nuevo cronjob aquí.
Para salir del modo de inserción, presione Escape e Intro :wq!
para guardar los cambios.