Cron - плануємо завдання в Убунту, блог про ubuntu linux

Дуже часто виникає необхідність виконувати потрібні завдання в певний період часу (періодичне очищення диска, запуск будильника, виключення комп'ютера за розкладом, і т.д.) Для цього в Linux, і в Ubuntu зокрема, існує демон-планувальник Cron.
Що таке Cron і Crontab?
Cron це процес, демон, або програма, яка активується один раз в хвилину і стежить за роботою, яку потрібно виконати в даний момент. А ось Crontab це той самий список завдань, за яким стежить Cron.
Для редагування розкладу crontab використовуйте наступну команду
/ Bin / sh: / bin / vi: No such file or directory
crontab: «/ bin / vi» exited with status 127
Кожне завдання пишемо з нового рядка.
Відкриється ваш файл crontab.
Синтаксис для планування завдань досить простий і потрібно просто вникнути в його суть.
* * * * * Шлях до команди або скрипту
Розберемо призначення п'яти сніжинок.
Перша *. Хвилини - інтервал значень: 0-59
Друга *. Годинники - інтервал значень: 0-23
Третя *. День - інтервал значень: 1-31
Четверта *. Місяць - інтервал значень: 1-12
П'ята *. День тижня - інтервал значень: 0-7 (неділя має значення - 0 або 7, понеділок - 1, вівторок - 2, і т.д.)
Якщо будь-яка * не змінюється, то значить вона працює за замовчуванням. Що це означає? Якщо не змінювати першу * (хвилини), то значить команда буде спрацьовувати кожну хвилину, якщо не буде змінена друга * (годинник), то команда буде спрацьовувати кожну годину і т.д. Сенс думаю зрозумілий.
В самому кінці впишіть наступний текст:
Це не обов'язково, але бажано. Цей текст дозволить виконувати програми, які не прописуючи повний шлях до цих програм. Але повний шлях до вашим скриптам писати все ж доведеться.
Всі скрипти, які будемо використовувати, повинні бути виконуваними. Це можна зробити так: правою кнопкою по скрипту - Властивості - Права - ставимо галочку «Дозволити виконання файлу як програми», або в Терміналі:
chmod + x шлях до потрібного скріпту.sh
Тепер розберемо кілька прикладів для закріплення знань.
Припустимо, потрібно виконувати скрипт time.sh кожен день в 6:00 вечора. Запис буде виглядати таким чином:
0 18 * * * /home/user/time.sh
Щоб задати періодичність спрацьовування, програми або скрипта, використовується /. Наприклад, якщо потрібно виконувати завдання кожні 5 хвилин по понеділках, то запис буде наступною:
Даний запис буде виконувати скрипт time.sh кожні 3 години по вівторках і п'ятницях:
0 * / 3 * * 2,5 /home/user/time.sh
Ще порція прикладів:
виконувати завдання один раз на годину в 15 хвилин:
15 * / 1 * * * /home/user/time.sh
виконувати завдання кожні 5 годин на 20 хвилин:
20 * / 5 * * * /home/user/time.sh
виконувати завдання по середах о 6 годині 15 хвилин вечора:
15 18 * * 3 /home/user/time.sh
1 0 12 2 * /home/user/time.sh
виконувати завдання в неділю 27 числа о 13 годині 47 хвилин:
47 13 27 * 0 /home/user/time.sh
виконувати завдання щомісяця 10 числа о 4 годині 10 хвилин:
10 4 10 * * /home/user/time.sh
виконувати завдання кожну хвилину:
виконувати завдання раз на годину по буднях:
0 * * * 1-5 /home/user/time.sh
виконувати завдання кожен парний годину:
Розширені можливості пошуку Cron:
Приклад: якщо потрібно виконувати завдання при вході в систему, то команда буде такий вигляд:
@reboot root /home/user/time.sh
Якщо потрібно виконати програму, яка має графічний інтерфейс, то після настройки часу-дати потрібно вставити:
Вся команда матиме такий вигляд:
58 21 * * * export DISPLAY =: 0 /home/dm/My_Scripts/sleep.sh
Ваш crontab-файл буде знаходиться в / var / spool / cron / crontabs / користувач.
Подивитися список сервісних завдань в cron можна командою:
Щоб встановити завдання від іншого користувача потрібно виконати наступну команду:
sudo crontab -e -u user
замість user пишемо потрібне ім'я.
Виявляється, що користувачі Windows, теж можуть використовувати всю міць планувальника завдань - cron. Припустимо можна запланувати перевірку жорсткого диска на наявність вірусів, наприклад антивірусом від Dr. Web. Ви можете завантажити dr. Web CureIt на сайті download.net. Як виявилося, щоб запустити cron в «винде», потрібно витратити чимало часу і повозитися з настройками. Але нам це не загрожує. В Убунту все працює «з коробки».
На цьому дозвольте відкланятися і вибачте за многобукаф.
Здраствуйте, підкажіть - створив файл
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# Indicating with different fields when the task will be run
# And what command to run for the task
#
# To define the time you can provide concrete values for
# Minute (m), hour (h), day of month (dom), month (mon),
# And day of week (dow) or use '*' in these fields (for 'any'). #
# Notice that tasks will be started based on the cron's system
# Daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# Email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# At 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz / home /
#
# For more information see the manual pages of crontab (5) and cron (8)
#
# M h dom mon dow command
@reboot root /home/dell/display.sh
після натискання зберегти - gedit виводить червоним «не вдалося знайти файл /tmp/crontab.150v8m/crontab»