Skip to main content

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

4.Linux для Не Начинающих - Выполнение по расписанию - crontab (Июль 2025)

4.Linux для Не Начинающих - Выполнение по расписанию - crontab (Июль 2025)
Anonim

Демон в Linux называется хрон выполняется через регулярные интервалы. Он проверяет определенные папки в вашей системе для запуска сценариев в серии папок, включая /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, сообщение «no crontab for », в противном случае будет отображаться ваш файл crontab (эта функциональность отличается от системы к системе, иногда она вообще ничего не отображает, а в других случаях она отображается,« не редактируйте этот файл »).

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

crontab -e

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

# m h dom mon dow command

0 5 * * 1 tar -zcf /var/backups/home.tgz / главная /

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

  • Минуту дня команда должна запускаться (м)
  • Час дня выполнения команды (h)
  • В день месяца команда запускает (dom)
  • В течение месяца команда запускается (mon)
  • В день недели команда запускается (dow)
  • Команда

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

crontab -r

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

crontab -i

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