No usar crontab -e
No lo pondría crontab -e
como root. Esto generalmente es menos obvio para otros administradores y es probable que se pierda con el tiempo. Al colocarlos /etc/crontab
, puede especificar exactamente el tiempo que desea que se ejecuten y también puede especificar un usuario diferente.
Ubicaciones alternativas
Si no le importa ejecutar el script como un usuario diferente, y / o simplemente desea que el script se ejecute semanalmente, diariamente, etc., varias distribuciones proporcionan directorios donde se pueden colocar los scripts que se procesarán automáticamente en un momento específico.
Por ejemplo, bajo distribuciones basadas en Redhat:
$ ls -dl /etc/cron*
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.d
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.daily
-rw-------. 1 root root 0 Nov 23 07:42 /etc/cron.deny
drwxr-xr-x. 2 root root 4096 Nov 29 11:03 /etc/cron.hourly
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.monthly
-rw-r--r--. 1 root root 457 Sep 26 2011 /etc/crontab
drwxr-xr-x. 2 root root 4096 Sep 26 2011 /etc/cron.weekly
A menudo pongo crons a nivel de sistema que quiero ejecutar en un momento específico en /etc/cron.d
lugar de /etc/crontab
, especialmente si son scripts más complejos.
Prefiero usar los directorios debajo /etc/cron*
porque son un lugar mucho más obvio que otros administradores de sistemas sabrán que deben buscar y los archivos aquí se pueden administrar a través de instalaciones de paquetes como rpm
y / o apt
.
Proteger entradas
Cualquiera de los directorios que he mencionado están diseñados para colocar scripts que no serán destruidos por un administrador de paquetes. Si le preocupa proteger una entrada crontab, definitivamente no la incluiría en el /etc/crontab
archivo y, en su lugar , la incluiría como un script adecuado en uno de los /etc/cron*
directorios.