11 примеров задач планирования Cron в Linux
В этой статье мы рассмотрим и увидим, как мы можем планировать и автоматически запускать задачи Linux в фоновом режиме через регулярные промежутки времени с помощью команды Crontab.
Выполнение частых заданий вручную — сложная задача для системных администраторов, и такие задачи можно планировать и запускать автоматически в фоновом режиме без вмешательства человека с помощью демона cron в Linux или Unix-подобной операционной системе.
Например, вы можете автоматизировать резервное копирование системы Linux, планировать обновления, синхронизацию файлов и многое другое с помощью демона Cron, который используется для запуска запланированных задач из командной строки. или используйте онлайн-инструменты для создания заданий cron.
Cron просыпается каждую минуту и проверяет запланированные задачи в счетном виде – Crontab (CRON TABle) – это таблица, в которой мы можем планировать такие виды повторяющихся задач. .
Советы. Каждый пользователь может иметь собственный crontab для создания, изменения и удаления задач. По умолчанию cron включен для пользователей, однако мы можем ограничить пользователей, добавив запись в файл /etc/cron.deny.
Кронтаб в Linux
Файл Crontab состоит из команд в каждой строке и на самом деле имеет шесть полей, разделенных пробелом или табуляцией. Первые пять полей представляют время выполнения задач, а последнее поле предназначено для команды.
- Минуты (удерживайте значения в диапазоне 0–59)
- Час (удерживайте значения в диапазоне 0–23)
- День месяца (удерживайте значения в диапазоне 1–31)
- Месяц года (удерживайте значения в диапазоне 1–12 или январь-декабрь). Вы можете использовать первые три буквы названия каждого месяца, например январь или июнь . .)
- День недели (удерживайте значения в диапазоне 0–6 или Вс-Сб. Здесь также вы можете использовать первые три буквы названия каждого дня, например Вс или Ср.)
- Команда — /path/to/команда или сценарий, который вы хотите запланировать.
1. Список записей Crontab
Перечислите задачу или управляйте ею с помощью команды crontab с опцией -l
для текущего пользователя.
crontab -l
00 10 * * * /bin/ls >/ls.txt
2. Редактировать записи Crontab
Чтобы отредактировать запись crontab, используйте -e
параметр, показанный ниже. В приведенном ниже примере запланированные задания откроются в редакторе VI. Внесите необходимые изменения и прекратите нажимать клавиши :wq
, которые автоматически сохранят настройки.
crontab -e
3. Список запланированных заданий Cron пользователя
Чтобы просмотреть запланированные задания конкретного пользователя с именем tecmint, используйте параметр -u
(Пользователь) и -l
(Список).
crontab -u tecmint -l
no crontab for tecmint
Примечание. Только пользователь root имеет полные права на просмотр записей crontab других пользователей. Обычные пользователи не могут просматривать других.
4. Удалить запись Crontab
Внимание! Crontab с параметром -r
удалит завершенные запланированные задания без подтверждения от Crontab. Используйте опцию -i
перед удалением crontab пользователя.
crontab -r
5. Запрос перед удалением Crontab
crontab с -i
, эта опция запросит подтверждение от пользователя перед удалением crontab пользователя.
crontab -i -r
crontab: really delete root's crontab?
6. Разрешенные специальные символы (*, -, /, ?, #)
- Звездочка(*) – соответствует всем значениям в поле или любому возможному значению.
- Дефис(-) – для определения диапазона.
- косая черта (/) – первое поле /10 означает каждые десять минут или приращение диапазона.
- Запятая (,) – для разделения элементов.
7. Общесистемное расписание Cron
Системный администратор может использовать предопределенный каталог cron, как показано ниже.
- /etc/cron.d
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.monthly
- /etc/cron.weekly
8. Запланируйте работу на определенное время
Приведенные ниже задания удаляют пустые файлы и каталоги из /tmp ежедневно в 12:30. Вам необходимо указать имя пользователя для выполнения команды crontab. В приведенном ниже примере пользователь root выполняет задание cron.
crontab -e
30 0 * * * root find /tmp -type f -empty -delete
9. Специальные строки для общего расписания
- @reboot
Команда запустится после перезагрузки системы.
- @daily
-
Один раз в день или можно использовать @midnight.
- @weekly
Один раз в неделю.
- @yearly
Один раз в год. мы также можем использовать ключевое слово @annually.
Необходимо заменить пять полей команды cron ключевыми словами, если вы хотите использовать их.
10. Несколько команд с двойным амперсандом (&&)
В приведенном ниже примере команды Command1 и Command2 выполняются ежедневно.
crontab -e
@daily <command1> && <command2>
11. Отключите уведомления по электронной почте.
По умолчанию cron отправляет почту на учетную запись пользователя, выполняющего задание cron. Если вы хотите отключить его, добавьте задание cron, как показано в примере ниже. Использование параметра >/dev/null 2>&1 в конце файла перенаправит весь вывод результатов cron в /dev/null.
[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1
Вывод: Автоматизация задач может помочь нам выполнять задачи более эффективно, без ошибок и эффективнее. Вы можете обратиться к странице руководства crontab для получения дополнительной информации, введя команду «man crontab» в своем терминале.