Supongamos que estoy creando dos archivos crontab.
/tmp/my-crontab
/root/my-alternate-crontab
Cada archivo crontab está programado para ejecutar diferentes scripts.
Cuando inicio el cronjob, el primero se reemplaza por el anterior.
crontab -u smarak /tmp/my-crontab
crontab -u smarak /root/my-alternate-crontab
¿Es posible lo anterior para un solo usuario?
Respuesta aceptada:
Dos formas de evitar tener un solo crontab.
Coloque sus entradas crontab en archivos en algún directorio, como ~/crontab.d/thisandthat.cron
, luego confirme cualquier cambio de esos en el crontab del sistema con:
cat ~/crontab.d/*.cron | crontab -
La extensión .cron
es evitar incluir accidentalmente archivos de copia de seguridad de los editores. Tenga en cuenta que dado que todos los archivos están concatenados, cualquier variable configurada en los archivos también se aplicará a los archivos posteriores.
También podría hacer algo similar a cómo /etc/cron.hourly
y amigos están implementados en Debian. El principal /etc/crontab
contiene reglas como esta:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Puede organizar una sola entrada de crontab para ejecutar varios programas. El directorio run-parts dir
de Debian es similar a for f in dir/* ; do "$f" ; done
excepto que omite nombres de archivo impares, de nuevo para evitar ejecutar archivos de copia de seguridad creados por editores, etc.