El nombre Cron proviene de una palabra griega Chronos, que se usa para el tiempo. Es un demonio para los sistemas Linux para automatizar la ejecución de comandos o scripts en intervalos de tiempo específicos.
Este tutorial le mostrará varias opciones para enumerar todos los trabajos cron programados para usuarios en sistemas Linux.
Cómo enumerar los trabajos cron del usuario actual
El comando crontab predeterminado funciona para el usuario que ha iniciado sesión actualmente. Puede enumerar todos los trabajos cron programados para el usuario actual, ejecute:
crontab –l
Salida:
Todos los trabajos cron de usuario generalmente se encuentran en /var/spool/cron/crontabs directorio. Se crea un archivo separado para todas las cuentas de usuario con su nombre.
Lista de trabajos cron de otro usuario
Un usuario con privilegios de root o sudo también puede ver los cronjobs programados de otros usuarios. Use -u seguido del nombre de usuario para enumerar todos los trabajos que pertenecen a un usuario específico.
Por ejemplo:
sudo crontab –u username –l
Reemplace el nombre de usuario con el nombre de usuario real que desea ver los trabajos cron.
Lista de tareas cron ejecutadas por sistema
El usuario root puede acceder y modificar los crontab del sistema operativo. Puede ver los cronjobs del sistema ejecutando el siguiente comando como cuenta privilegiada de root o sudo.
less /etc/crontab
Salida:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Cómo listar trabajos cron por hora
Puede ver el directorio /ettc/cron.hourly para encontrar todos los trabajos cron programados para ejecutarse cada hora.
ls -la /etc/cron.hourly
Salida:
total 20 drwxr-xr-x 2 root root 4096 Apr 23 2020 . drwxr-xr-x 142 root root 12288 Jan 19 15:21 .. -rw-r--r-- 1 root root 102 Feb 14 2020 .placeholder
El resultado anterior muestra que no hay un programa de trabajo cron para ejecutar cada hora. Puede ver un archivo .placeholder en cada directorio, que se crea para evitar la eliminación accidental del directorio por parte del administrador de paquetes. Cuando no existe ningún otro archivo en el directorio.
Cómo listar trabajos diarios de Cron
Del mismo modo, puede enumerar todos los trabajos programados para ejecutarse diariamente. La mayoría de los trabajos de la aplicación se pueden encontrar en este directorio.
ls -la /etc/cron.daily
Salida:
total 72 drwxr-xr-x 2 root root 4096 Dec 28 15:28 . drwxr-xr-x 142 root root 12288 Jan 19 15:21 .. -rwxr-xr-x 1 root root 311 Jul 16 2019 0anacron -rwxr-xr-x 1 root root 539 Apr 13 2020 apache2 -rwxr-xr-x 1 root root 376 Dec 5 2019 apport -rwxr-xr-x 1 root root 1478 Apr 9 2020 apt-compat -rwxr-xr-x 1 root root 355 Dec 29 2017 bsdmainutils -rwxr-xr-x 1 root root 384 Nov 19 2019 cracklib-runtime -rwxr-xr-x 1 root root 1187 Sep 6 2019 dpkg -rwxr-xr-x 1 root root 377 Jan 21 2019 logrotate -rwxr-xr-x 1 root root 1123 Feb 25 2020 man-db -rw-r--r-- 1 root root 102 Feb 14 2020 .placeholder -rwxr-xr-x 1 root root 4574 Jul 18 2019 popularity-contest -rwxr-xr-x 1 root root 383 Jan 6 2020 samba -rwxr-xr-x 1 root root 214 Apr 2 2020 update-notifier-common
Cómo listar trabajos cron semanales
Los trabajos cron semanales se programan en el directorio /etc/cron.weekly.
ls -la /etc/cron.weekly
Salida:
total 32 drwxr-xr-x 2 root root 4096 Apr 23 2020 . drwxr-xr-x 142 root root 12288 Jan 19 15:21 .. -rwxr-xr-x 1 root root 312 Jul 16 2019 0anacron -rwxr-xr-x 1 root root 813 Feb 25 2020 man-db -rw-r--r-- 1 root root 102 Feb 14 2020 .placeholder -rwxr-xr-x 1 root root 211 Apr 2 2020 update-notifier-common
Cómo enumerar trabajos mensuales de Cron
Todos los trabajos cron mensuales se programan en el directorio /etc/cron.monthly.
ls -la /etc/cron.monthly
Salida:
total 24 drwxr-xr-x 2 root root 4096 Apr 23 2020 . drwxr-xr-x 142 root root 12288 Jan 19 15:21 .. -rwxr-xr-x 1 root root 313 Jul 16 2019 0anacron -rw-r--r-- 1 root root 102 Feb 14 2020 .placeholder
Cómo ver trabajos cron específicos de la aplicación
Mayo de aplicaciones programadas trabajos cron para trabajos regulares. Estos trabajos se pueden encontrar en trabajos cron por hora, diarios, semanales o mensuales.
Por ejemplo, el servidor web Apache creó un archivo de trabajo cron en /etc/cron.daily. Significa que el trabajo se ejecuta diariamente. Puede ver el contenido del trabajo cron accediendo al contenido del archivo de la siguiente manera:
cat /etc/cron.daily/apache2
Salida:
#!/bin/sh # run htcacheclean if set to 'cron' mode set -e set -u type htcacheclean > /dev/null 2>&1 || exit 0 [ -e /etc/default/apache-htcacheclean ] || exit 0 # edit /etc/default/apache-htcacheclean to change this HTCACHECLEAN_MODE=daemon HTCACHECLEAN_RUN=auto HTCACHECLEAN_SIZE=300M HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk HTCACHECLEAN_OPTIONS="" . /etc/default/apache-htcacheclean [ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0 htcacheclean ${HTCACHECLEAN_OPTIONS} \ -p${HTCACHECLEAN_PATH} \ -l${HTCACHECLEAN_SIZE}
Conclusión
En este tutorial, ha aprendido a ver, enumerar o mostrar trabajos cron en un sistema Linux. Además, encontró detalles sobre trabajos cron ejecutados por hora, día, semana o mes.