crontab

Cron Jobs Полное руководство для начинающих

Cron Jobs Полное руководство для начинающих
Cron - самая полезная утилита в Linux или UNIX-подобных операционных системах, которая позволяет запускать команды или скрипты по заданному расписанию без какого-либо вмешательства пользователя. Запланированные команды и скрипты также называются заданиями cron. Он в основном используется для автоматизации повторяющихся заданий, таких как выполнение запланированного резервного копирования, очистка временных файлов, обслуживание системы и различных других повторяющихся заданий. Он похож на Планировщик заданий в ОС Windows.

В этом руководстве мы предоставим вам базовое введение всего, что вам нужно понять для планирования работы с помощью cron. Это включает в себя базовый синтаксис cron, редактирование файла crontab, планирование задания с помощью cron с несколькими примерами, просмотр задания cron и т. Д.

Основы работы Cron

Давайте разберемся с некоторыми основами работы cron.

Что такое Кронд?

Crond - это демон в системе Linux, который работает в фоновом режиме и каждую минуту проверяет, не запланировано ли на это время какое-либо задание. Если есть, он выполняет эту работу, в противном случае он остается неактивным.

Синтаксис работы Cron

Синтаксис задания cron следующий:

* * * * * команда / скрипт

Слева:

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

  1. Звездочка (*): Чтобы указать все возможные значения для поля
  2. Бросаться (-): К sопределить диапазон значений
  3. Запятая (,): Чтобы указать список значений
  4. Разделитель (/): Чтобы указать значение шага

Редактирование файла Crontab

Crontab - это файл, содержащий запланированные задания в определенном синтаксисе. Есть два типа файлов crontab; один для системных заданий cron, а другой - для пользовательских заданий cron.

Системные задания cron

Общесистемные задания cron расположены в / etc / crontab файл и / etc / cron.d каталог, и они проходят через / etc / cron.ежечасно, / etc / cron.ежедневно, / etc / cron.еженедельно а также / etc / cron.ежемесячно. Только системный администратор может получить доступ к этим файлам.

Системный администратор может определить задание cron с помощью следующей команды:

$ нано / и т.д. / crontab

Вот синтаксис задания в / etc / crontab файл:

# min hr dayofmonth month dayofweek имя пользователя команда
* * * * * user1 ifconfig

Пользовательские задания cron

Пользовательские задания cron расположены в папке /вар / катушка / cron / crontabs каталог. Хотя вы можете редактировать эти задания вручную, рекомендуется редактировать эти задания с помощью команды crontab -e.

Стандартный пользователь может определить задание cron с помощью следующей команды:

$ crontab -e

Например, если вы вошли в систему как «тестовый» пользователь, запуск команды crontab -e отредактирует файл crontab для «тестового» пользователя. Точно так же, если вы вошли в систему как пользователь root, команда crontab -e отредактирует файл crontab для пользователя root.

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

$ sudo crontab -u

Например, если вы вошли в систему как пользователь «test1» и хотите отредактировать файл crontab для пользователя «test2», команда будет выглядеть так:

$ sudo crontab -u test2 -e

Вот синтаксис задания cron, которое можно добавить в файл crontab:

# m h dayofmonth month команда dayofweek
* * * * * ifconfig

Вы можете видеть в пользовательских заданиях, что не указано «имя пользователя».

Команды Crontab

Команда crontab используется для редактирования, перечисления и удаления заданий cron:

  • crontab -e Чтобы отредактировать файл crontab текущего пользователя
  • crontab -l Чтобы отобразить содержимое файла crontab
  • crontab -u [имя пользователя] Для редактирования файла crontab любого другого пользователя
  • crontab -r Чтобы удалить файл crontab текущего пользователя
  • crontab -i Чтобы отобразить приглашение перед удалением файла crontab текущего пользователя

Планирование работы с помощью Cron

С Cron вы можете запускать задание в определенное время, дату и интервалы с минимальной единицей измерения в минутах, i.е., ты можешь запускать работу каждую минуту.

Чтобы запланировать задание с помощью cron, откройте файл crontab, используя метод, описанный в предыдущем разделе. После открытия файла crontab вам будет предложено выбрать текстовый редактор. Введите число, чтобы выбрать предпочитаемый текстовый редактор. Прокрутите вниз до конца файла и добавьте задания в синтаксисе, описанном выше. Каждая строка в файле определяет одну команду. Первые пять записей в строке указывают запланированное время, а последняя запись указывает, какую команду или сценарий следует запустить.

Пример:

Следующая строка в файле crontab будет планировать задание cron для запуска команды / сценария каждые 30 минут в последние 5 часов каждый день недели с понедельника по субботу.

* / 30 5 * * 1-6 команда / скрипт

Минуты

В этом поле мы указываем минуты, когда мы хотим, чтобы команда была выполнена. Указывается от 0 до 59. * В этом поле означает запускать задание каждую минуту. В приведенной выше строке crontab * / 30 указывает заданию cron запускать указанную команду / скрипт каждые 30 минут.

Часы

В этом поле мы указываем часы, когда мы хотим, чтобы команда была выполнена. Указывается от 0 до 23. * В этом поле означает запускать задание каждый час. В приведенной выше строке crontab значение 5 указывает заданию cron запускать указанную команду / скрипт каждые пять часов.

День месяца

В этом поле мы указываем конкретные дни месяцев, когда мы хотим, чтобы команда выполнялась. Указывается от 1 до 31. * В этом поле означает каждый день. В приведенной выше строке crontab * указывает заданию cron запускать указанную команду / скрипт каждый день.

Месяц в году

В этом поле мы указываем конкретные месяцы, когда мы хотим, чтобы команда выполнялась. Указывается от 1 до 12. * В этом поле означает каждый месяц. В приведенной выше строке crontab * указывает заданию cron запускать указанную команду / скрипт каждый месяц.

День недели

В этом поле мы указываем конкретные дни недели, когда мы хотим, чтобы команда выполнялась. Указывается от 0 до 6 с воскресенья по субботу (0 для воскресенья и 6 для субботы). * В этом поле означает каждый день недели. В приведенной выше строке crontab * указывает заданию cron запускать указанную команду / скрипт каждый день в неделю.

Примеры заданий Cron

Вот несколько примеров заданий cron:

Запускать cron каждые 15 минут

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

* / 15 * * * * команда / скрипт

Запускать cron-задание в 5 утра каждый день

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

0 5 * * * команда / скрипт

Запускать cron-задание в 17:00 каждый день

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

0 17 * * * команда / скрипт

Запускать cron-задание в 9 утра первого числа каждого месяца

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

0 9 1 * * команда / скрипт

Запускать cron-задание каждый час 15 марта

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

0 * 15 3 * команда / скрипт

Запускать cron каждые 5 часов

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

0 * / 5 * * * команда / скрипт

Запускать cron каждые 15 минут

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

* / 15 * * * *

Использование строк

Следующие строки также могут использоваться для определения задания:

  1. @ почасово: Чтобы выполнять задание один раз в час, я.е., «0 * * * *«
  2. @полночь: Чтобы выполнять задание один раз в день, я.е., «0 0 * * *«
  3. @ежедневно: так же, как полночь
  4. @ еженедельно: Чтобы выполнять задание раз в неделю, я.е., «0 0 * * 0«
  5. @monthly: Чтобы выполнять задание один раз в месяц, я.е., «0 0 1 * *«
  6. @ ежегодно: Чтобы выполнять задание один раз в год, я.е., «0 0 1 1 *«
  7. @ год: так же, как @annually
  8. @перезагружать: Выполнять задание один раз при каждом запуске

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

@weekly команда / скрипт

Предопределенные каталоги Cron

В Linux есть несколько предопределенных каталогов cron, в которых сохраненные скрипты выполняются автоматически. Если мы поместим какой-либо скрипт в эти каталоги, он будет автоматически выполнен в указанное время.

  • / etc / cron.ежедневно
  • / etc / cron.ежечасно
  • / etc / cron.ежемесячно
  • / etc / cron.еженедельно

Например, чтобы запускать скрипт один раз в месяц, вам нужно будет поместить его в / etc / cron.ежемесячно.

Просмотр вакансий Cron

Просмотр вакансий для текущего пользователя

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

$ crontab -l

Просмотр вакансий для пользователей root

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

$ cat / etc / crontab

Вам нужно будет войти в систему как пользователь root или запустить команду как sudo.

Просмотр вакансий для других пользователей

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

$ sudo crontab -u

Для запуска этой команды вам потребуются привилегии sudo.

Просмотр почасовых заданий cron

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

$ ls -la / etc / cron.ежечасно

Просмотр ежедневных заданий cron

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

$ ls -la / etc / cron.ежедневно/

Просмотр еженедельных заданий cron

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

$ ls -la / etc / cron.еженедельно /

Просмотр ежемесячных заданий cron

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

$ ls -la / etc / cron.ежемесячно /

Резервное копирование всех заданий Cron

Рекомендуется хранить резервную копию всех заданий cron в файле, чтобы вы могли восстановить их в случае удаления. Чтобы сделать резервную копию всех текущих заданий, используйте оператор перенаправления, чтобы перенаправить вывод crontab -l в файл.

$ crontab -l> резервный_cron.текст

Удаление всех запланированных заданий Cron

Чтобы удалить все запланированные задания cron, используйте флаг -r следующим образом:

$ crontab -r

Разрешение Cron

Мы можем ограничить доступ к команде crontab через два файла: / и т.д. / cron.разрешить и / etc / cron.отказываться от.

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

Генераторы синтаксиса Crontab

Есть несколько веб-сайтов, которые позволяют генерировать синтаксис для crontab. Эти веб-сайты упрощают создание выражения crontab без необходимости запоминать синтаксис. Хотя существуют различные веб-сайты для генераторов синтаксиса, такие как crontabgenerator.com, crontab-генератор.org и cronmaker.ком. Тот, который я больше всего предпочитаю и считаю полезным, - это crontab.гуру. На основе пользовательского ввода он генерирует выражение crontab, которое вы можете скопировать и вставить в файл crontab.

Заключение

В этом руководстве мы объяснили основы заданий cron, их синтаксис и способы его настройки. Мы также обсудили, как просматривать задания cron, создавать резервные копии и удалять их, если они больше не нужны.

Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...