crontab

Cron Jobs завершує підручник для початківців

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

У цьому посібнику ми надамо вам основну інформацію про все, що вам потрібно зрозуміти для планування роботи з cron. Це включає основний синтаксис cron, редагування файлу crontab, планування роботи з cron з кількома прикладами, перегляд завдання cron тощо.

Основи Cron Job

Давайте розберемося з деякими основами роботи 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, використовуючи таку команду:

$ nano / etc / crontab

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

# хв год dayofmonth місяць dayofweek команда користувача
* * * * * user1 ifconfig

Спеціальні завдання користувача cron

Спеціальні завдання користувача cron знаходяться в /var / spool / cron / crontabs каталог. Хоча ви можете редагувати ці завдання вручну, рекомендується редагувати ці завдання за допомогою команди crontab -e.

Стандартний користувач може визначити завдання cron, використовуючи таку команду:

$ crontab -e

Наприклад, якщо ви ввійшли в систему як "тестовий" користувач, запуск команди crontab -e відредагує файл crontab для "тестового" користувача. Подібним чином, якщо ви ввійшли як кореневий користувач, команда crontab -e відредагує файл crontab для кореневого користувача.

Виконайте наведену нижче команду в Терміналі, щоб відредагувати файл crontab для будь-якого іншого користувача:

$ sudo crontab -u -e

Наприклад, якщо ви ввійшли як користувач “test1” і хочете відредагувати файл crontab для користувача “test2”, команда буде такою:

$ sudo crontab -u test2 -e

Ось синтаксис завдання cron, який можна додати у файл crontab:

# m h dayofmonth місяць dayofweek команда
* * * * * ifconfig

Ви можете побачити в конкретних робочих місцях, що немає жодного імені користувача.

Команди Crontab

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

  • кронтаб -е Для редагування файлу crontab поточного користувача
  • кронтаб -л Для відображення вмісту файлу crontab
  • crontab -u [ім'я користувача] Для редагування файлу crontab будь-якого іншого користувача
  • crontab -r Щоб видалити файл crontab поточного користувача
  • кронтаб -і Щоб відобразити запит перед видаленням файлу crontab поточного користувача

Планування роботи з Кроном

За допомогою Cron ви можете виконувати завдання в певний час, дату та інтервали з мінімальною одиницею в хвилинах, тобто.e., Ви можете виконувати роботу щохвилини.

Щоб запланувати роботу із 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 Jobs

Ось кілька прикладів роботи 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. @hourly: Для виконання завдання раз на годину, тобто.e., “0 * * * *
  2. @midnight: Для виконання роботи раз на день, тобто.e., “0 0 * * *
  3. @daily: те саме, що опівночі
  4. @ тиждень: Для виконання роботи раз на тиждень, тобто.e., “0 0 * * 0
  5. @ щомісяця: Для виконання роботи раз на місяць, тобто.e., “0 0 1 * *
  6. @ щорічно: Для виконання роботи раз на рік, тобто.e., “0 0 1 1 *
  7. @ рік: так само, як @ щорічно
  8. @reboot: Виконувати завдання раз на кожному запуску

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

@weekly команда / сценарій

Попередньо визначені каталоги Cron

У Linux є кілька заздалегідь визначених каталогів cron, де збережені сценарії виконуються автоматично. Якщо ми розмістимо будь-який сценарій під цими каталогами, він буде автоматично виконаний у встановлений час.

  • / etc / cron.щодня
  • / etc / cron.щогодини
  • / etc / cron.щомісяця
  • / etc / cron.щотижня

Наприклад, щоб запускати скрипт раз на місяць, вам потрібно буде розмістити його в / etc / cron.щомісяця.

Переглянути Cron Jobs

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

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

$ crontab -l

Перегляд завдань для кореневих користувачів

Щоб переглянути всі заплановані завдання кореневого користувача, виконайте таку команду в терміналі:

$ cat / etc / crontab

Вам потрібно буде ввійти в систему як адміністратор користувача або запустити команду як 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> backup_cron.txt

Видалення всіх запланованих завдань Cron

Для того, щоб видалити всі заплановані завдання cron, використовуйте прапор -r наступним чином:

$ crontab -r

Дозвіл Cron

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

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

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

Є кілька веб-сайтів, які дозволяють генерувати синтаксис для crontabs. Ці веб-сайти полегшують створення виразу crontab без необхідності запам'ятовувати синтаксис. Хоча для генераторів синтаксису доступні різні веб-сайти, такі як crontabgenerator.com, crontab-generator.org та cronmaker.ком. Той, який я переважно віддаю перевагу і вважаю корисним, - це crontab.гуру. На основі вводу користувача він генерує вираз crontab, який можна скопіювати та вставити у файл crontab.

Висновок

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

Найкращі лабораторні ігри Oculus App
Якщо ви є власником гарнітури Oculus, то вам потрібно дізнатися про бокове завантаження. Бокове завантаження - це процес встановлення негарнітного вмі...
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...