Почему мой crontab не работает, и как я могу диагностировать его?

Далее, образование о cron:

Каждый пользователь системы может иметь свой собственный файл crontab. Расположение корневых и пользовательских файлов crontab зависит от системы, но они обычно ниже .

Существует системный файл , каталог может содержать фрагменты crontab, которые также читаются и выполняются cron. Некоторые дистрибутивы Linux (например, Red Hat) также имеют , которые являются каталогами, скрипты внутри которых будут выполняться каждый час /день /неделя /месяц , с привилегиями root.

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

Если компьютер не включен или демон crond не запущен, а дата /время для запуска команды прошло, crond не будет перехватывать и запускать предыдущие запросы.

crontab detailss, как сформулировать команду:

Команда crontab представлена ​​одной строкой. Вы не можете использовать для расширения команды на несколько строк. Символ hash () представляет комментарий, который означает, что все, что на этой строке, игнорируется cron. Ведущие пробелы и пустые строки игнорируются.

Будьте ОЧЕНЬ осторожны при использовании знака процента () в вашей команде. Если они не экранированы , они преобразуются в новые строки, и все после первого неэкранированного передается вашей команде на stdin.

Существует два формата файлов crontab:

  • Пользователь crontabs

  • Общесистемные фрагменты и

Обратите внимание, что для последнего требуется имя пользователя. Команда будет запущена как именованный пользователь

Первые 5 полей строки представляют время (ы), когда команда должна быть запущена.
Вы можете использовать числа или подходящие имена дней /месяцев в спецификации времени.

  • Поля разделяются пробелами или вкладками.
  • Для указания списка используется, например, 1,4,6,8 запятая (), которая означает, что она работает в 1,4,6,8.
  • Диапазоны задаются тире () и могут быть объединены со списками, например. 1-3,9-12, что означает от 1 до 3, а затем между 9 и 12.
  • Символ может использоваться для введения шага, например. 2/5, что означает начало с 2, затем каждые 5 (2,7,12,17,22 …). Они не завершают конца.
  • Звездочка () в поле обозначает весь диапазон для этого поля (например, для поля минут).
  • Диапазоны и этапы могут быть объединены, например. означает начало с минимума для соответствующего поля, затем каждые 2, например. 0 за минуты (0,2 … 58), 1 в течение месяцев (1,3 … 11) и т. Д.

Что делать, если Cron не работает?

Может случиться так, что вы добавили некоторые задачи, проверили системные журналы и обнаружили, что они не выполняются должным образом. Вот некоторые вещи, которые вы должны учитывать — и быть осторожными — при попытке решить проблему.

Служба cron запущена?

Как вы знаете, демон cron должен работать в фоновом режиме. Убедитесь, что это действительно так. Сервис называется crond или просто cron.

Для дистрибутивов, использующих systemd:

Для дистрибутивов, использующих Upstart:

Если ваш дистрибутив использует «старый» подход System V init, перечислите все сервисы с:

и посмотрите, есть ли в списке cron.

Вам даже разрешено иметь файл crontab?

Проверьте папку наличие файлов с именами и . В Ubuntu ни один из них не должен существовать, что означает, что всем пользователям разрешено управлять заданиями cron. Однако, если есть файл , он должен содержать ваше имя пользователя. И наоборот, если файл существует, ваше имя пользователя не должно быть в нем. Если оставить файл пустым, это означает, что только файлы root и пользователи, перечисленные в могут иметь файлы crontab.

Ваши переменные установлены правильно?

Crontab автоматически устанавливает переменную SHELL в . Тем не менее, если вы выбираете оболочку fish или bash, вы должны изменить переменную SHELL , Аналогично, переменная PATH по умолчанию содержит только несколько каталогов. Именно здесь crontab ищет команды Linux. Если ваша задача cron не запускается, это может быть потому, что crontab не «видит» команду, которую вы использовали. Чтобы избежать этого, добавьте каталоги, содержащие команды, в переменную PATH, разделенные двоеточиями:

Если вы не хотите редактировать это в вашем crontab, вы можете определить эти переменные в скрипте, который вы хотите запустить как задание cron.

Ваш crontab форматируется?

Синтаксис Crontab не совсем гладко. Даже если вы подтвердите это с помощью онлайн-инструментов, упомянутых ранее, небольшая ошибка может помешать cron выполнять ваши задания. Будьте осторожны с:

  • добавить пустую строку в конце файла crontab
  • экранируйте знак% обратной косой чертой, если ваша команда включает его
  • писать комментарии в виде отдельных строк, начинающихся с #. Не пишите комментарии в той же строке, что и переменные окружения, или рядом с командами задания cron.

Проблемы с графической оболочкой

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

При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.

Посмотреть логи графической оболочки вы можете в том же файле ~/.xsession-erros.

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

Далее образование о cron:

Каждый пользователь в системе может иметь свой собственный файл crontab. Расположение корневого и пользовательского файлов crontab зависит от системы, но, как правило, ниже .

Существует общесистемная файл, Каталог может содержать фрагменты crontab, которые также читаются и обрабатываются cron. Некоторые дистрибутивы Linux (например, Red Hat) также имеют которые являются каталогами, скрипты внутри которых будут выполняться каждый час / день / неделю / месяц с привилегиями root.

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

Если компьютер не включен или демон crond не запущен, а дата / время выполнения команды уже прошли, crond не будет догонять и выполнять предыдущие запросы.

crontab подробности, как сформулировать команду:

Команда crontab представлена ​​одной строкой. Вы не можете использовать чтобы расширить команду на несколько строк. Хеш (Знак) представляет собой комментарий, который означает, что все в этой строке игнорируется cron. Начальные пробелы и пустые строки игнорируются.

Будьте ОЧЕНЬ осторожны при использовании процентов () войдите в свою команду. Если они не сбежали они преобразуются в символы новой строки и все после первого неэкранированного передается вашей команде на стандартный ввод.

Есть два формата файлов crontab:

  • Пользовательские crontab

  • Общесистемный и фрагменты

Обратите внимание, что для последнего требуется имя пользователя. Команда будет запущена от имени указанного пользователя

Первые 5 полей строки представляют время (а), когда команда должна быть запущена. Вы можете использовать числа или, где это применимо, названия дня / месяца в спецификации времени.

  • Поля разделяются пробелами или табуляциями.
  • Запятая () используется для указания списка, например 1,4,6,8, что означает запуск 1,4,6,8.
  • Диапазоны указываются тире () и могут быть объединены со списками, например 1-3,9-12, что означает от 1 до 3, затем от 9 до 12.
  • В можно использовать символ, чтобы ввести шаг, например 2/5, что означает, начиная с 2, а затем каждые 5 (2,7,12,17,22 …). Они не зацикливаются на конце.
  • Звездочка () в поле означает весь диапазон для этого поля (например, для минутного поля).
  • Диапазоны и шаги можно комбинировать, например означает, начиная с минимума для соответствующего поля, затем каждые 2, например. 0 для минут (0,2 … 58), 1 для месяцев (1,3 … 11) и т. Д.

Примеры Crontab: планирование команд и скриптов

Мы показали вам пару примеров, как выводится информация. Это имело для вас смысл?

Позвольте пройти первый пример.

Minute | Hour | Day-Date | Month | Day Name | Command
|—–|——|—–|—–|—–|—–|—–|
| 0 | * | * | * | * | echo “Linux is Cool!” >> ~/crontab_log.txt |

Установка минутного значения в «0» означает, что команда будет выполняться каждый час в час.

Расширенные графики работы

Вы можете редактировать несколько значений одновременно. Если вы хотите, вы можете заменить все 5 звездочек со спецификациями.

Minute | Hour | Day-Date | Month | Day Name | Command
|—–|——|—–|—–|—–|—–|—–|
|*/5 | 3-6 | */5 | */2 |0,6| echo “Linux is Cool!” >> ~/crontab_log.txt |

Есть идеи, что говорит этот? Ради этого урока мы сделал эту работу особенно запутанной. Было бы необычно иметь что-то с таким большим количеством параметров «в дикой природе», но давайте посмотрим, сможете ли вы расшифровать это.

Давайте попробуем это вместе:

поле Ценность Смысл
Day Name 0,6 Суббота и воскресенье
Month * / 2 Каждый месяц, который делится на 2, месяц.
Day Date * Каждый день
Hour 3-6 С 3 до 6 утра
Minutes * / 5 Каждые 5 минут

На простом языке:

Таким образом, каждый второй месяц, по выходным, независимо от даты, эта команда будет выполняться каждые 5 минут между 3 утра и 6 утра.

Вау, это было запутанно. Если вы смогли следовать этому, вы готовы справиться с лучшими из них.

Напишите простой скрипт автоматизации cron для резервного копирования файлов.

До этого момента написанные вами задания cron делали только одно. Это может быть полезно, но, возможно, вы хотите сделать несколько задач.

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

Это не ограничивается только bash, вы также можете реализовать скрипт, который использует Python или Perl, если хотите.

Каковы наши цели?

  • Работа будет обрабатываться в 3 часа ночи каждую ночь
  • Резервное копирование папку /Documents в zip-файл
  • Создайте текстовый файл со списком всего в каталоге
  • Создайте архивную папку, которая клонирует нашу резервную копию и текстовый файл в подпапку с текущей датой

our_backup_script.sh

#! /bin/bash

DATE=$(date +%d-%m-%Y)
# Date in format DAY##-MONTH##-YEAR####

mkdir -p ~/archive/$DATE
# создайте папку для сегодняшней даты в архиве, если архив не существует, сделайте архив 
ls -al ~/Documents > ~/archive/$DATE/contents.txt
# создайте текстовый файл со списком содержимого папки документы
cd ~/  && tar -cpzf $DATE.docs.backup.gz Documents/*
# перейдите в родительский каталог в папку tar / Documents
cp ~/$DATE.docs.backup.gz ~/archive/$DATE/documents_archive.gz
# один файл .gz остается в домашнем каталоге, дубликат отправляется в наш архив под его датой
andreyex@destroyer:~$ ls
 Desktop     Downloads   Music                  Pictures   Public      Videos
 Documents   ENV         our_backup_script.sh   projects   Templates  'VirtualBox VMs'
andreyex@destroyer:~$ bash our_backup_script.sh 
andreyex@destroyer:~$ ls
 25-11-2019.docs.backup.gz   Documents   Music                  projects    Videos
 archive                     Downloads   our_backup_script.sh   Public     'VirtualBox VMs'
 Desktop                     ENV         Pictures               Templates
andreyex@destroyer:~$ ls archive/25-11-2019/
contents.all_files.txt  documents_archive.gz

Все, что осталось сделать, сделать этот скрипт работой cron.

crontab -e

И добавьте туда следующее:

0 3 * * * bash ~/our_backup_script.sh

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

Отладка команд cron

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

Захватите результат самостоятельно

который захватывает stdout и stderr в /tmp/mycommand.log

Посмотрите на логи; cron регистрирует свои действия через системный журнал, который (в зависимости от вашей настройки) часто идет в или же ,

При необходимости вы можете отфильтровать операторы cron, например:

Теперь, когда мы рассмотрели основы cron, где находятся файлы и как их использовать, давайте рассмотрим некоторые распространенные проблемы.

Проверьте, что cron работает

Если cron не запущен, ваши команды не будут запланированы…

должен получить что-то вроде

или же

Если нет, перезапустите его

или же

Там могут быть другие методы; используйте то, что обеспечивает ваш дистрибутив.

cron запускает вашу команду в ограниченной среде.

Какие переменные среды доступны, вероятно, будет очень ограниченным. Как правило, вы получите только несколько переменных, таких как , , а также ,

Особого внимания заслуживает ограничено , Подавляющее большинство проблем «мой cron скрипт не работает» вызван этим ограничительным путем. Если ваша команда находится в другом месте, вы можете решить эту проблему несколькими способами:

  1. Укажите полный путь к вашей команде.

  2. Укажите подходящий путь в файле crontab

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

cron запускает вашу команду с помощью cwd == $HOME

Независимо от того, где исполняемая программа находится в файловой системе, текущий рабочий каталог программы при запуске cron будет домашним каталогом пользователя

Если вы обращаетесь к файлам в своей программе, вам необходимо принять это во внимание, если вы используете относительные пути или (предпочтительно) просто везде используете полные пути и избавите всех от путаницы

Последняя команда в моем crontab не запускается

Cron обычно требует, чтобы команды заканчивались новой строкой. Отредактируйте свой crontab; перейдите в конец строки, содержащей последнюю команду, и вставьте новую строку (нажмите ввод).

Проверьте формат crontab

Вы не можете использовать пользовательский crontab в формате / crontab для / etc / crontab или фрагменты в /etc/cron.d и наоборот. Crontab, отформатированный пользователем, не содержит имя пользователя в 6-й позиции строки, в то время как crontab, отформатированный системой, включает имя пользователя и запускает команду от имени этого пользователя.

Я помещаю файл в /etc/cron. enjhourly,daily,weekly,monthly}, и он не запускается

  • Убедитесь, что имя файла не имеет расширения, см. Run-parts
  • Убедитесь, что файл имеет разрешения на выполнение.
  • Сообщите системе, что использовать при выполнении вашего скрипта (например, put наверху)

Cron даты, связанные с ошибками

Если ваша дата была недавно изменена в результате обновления пользователя или системы, часового пояса или другого, то crontab начнет работать неправильно и выдает странные ошибки, иногда работающие, иногда нет. Это попытка crontab попытаться «сделать то, что вы хотите», когда время изменится из-под него. Поле «минуты» станет недействительным после смены часа. В этом случае принимаются только звездочки. Перезапустите cron и попробуйте снова, не подключаясь к Интернету (чтобы у даты не было возможности перезагрузить один из серверов времени).

Знаки процента, опять

Чтобы подчеркнуть совет о знаках процента, вот пример того, что cron делает с ними:

создаст файл ~/cron.out, содержащий 3 строки

Это особенно навязчиво при использовании команда. Обязательно избегайте знаков процента

Отладка команд cron

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

Захватите результат самостоятельно

Который фиксирует stdout и stderr в /tmp/mycommand.log

Посмотрите на журналы; Cron регистрирует свои действия через syslog, которые (в зависимости от вашей настройки) часто идут в или .

При необходимости вы можете отфильтровать операторы cron, например

Теперь, когда мы рассмотрели основы cron, где находятся файлы и как их использовать, давайте рассмотрим некоторые общие проблемы.

Убедитесь, что cron запущен

Если cron не запущен, ваши команды не будут запланированы …

Должно получить вам что-то вроде

или

Если не перезапустить его

или

Могут быть и другие методы; Используйте то, что предоставляет ваш дистрибутив.

Cron запускает вашу команду в ограниченной среде.

Какие переменные среды доступны, вероятно, будут очень ограниченными. Как правило, вы получите только определенные переменные, такие как , и .

Особо следует отметить, что ограничена . Подавляющее большинство «моего скрипта cron не работает», проблемы вызваны этим ограничительным путем . Если ваша команда находится в другом месте, вы можете решить это несколькими способами:

  1. Предоставьте полный путь к вашей команде.

  2. Предоставьте подходящую PATH в файле crontab

      -  

Если вашей команде нужны другие переменные среды, вы также можете определить их в файле crontab.

Cron запускает вашу команду cwd == $ HOME

Независимо от того, где выполняемая вами программа находится в файловой системе, текущий рабочий каталог программы, когда cron запускает ее, будет домашним каталогом пользователя . Если вы получаете доступ к файлам в своей программе, вам нужно учитывать это, если вы используете относительные пути или (желательно) просто используете полностью квалифицированные маршруты повсюду и сохраняете всех в путанице.

Последняя команда в моем crontab не запускается

Cron обычно требует, чтобы команды заканчивались новой строкой. Отредактируйте свой crontab; Перейдите к концу строки, содержащей последнюю команду, и вставьте новую строку (нажмите enter).

Проверьте формат crontab

Вы не можете использовать crontab crontab ctrlab для / etc / crontab или фрагменты в /etc/cron.d и наоборот. Пользователь crontab, отформатированный пользователем, не включает имя пользователя в 6-ое положение строки, а система, отформатированная crontab, включает имя пользователя и запускает команду в качестве этого пользователя.

Я помещаю файл в /etc/cron.{hourly,daily, weekly,monthly}, и он не запускается

  • Убедитесь, что имя файла не имеет расширения, см. Разделы запуска
  • Убедитесь, что у файла есть разрешения на выполнение.
  • Сообщите системе, что использовать при выполнении вашего скрипта (например, поставить сверху)

PHP конкретные

Если у вас есть работа cron, например:

И в случае ошибок ожидать, что они будут отправлены вам, но они не – проверьте это.

PHP по умолчанию не отправляет ошибки в STDOUT. @see https://bugs.php.net/bug.php?id=22839

Чтобы исправить это, добавьте cli`s php.ini или в свою строку (или в вашу оболочку bash для PHP):

  • –define display_startup_errors = 1
  • –define display_errors = ‘stderr’

1-я настройка позволит вам иметь такие смертельные, как «Memory oops» и 2nd – перенаправить их все на STDERR. Только после того, как вы сможете хорошо спать, так как все будет отправлено в почтовое письмо root, а не только в журнале.

Что делать вместо этого?

Создать несколько пакетов

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

Например, для запуска пакета каждые 40 минут (00:00, 00:40, 01:20, 02:00 и т.д.) Создайте две партии: одну, которая запускается дважды в четные часы, и вторую, которая запускает только нечетные часы:

Реже запускайте свои партии

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

Чаще запускайте свои партии (но не допускайте одновременного запуска нескольких партий)

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

Вместо этого думайте по-другому и создайте cronjob, который изящно потерпит неудачу, когда предыдущий прогон еще не закончился, но который будет работать иначе. Смотрите это Q & A :

Это почти сразу же начнет новый запуск после того, как завершится предыдущий запуск/usr/local/bin/частый_cron_job.

Начните свои партии чаще (но выйдите изящно, когда условия не правильны)

Поскольку синтаксис cron ограничен, вы можете решить разместить более сложные условия и логику в самом пакетном задании (или в сценарии-обертке вокруг существующего пакетного задания) , Это позволяет вам использовать расширенные возможности ваших любимых языков сценариев, комментировать ваш код и предотвращать трудно читаемые конструкции в самой записи crontab.

В Bash будет выглядеть примерно так:

Который вы можете затем безопасно (попытаться) запустить каждую минуту:

Другая, но похожая проблема заключается в том, чтобы запланировать запуск пакета в первый понедельник каждого месяца (или во вторую среду) и т.д. Просто запланируйте запуск пакета каждый понедельник и завершите работу, если дата не находится между 1st или 7го и день недели не понедельник.

Который вы можете безопасно (попытаться) запустить каждый понедельник:

Не используйте cron

Вы действительно должны использовать терминал?

Точно нет. Пользователи KDE могут планировать задания cron с помощью KCron, который доступен из модуля « Настройки системы»> «Планировщик задач ». С простым интерфейсом, который позволяет вам выбирать и настраивать все всего лишь несколькими щелчками мыши, KCron очень приятен в использовании.

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

Вы должны знать о других решениях, таких как Crontab-UI и Minicron . Они больше подходят для пользователей, которые управляют несколькими машинами и задачами cron, и одной из их самых крутых функций является веб-интерфейс.

Далее образование о cron:

Каждый пользователь в системе может иметь свой собственный файл crontab. Расположение корневого и пользовательского файлов crontab зависит от системы, но, как правило, ниже .

Существует общесистемная файл, Каталог может содержать фрагменты crontab, которые также читаются и обрабатываются cron. Некоторые дистрибутивы Linux (например, Red Hat) также имеют которые являются каталогами, скрипты внутри которых будут выполняться каждый час / день / неделю / месяц с привилегиями root.

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

Если компьютер не включен или демон crond не запущен, а дата и время выполнения команды уже прошли, crond не будет догонять и выполнять предыдущие запросы.

crontab подробности, как сформулировать команду:

Команда crontab представлена ​​одной строкой. Вы не можете использовать чтобы расширить команду на несколько строк. Хеш (Знак) представляет собой комментарий, который означает, что все в этой строке игнорируется cron. Начальные пробелы и пустые строки игнорируются.

Будьте ОЧЕНЬ осторожны при использовании процентов () войдите в свою команду. Если они не сбежали они преобразуются в символы новой строки и все после первого неэкранированного передается вашей команде на стандартный ввод.

Есть два формата файлов crontab:

  • Пользовательские crontab

  • Общесистемный и фрагменты

Обратите внимание, что для последнего требуется имя пользователя. Команда будет запущена от имени указанного пользователя

Первые 5 полей строки представляют время (а), когда команда должна быть запущена. Вы можете использовать числа или, где это применимо, названия дня / месяца в спецификации времени.

  • Поля разделяются пробелами или табуляциями.
  • Запятая () используется для указания списка, например 1,4,6,8, что означает запуск 1,4,6,8.
  • Диапазоны указываются тире () и могут быть объединены со списками, например 1-3,9-12, что означает от 1 до 3, затем от 9 до 12.
  • В можно использовать символ, чтобы ввести шаг, например 2/5, что означает, начиная с 2, а затем каждые 5 (2,7,12,17,22 …). Они не зацикливаются на конце.
  • Звездочка () в поле означает весь диапазон для этого поля (например, для минутного поля).
  • Диапазоны и шаги можно комбинировать, например означает, начиная с минимума для соответствующего поля, затем каждые 2, например. 0 для минут (0,2 … 58), 1 для месяцев (1,3 … 11) и т. Д.

Примеры заданий для Crontab

Давайте проверим некоторые примеры crontab для планирования заданий cron.

1. Запускать задания cron каждые 12 часов

Это помогает при регулярных проверках системы или резервном копировании. Чтобы запланировать выполнение задачи каждые 12 часов, введите:

2. Запускать задание cron каждые 5 минут

Иногда вам нужно следить за своей системой каждые n минут. Используйте следующее выражение для выполнения задачи каждые 5 минут.

3. Запускать работу cron каждый день в 2 часа ночи

Ежедневное резервное копирование может быть запланировано на определенное время. Следующее выражение запускает задание cron каждый день в 2 часа ночи.

Чтобы запланировать работу cron каждый день в 2 часа дня, cron использует 24-часовые часы.

7. Пример задания cron для запуска каждую субботу в 1 час ночи

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

13. Запуск задания cron ежемесячно

Вместо использования 0 0 1 * *, вы можете использовать ярлык с помощью @monthly. Он работает в 00:00 1-го числа месяца. В качестве альтернативы вы можете разместить свой скрипт в /etc/cron.monthly/.

14. Запуск задания cron еженедельно

Вместо использования 0 0 * * mon, вы можете использовать ярлык с помощью @weekly. Он начинается в 00:00 в понедельник. В качестве альтернативы вы можете разместить свой скрипт в файле /etc/cron.weekly/.

15. Запуск задания cron ежедневно

Вместо использования 0 0 * * *, вы можете использовать ярлык с помощью @daily. Это работает каждый день в 00:00. В качестве альтернативы вы можете разместить свой сценарий в файле /etc/cron.daily/.

16. Выполнение задания cron каждый час

Вместо использования 0 */1 * * *, вы можете использовать ярлык с помощью @hourly. Он работает в 0 минут каждый час. В качестве альтернативы вы можете разместить свой скрипт в файле /etc/cron.hourly/.

17. Запуск задания cron при перезагрузке

Для запуска задачи при каждой перезагрузке системы используйте строку @reboot. Скрипт будет выполнен после перезагрузки.

18. Запуск задания для cron каждые 30 секунд

Cron позволяет работать только с минутами. Не существует простого способа запланировать выполнение задания каждые 30 секунд.

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

19. Запустите задание cron и перенаправить вывод

Если наш скрипт имеет какой-то вывод, нам, возможно, захочется его увидеть. Для этого можно сохранить его в отдельный файл. Этот пример позволит запускать php-скрипт каждые 3 минуты и перенаправлять вывод в файл.

Обратите внимание что тут используются абсолютные пути, так как мы не определили нашу переменную $PATH

Резервное копирование заданий cron

Для бекапа задач cron, можно использовать следующую команду:

Для бекапа задач cron определенного пользователя:

Чтобы восстановить cron из файла резервной копии, просто используйте:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: