Администрирование
...
Фоновые задачи
Настройка Cron для Linux
Основные сведения о Cron
10мин
основные команды cron если вы хотите изменить crontab файл (файл содержащий инструкции по выполнению запланированных заданий), введите в терминале следующую команду crontab e результат будет выглядеть следующим образом скорее всего откроется редактор vi так как этот редактор довольно часто используется при работе с cron, мы рекомендуем ознакомиться с основными командами vi если вы хотите изменить crontab файл другого пользователя, используйте команду crontab u username e чужие файлы могут редактировать только суперпользователи, поэтому потребуется ввести sudo su перед командой если вы хотите удалить актуальный файл crontab текущего пользователя, введите следующую команду crontab r команда ниже делает аналогична команде r , однако она просит подтвердить действие перед удалением файла crontab crontab i если вы хотите отобразить содержимое открытого файла crontab, введите в терминале следующую команду crontab l эта команда также может показать, есть ли у вас crontab файлы если созданные файлы отсутствуют, будет показано следующее сообщение для просмотра crontab файлов других пользователей, введите следующую команду как суперпользователь crontab u username l синтаксис cron crontab файл состоит из двух частей расписания и команды команда выглядит следующим образом /bin/sh backup sh например, /bin/sh backup sh запускает резервное копирование каждую минуту 30 18 rm /home/sydtesting/tmp/ означает, что файлы tmp будут удаляться из /home/sydtesting/tmp каждый день в 18 30 файл crontab имеет пять полей каждое поле представлено звёздочкой и определяет дату и время задачи, которая должна выполняться регулярно минуты — минута часа, в которую будет запущена команда (от 0 до 59) часы — час, когда начнётся выполнение команды (от 0 до 23) день месяца — в какой день месяца должна запускаться команда (от 1 до 31) месяц — в какой месяц будет выполняться команда (от 1 до 12) день недели — в какой день недели должна выполняться команда (от 0 до 6, 0 — воскресенье) определенные символы также имеют значение используйте звёздочку ( ) чтобы определить параметры планирования запятую (,) чтобы указать два или более вариантов времени выполнения команды дефис ( ) чтобы задать диапазон времени выполнения команды косую черту (/) для создания заданных интервалов времени в определённом диапазоне last (l) чтобы определить последний день недели в данном месяце например, 3l означает последнюю среду рабочий день (w) чтобы определить ближайший рабочий день недели к заданному времени например, 1w означает, что скрипт будет запущен в ближайший рабочий день к первому числу, если 1 ое — воскресенье, команда будет выполняться в понедельник ( 2 го ) решетку (#) чтобы указать день недели в поле месяца (от 1 до 5) например, 1#2 означает второй понедельник вопросительный знак (?) чтобы выбрать определённый день для запуска скрипта для правильной работы нужно указать либо число месяца, либо номер дня — мы не можем указывать оба значения одновременно этот символ даёт возможность оставить одно значение пустым примеры обратите внимание, что вывод команды автоматически отправляется на локальную электронную почту если вы не хотите получать эти письма, добавьте к синтаксису >/dev/null 2>&1 , как показано в примере 0 5 /root/backup sh >/dev/null 2>&1 если вы хотите, чтобы вывод приходил на другую почту, вы можете добавить mailto , а затем адрес электронной почты например mailto="mojo imia\@hostinger com" 0 3 /root/backup sh >/dev/null 2>&1 больше примеров синтаксиса выражение значение 0 0 /bin/sh backup sh выполнять резервное копирование базы данных в полночь один раз в день 0 6,18 /bin/sh backup sh выполнять резервное копирование бд два раза в день в 6 утра и 6 вечера 0 /6 /scripts/monitor sh проводить мониторинг каждые шесть часов /10 /home/user/script sh выполнять cron job для файла сценария, находящегося в домашнем каталоге каждые 10 минут 0 20 7 /bin/sh backup sh запускать резервное копирование базы данных каждый час каждого 20 июля 0 0 2 /bin/sh запускать резервное копирование бд в полночь каждый вторник 1,2,5 /script/script sh выполнить команду в январе, феврале и мае 10 59/5 5 /home/user/script sh выполнять команду каждые 5 минут в 5 часов утра, начиная с 5 10 утра 0 8 1 /3 /home/user/script sh запускать команду ежеквартально в 1 й день в 8 утра /scripts/script sh; /scripts/scrit2 sh чтобы запланировать несколько заданий в одном cron job @reboot /scripts/script sh чтобы выполнять определённую задачу каждый раз при запуске системы 0 0 1 /home/user/script sh выполнить команду в первый день каждого месяца