⏲️ Как просмотреть или составить список заданий Cron на Linux

by itisgood

Название 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, выполняемых ежечасно, ежедневно, еженедельно или ежемесячно.

You may also like

Leave a Comment