Название Cron происходит от греческого слова Chronos, которое используется для обозначения времени.
Это демон систем Linux, позволяющий автоматизировать выполнение команд или скриптов через определенные промежутки времени.
Это руководство покажет вам несколько вариантов вывода списка всех запланированных заданий cron для пользователей в системах Linux.
Как вывести список заданий Cron текущего пользователя
Команда crontab по умолчанию работает для текущего вошедшего в систему пользователя.
Вы можете перечислить все запланированные задания cron для текущего пользователя, выполните:
crontab –l
Все пользовательские задания cron обычно находятся в каталоге /var/spool/cron/crontabs.
Для всех учетных записей пользователей создается отдельный файл с их именем.
Список заданий Cron другого пользователя
Пользователь с правами root или sudo может также просматривать запланированные cronjobs других пользователей.
Используйте -u с последующим именем пользователя, чтобы перечислить все задания, принадлежащие определенному пользователю.
Например:
sudo crontab –u username –l
Замените username фактическим именем пользователя, у которого вы хотите просматреть задания cron.
Список заданий Cron, выполняемых системой
Пользователь root может получить доступ и изменить crontab операционной системы.
Вы можете просмотреть системные задания cron, выполнив следующую команду от имени учетной записи root или sudo.
less /etc/crontab
Вывод:
# /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 )
Как составить список почасовых задач в Cron
Вы можете просмотреть каталог /etc/cron.hourly, чтобы найти все задания cron, запускаемые каждый час.
ls -la /etc/cron.hourly
Вывод:
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
Приведенный выше вывод показывает, что нет расписания заданий cron для ежечасного выполнения.
Вы можете увидеть файл .placeholder в каждом каталоге, который создается во избежание случайного удаления каталога менеджером пакетов.
Когда в каталоге нет другого файла.
Как составить список ежедневных заданий Cron
Точно так же вы можете перечислить все запланированные задания, которые будут запускаться ежедневно.
В этом каталоге можно найти большинство таких задач.
ls -la /etc/cron.daily
Вывод:
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
Как составить список еженедельных заданий Cron
Еженедельные задания cron запланированы в каталоге /etc/cron.weekly.
ls -la /etc/cron.weekly
Вывод:
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
Как составить список ежемесячных заданий Cron
Все ежемесячные задания cron запланированы в каталоге /etc/cron.monthly.
ls -la /etc/cron.monthly
Вывод:
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
Как просмотреть задания Cron для конкретных приложений
Эти джобы можно найти в почасовых, ежедневных, еженедельных или ежемесячных заданиях cron.
Например, веб-сервер Apache создал файл задания cron в каталоге /etc/cron.daily.
Это означает, что работа выполняется ежедневно.
Вы можете увидеть содержимое задания cron, открыв содержимое файла, как показано ниже:
cat /etc/cron.daily/apache2
Вывод:
#!/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}
Заключение
В этом руководстве вы научились просматривать, перечислять или отображать задания cron в системе Linux.
Кроме того, вы нашли подробную информацию о заданиях cron, выполняемых ежечасно, ежедневно, еженедельно или ежемесячно.