Как редактировать файл Linux Crontab для планирования заданий

В Linux демон cron запускает процессы через равные промежутки времени. Он проверяет определенные папки в вашей системе на наличие сценариев, запускаемых в ряде папок, включая /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly. Существует также файл с именем / etc / crontab.

Размещение скриптов в папках Cron

Поместите сценарии в соответствующие папки, чтобы они запускались через определенные промежутки времени.

Например, откройте окно терминала и выполните следующую команду ls:

ls / etc / cron *

Вы увидите список программ или сценариев, которые запускаются ежечасно, ежедневно, еженедельно и ежемесячно.

Проблема этих папок в том, что они немного расплывчаты. Например, ежедневно означает, что сценарий будет запускаться один раз в день, но вы не можете контролировать время выполнения сценария в течение этого дня.

Вот где приходит файл crontab. 

Отредактировав файл crontab, вы можете запустить скрипт или программу в точную дату и время, когда вы хотите, чтобы он запускался.

права доступа

Команда crontab требует, чтобы у пользователя были разрешения на редактирование файла crontab. В основном есть два файла, которые управляют разрешениями crontab:

  • /etc/cron.allow
  • /etc/cron.deny

Если файл /etc/cron.allow существует, то пользователь, который хочет изменить файл crontab, должен быть указан в этом файле. Если файл cron.allow не существует, но существует файл /etc/cron.deny, то пользователь не должен существовать в этом файле. Если оба файла существуют, то /etc/cron.allow переопределяет файл /etc/cron.deny. Если ни один из файлов не существует, это зависит от конфигурации системы, может ли пользователь редактировать crontab.

Пользователь root всегда может редактировать файл crontab. Вы можете использовать команду su для переключения на пользователя root или команду sudo для запуска команды crontab.

Редактирование файла Crontab

Каждый пользователь, имеющий соответствующие разрешения, может создать свой собственный файл crontab. Команда cron в основном ищет все файлы crontab и запускает каждый из них.

Чтобы проверить, есть ли у вас файл crontab, выполните следующую команду:

crontab -l

Если у вас нет файла crontab, появится сообщение «crontab for no», в противном случае будет отображен ваш файл crontab (эта функция отличается от системы к системе, иногда она вообще ничего не отображает, а в других случаях отображается «не отредактируйте этот файл «).

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

crontab -e

Файл, который открывается, содержит много информации, но ключевой частью является пример непосредственно перед концом раздела комментариев (комментарии обозначаются строками, начинающимися с #).

# m h dom mon dow команда
0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

В каждой строке файла crontab можно разместить 6 частей информации:

  • Минута дня, когда команда должна выполнить (м)
  • Час дня, когда команда должна бежать (ч)
  • День месяца, когда команда должна выполнить (dom)
  • Месяц выполнения команды (пн)
  • День недели, когда команда должна бежать (Доу)
  • Команда

Для каждого элемента (кроме команды) вы можете указать подстановочный знак. Посмотрите на следующий пример строки crontab:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Через 30 минут, 18 часов и в любой день, месяц и день недели эта запись в crontab заархивирует домашний каталог в папку / var / backups.

Чтобы команда запускалась через 30 минут после каждого часа, выполните следующую команду:

30 * * * * команда

Чтобы команда запускалась каждую минуту после 18:00, выполните следующую команду:

* 18 * * * команда

Поэтому вы должны быть осторожны при настройке команд crontab.

Например:

* * * 1 * команда

Эта команда будет выполняться каждую минуту каждого часа каждого дня каждой недели января.

Чтобы выполнить команду в 5 часов утра 1 января, вы должны выполнить следующую команду в файле crontab:

0 5 1 1 * команда

Как удалить файл Crontab

В большинстве случаев вам не нужно удалять файл crontab, но вы можете удалить некоторые строки из файла crontab.

Однако, если вы хотите удалить файл crontab вашего пользователя, выполните следующую команду:

crontab -r

Более безопасный способ сделать это — запустить следующую команду:

crontab -i

Операционная система запрашивает подтверждение перед удалением файла crontab.

Ссылка на основную публикацию