😿 Как перечислить задания Cron в Linux

by itisgood

Чтобы linux автоматически выполнял задачи, которые в противном случае вам пришлось бы выполнять самостоятельно, например, запуск скриптов и выполнение определенных команд, мы используем инструмент под названием cron.

В системах Linux утилита cron является предпочтительным способом автоматизации запуска скриптов через определенные промежутки времени.

В этой статье мы рассмотрим, как просматривать / перечислять задания, запланированные в списке crontab.

С большинством Crons (например, Vixie-Cron – по умолчанию в Debian / Ubuntu, Cronie – по умолчанию в Fedora, Solaris Cron …) вы получаете список запланированных заданий cron для текущего пользователя через:

$ crontab -l

или для другого пользователя через

# crontab -u username -l

Кроме того, вы можете посмотреть файлы spool.

Обычно они сохраняются в /var/spool/cron, например для vcron следующий каталог /var/spool/cron/crontabs содержит все настроенные crontabs всех пользователей – кроме пользователя root, который также может настраивать задания через общесистемный crontab, расположенный по адресу:

/etc/crontab

Для просмотра выполните следующую команду less:

less /etc/crontab

 

Пример структуры crontab:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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

На моем компьютере это выглядит так:

# /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

# m h dom mon dow user  command
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 )

С помощью cronie (по умолчанию в Fedora / CentOS) существует каталог конфигурации в стиле cron.d для системных заданий cron:

/etc/cron.d

Как всегда, каталог cron.d упрощает ведение записей конфигурации, которые являются частью разных пакетов.

Для удобства большинство дистрибутивов также предоставляют каталоги, в которых периодически выполняются связанные / хранимые скрипты, например:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Как составить список почасовых Cron заданий

Чтобы просмотреть почасовые задания cron, выполните команду ниже

$ ls -la /etc/cron.daily/
total 72
drwxr-xr-x  2 root root  4096 Apr 24 20:46 .
drwxr-xr-x 96 root root  4096 May 19 17:12 ..
-rw-r--r--  1 root root   102 Feb  9  2013 .placeholder
-rwxr-xr-x  1 root root   376 Apr  4  2014 apport
-rwxr-xr-x  1 root root 15481 Apr 10  2014 apt
-rwxr-xr-x  1 root root   314 Feb 18  2014 aptitude
-rwxr-xr-x  1 root root   355 Jun  4  2013 bsdmainutils
-rwxr-xr-x  1 root root   256 Mar  7  2014 dpkg
-rwxr-xr-x  1 root root   372 Jan 22  2014 logrotate
-rwxr-xr-x  1 root root  1261 Sep 23  2014 man-db
-rwxr-xr-x  1 root root   435 Jun 20  2013 mlocate
-rwxr-xr-x  1 root root   249 Feb 17  2014 passwd
-rwxr-xr-x  1 root root  2417 May 13  2013 popularity-contest
-rwxr-xr-x  1 root root   214 Mar 27  2017 update-notifier-common
-rwxr-xr-x  1 root root   328 Jul 18  2014 upstart

Как перечислить еженедельные задания Cron

Чтобы перечислить еженедельные работы cron, запустите команду ниже

$ ls -la /etc/cron.weekly/
total 28
drwxr-xr-x  2 root root 4096 Apr 24 20:46 .
drwxr-xr-x 96 root root 4096 May 19 17:12 ..
-rw-r--r--  1 root root  102 Feb  9  2013 .placeholder
-rwxr-xr-x  1 root root  730 Feb 23  2014 apt-xapian-index
-rwxr-xr-x  1 root root  427 Apr 16  2014 fstrim
-rwxr-xr-x  1 root root  771 Sep 23  2014 man-db
-rwxr-xr-x  1 root root  211 Mar 27  2017 update-notifier-common

Как перечислить ежемесячные задания Cron

Это будет перечислять ежемесячные задачи cron

$ ls -la /etc/cron.monthly/
total 12
drwxr-xr-x  2 root root 4096 Apr 24 20:44 .
drwxr-xr-x 96 root root 4096 May 19 17:12 ..
-rw-r--r--  1 root root  102 Feb  9  2013 .placeholder

Просмотр программных Cron заданий

Мы можем взглянуть на работу cron конкретных программ с помощью команды cat:

$ cd /etc/cron.daily/
$ ls -l
total 60
-rwxr-xr-x 1 root root   376 Apr  4  2014 apport
-rwxr-xr-x 1 root root 15481 Apr 10  2014 apt
-rwxr-xr-x 1 root root   314 Feb 18  2014 aptitude
-rwxr-xr-x 1 root root   355 Jun  4  2013 bsdmainutils
-rwxr-xr-x 1 root root   256 Mar  7  2014 dpkg
-rwxr-xr-x 1 root root   372 Jan 22  2014 logrotate
-rwxr-xr-x 1 root root  1261 Sep 23  2014 man-db
-rwxr-xr-x 1 root root   435 Jun 20  2013 mlocate
-rwxr-xr-x 1 root root   249 Feb 17  2014 passwd
-rwxr-xr-x 1 root root  2417 May 13  2013 popularity-contest
-rwxr-xr-x 1 root root   214 Mar 27  2017 update-notifier-common
-rwxr-xr-x 1 root root   328 Jul 18  2014 upstart

$ cat update-notifier-common 
#!/bin/sh

set -e

[ -x /usr/lib/update-notifier/package-data-downloader ] || exit 0

# Try to rerun any package data downloads that failed at package install time.
/usr/lib/update-notifier/package-data-downloader

Кроме того, вы можете задать «at» задания (/var/spool/at/ *), anacron (/etc/anacrontab и /var/spool/anacron/ *)

Правильное и своевременное выполнение этих скриптов осуществляется через записи частей выполнения в системном файле crontab или через anacron.

В systemd (в Fedora, CentOS 7 и т. д.) периодическое выполнение задания может быть дополнительно сконфигурировано через блоки таймера.

Включенные системные таймеры могут отображаться через:

$ systemctl list-timers

Мы увидели все каталоги по умолчанию, где вы можете найти задания cron в большинстве систем Linux.

Если у вас есть какие-либо вопросы или комментарии, пожалуйста, напишите их ниже в разделе комментариев.

См. также по теме:

 

You may also like

Leave a Comment