Как настроить работу Cron?

Я хочу запланировать выполнение задачи на регулярной основе и услышал, что Cron - это способ сделать это.

Как добавить задания Cron в Ubuntu?

475 голосов | спросил Gabriel Solomon 16 PM000000120000000431 2010, 12:25:04

6 ответов


587

Поместите сценарий оболочки в одну из следующих папок: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly или /etc/cron.weekly.

Если вам этого недостаточно, вы можете добавить более конкретные задачи, например. два раза в месяц или каждые 5 минут. Перейдите к терминалу и введите:

crontab -e

Это откроет ваш персональный файл crontab (cron configuration). Первая строка в этом файле объясняет все это! В каждой строке вы можете определить одну команду для запуска и ее расписание, и формат довольно прост, когда вы его повесите. Структура:

minute hour day-of-month month day-of-week command

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

Вы также можете использовать интервалы. Они определяются следующим образом: */20. Этот пример означает каждый 20-й, поэтому в столбце минут он эквивалентен 0,20,40.

Итак, чтобы выполнять команду каждый понедельник в 5:30 дня:

30 17 * * 1 /path/to/command

или каждые 15 минут

*/15 * * * * /path/to/command

Обратите внимание, что день недели идет от 0-6, где 0 - воскресенье.

Здесь вы можете прочитать здесь .

ответил Damjan Pavlica 18 J000000Wednesday18 2018, 12:43:55
93

Если задание, которое вы хотите запустить, может быть запущено с теми же привилегиями, что и ваш пользователь, я рекомендую использовать пользовательский crontab, который вы можете редактировать, запустив EDITOR="gedit" crontab -e (который будет использовал gedit для редактирования файла crontab) или просто crontab -e (который будет использовать редактор по умолчанию) в терминале.

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

*/10 * * * * /usr/bin/somedirectory/somecommand

и сохраните файл.

Вы можете увидеть содержимое пользователя crontab с помощью crontab -l.

Самый гибкий способ - использовать систему crontab, которую вы можете редактировать, запустив sudo crontab -e в терминале. Это позволит вам запускать ваши команды как root (если вам нужен этот уровень привилегий) или любой другой пользователь в системе.

Затем, если вы хотите запускать что-то каждые 10 минут как root , например, вы добавляете строку, подобную этой

sudo crontab -e

и сохраните файл. (обратите внимание на добавление пользователя в строку)

Вы можете увидеть содержимое файла crontab системы с помощью */10 * * * * root /usr/bin/somedirectory/somecommand .

Подробнее: https://help.ubuntu.com/community/CronHowto

ответил Li Lo 16 PM000000120000002131 2010, 12:58:21
51

Если вы предпочитаете делать это с помощью графического интерфейса, вы можете перейти в Центр программного обеспечения и установить Запланированные задачи (или запустить sudo apt-get install gnome-schedule) , Он предоставит мощный графический интерфейс для добавления задач cron.

Обратите внимание: если вы используете этот метод, задачи по умолчанию будут выполняться как ваш собственный пользователь, а не как root. Обычно это хорошо.

ответил Javier Rivera 16 PM00000010000001731 2010, 13:21:17
23

Я рекомендую Планировщик заданий KDE (kde-config-cron)  Установить kde-config-cron . Доступ к нему из Системных настроек в модуле Scheduler там.

Он управляет как персональными, так и системными Crontabs, и легкость создания временных границ сильно меня удивила (см. скриншот ниже). Я думаю, что эта часть действительно недооценена.

введите описание изображения здесь

ответил gertvdijk 1 FebruaryEurope/MoscowbFri, 01 Feb 2013 03:59:51 +0400000000amFri, 01 Feb 2013 03:59:51 +040013 2013, 03:59:51
11

Планировщик заданий KDE не будет работать в обычном Ubuntu. Он работает только в системах KDE, таких как KUbuntu. Для системы без KDE вы предпочитаете использовать gnome-schedule

$ sudo apt-get install gnome-schedule

Приложение - это запланированные задачи в тире.

ответил Antonio 11 FebruaryEurope/MoscowbTue, 11 Feb 2014 18:35:58 +0400000000pmTue, 11 Feb 2014 18:35:58 +040014 2014, 18:35:58
8

Я хотел установить задание Cron для запуска скрипта bash, поэтому выполнение скрипта добавит задание cron.

Я понял, что когда вы используете:

crontab -e 

Затем он создает файл:

/var/spool/cron/crontabs/root

Где root - это имя пользователя, выполняющего команду crontab. Поэтому, основываясь на этом и в 14.04, по крайней мере, мы можем выполнить следующие команды bash для создания нового задания Cron:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Нам также необходимо установить правильное право собственности на файл:

chown root:root /var/spool/cron/crontabs/root

И установите правильные разрешения:

chmod 600 /var/spool/cron/crontabs/root

Если при запуске crontab -e в списке уже есть задания Cron, то вы можете добавить их в список, используя следующую команду:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
ответил Craig van Tonder 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 27 Sep 2016 23:25:14 +0300 2016, 23:25:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132