Главная > Программы > Cron 15 отличных примеров для создания cron задач в Linux
Формат Linux CrontabMIN HOUR DOM MON DOW CMD Таблица: Поля и допустимые диапазоны Crontab (синтаксис Linux Crontab)
1. Планирование задач в течение определённого времениОснова использования cron – выполнение задач в определённое время, как показано ниже. Это будет выполнять скрипт полного резервного копирования (full-backup) 10 июня в 8.30. Пожалуйста, обратите внимание, что поле времени использует 24-часовой формат, Так что 8 АМ – 8, 8 РМ – 20 часов. 30 08 10 06 * /home/developer/full-backup
2. Расписание задач для более частого выполнения (например, дважды в день)Следующий скрипт использует дополнительное резервное копирование дважды в день каждый день. В этом примере выполняется дополнительное резервное копирование (incremental-backup) в 11:00 и в 16:00 каждый день. Значения через запятую в поле указывают, что команда должна быть выполнена в каждое указанное время. 00 11,16 * * * /home/developer/bin/incremental-backup
3. Расписание работы в течение определённого интервала времени (например, только в будние дни)Если вы хотите, чтобы подпрограммы выполнялись в течение каждого часа с определённым интервалом времени, используйте следующее. Подпрограмма Cron для каждого дня в течение рабочих часов Этот пример каждый день проверяет состояние базы данных (включая выходные) в течение рабочих часов с 9 утра до 6 вечера. 00 09-18 * * * /home/developer/bin/check-db-status
Подпрограмма Cron для каждого рабочего дня в течение рабочих часов Этот пример проверяет состояние базы данных каждый рабочий день (кроме субботы и воскресенья) с 9 утра до 6 вечера. 00 09-18 * * 1-5 /home/ramesh/bin/check-db-status
4. Как просмотреть записи Crontab?Просмотр текущих Crontab-файлов пользователя. Чтобы просмотреть ваши файлы # crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space [Note: This displays crontab of the current logged in user] Просмотр root записей crontab Залогиньтесь в качестве root пользователя ( # crontab -l no crontab for root Практические рекомендации crontab: просмотрите другие записи crontab пользователя linux. Чтобы посмотреть файлы других пользователей, залогиньтесь в качестве root пользователя и используйте -u {имя пользователя} -l как показано ниже. # crontab -u username -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status 5. Как редактировать записи crontab?Редактирование текущих пользовательских cron-записей. Чтобы редактировать записи, используйте # crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C [Note: This will open the crontab file in Vim editor for editing. Please note cron created a temporary /tmp/crontab.XX... ] Когда вы сохраните файл, он сохранит crontab и покажет следующее сообщение, где будет сказано, что crontab успешно изменён. ~
"crontab.XXXXyjWkHw" 2L, 83C written
crontab: installing new crontab
Редактирование root записей crontab Залогиньтесь как # crontab -e Редактирование записей crontab-файла другого пользователя Чтобы отредактировать запись crontab другого пользователя Linux, залогиньтесь в под root и используйте
# crontab -u username -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C 6. Выполнение Cron каждую минутуВ идеале, вам может и не потребоваться назначения выполнения cron каждую минуту. Но понимание этого примера поможет вам понять другие примеры, описанные в этой статье. bash
* * * * * CMD
Указание 7. Запуск фоновых задач Cron каждые 10 минутИспользуйте следующее, если хотите проверять место на диске каждые 10 минут. */10 * * * * /home/ramesh/check-disk-space
Эта задача выполняет указанную команду проверки диска каждые 10 минут на протяжении года. Но вам может потребоваться выполнение проверки только в рабочие часы или наоборот. Приведённые выше примеры показывают, как это сделать. Вместо указания значений в 5 полях мы можем указать их, используя ключевое слово, как показано ниже. Существуют особые условия, когда вместо 5 полей вы можете использовать Специальные ключевые слова Cron и их значение
8. Расписание работы для первой минуты каждого года с использованием @yearlyЕсли вы хотите, чтобы cron задача выполнялись в первые минуты каждого года, то можете использовать ключевое
слово @yearly /home/developer/red-hat/bin/annual-maintenance
9. Запуск задач каждый месяц с использованием ключевого слова @monthlyОно схоже со словом @monthly /home/ramesh/suse/bin/tape-backup
10. Запуск задач каждый день с использованием @dailyИспользуя ключевое слово @daily /home/developer/arch-linux/bin/cleanup-logs "day started"
11. Как выполнить команду Linux после каждой перезагрузки, используя @reboot?Используя ключевое слово @reboot CMD
13. 12. Как отключить/перенаправить исходящую почту Crontab, используя ключевое слово MAIL?По умолчанию crontab отправляет выходные (output) задачи пользователю, который установил эту задачу. Если вы хотите перенаправить их другому пользователю, добавьте или обновите переменную MAIL в crontab, как показано ниже. # crontab -l MAIL="developer" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space [Note: Crontab of the current logged in user with MAIL variable] Если вы хотите, чтобы почта вообще не отправлялась, т.е прекратить отправку выходных файлов crontab, добавьте или обновите переменную MAIL в crontab, как показано ниже. MAIL=""
13. Как выполнять задачи Linux Cron кажду секунду, используя CrontabВы не можете настроить выполнение cron на каждую секунду. Потому что минимальная единица выполнения cron – минута. В обычном сценарии нет необходимости запускать выполнение cron каждую секунду. 14. Указание переменной PATH в CrontabВо всех вышеприведённых примерах мы указывали абсолютный путь команды Linux или скрипта оболочки, которые должны быть выполнены. Например, вместо указания # crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yearly annual-maintenance */10 * * * * check-disk-space [Note: Crontab of the current logged in user with PATH variable] 15. Установка Crontab из Cron-файлаВместо прямого редактирования файла crontab вы можете добавить, все записи в cron-файл. Если в файле есть эти записи, вы можете выгрузить или установить их в cron, как показано ниже.
# crontab -l no crontab for developer # cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space # crontab cron-file.txt # crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-spaceМатериал взят с сайта: Главная > Программы > Cron |