Я хочу запланировать выполнение задачи на регулярной основе и слышал, что Cron - это способ сделать это.
Как добавить задания Cron в Ubuntu?
Поместите сценарий оболочки в одну из следующих папок: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly или /etc/cron.weekly.
Если этого недостаточно для вас, вы можете добавить более конкретные задачи, например. два раза в месяц или каждые 5 минут. Перейдите к терминалу и введите:
crontab -e
Это откроет ваш персональный файл crontab (cron configuration file). Первая строка в этом файле объясняет все это! В каждой строке вы можете определить одну команду для запуска и ее расписание, и формат довольно прост, когда вы его повесите. Структура:
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 - воскресенье.
Вы можете прочитать больше здесь.
Поместите сценарий оболочки в одну из следующих папок: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly или /etc/cron.weekly.
Если этого недостаточно для вас, вы можете добавить более конкретные задачи, например. два раза в месяц или каждые 5 минут. Перейдите к терминалу и введите:
crontab -e
Это откроет ваш персональный файл crontab (cron configuration file). Первая строка в этом файле объясняет все это! В каждой строке вы можете определить одну команду для запуска и ее расписание, и формат довольно прост, когда вы его повесите. Структура:
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 - воскресенье.
Вы можете прочитать больше здесь.
Планировщик заданий KDE не будет работать в обычном Ubuntu. Он работает только в системах KDE, таких как KUbuntu. Для системы без KDE вы предпочтете использовать gnome-schedule
$ sudo apt-get install gnome-schedule
Приложение запланировано в Dash.
Я рекомендую планировщик заданий KDE (kde-config-cron). Доступ к ним из системных настроек в модуле планировщика заданий есть.
Он управляет как личными, так и системными Crontabs, а простота создания временных границ сильно меня удивила (см. Скриншот ниже). Я думаю, что эта часть действительно недооценена.
Я хотел установить задание 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
Если вы предпочитаете делать это с помощью графического интерфейса, вы можете перейти в Центр программного обеспечения и установить запланированные задачи (или запустить sudo apt-get install gnome-schedule). Это даст мощный графический интерфейс для добавления задач cron.
Обратите внимание: если вы используете этот метод, задачи по умолчанию будут выполняться как ваш собственный пользователь, а не как root. Обычно это хорошо.
Если задание, которое вы хотите запустить, может выполняться с теми же привилегиями, что и ваш пользователь, я рекомендую использовать пользовательский 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, например , вы добавите такую строку
*/10 * * * * root /usr/bin/somedirectory/somecommand
и сохраните файл. gedit
Вы можете увидеть содержимое файла crontab системы с помощью sudo crontab -l.
Подробнее о: https://help.ubuntu.com/community/CronHowto
Планировщик заданий KDE не будет работать в обычном Ubuntu. Он работает только в системах KDE, таких как KUbuntu. Для системы без KDE вы предпочтете использовать gnome-schedule
$ sudo apt-get install gnome-schedule
Приложение запланировано в Dash.
Я рекомендую планировщик заданий KDE (kde-config-cron). Доступ к ним из системных настроек в модуле планировщика заданий есть.
Он управляет как личными, так и системными Crontabs, а простота создания временных границ сильно меня удивила (см. Скриншот ниже). Я думаю, что эта часть действительно недооценена.
Я хотел установить задание 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
Если вы предпочитаете делать это с помощью графического интерфейса, вы можете перейти в Центр программного обеспечения и установить запланированные задачи (или запустить sudo apt-get install gnome-schedule). Это даст мощный графический интерфейс для добавления задач cron.
Обратите внимание: если вы используете этот метод, задачи по умолчанию будут выполняться как ваш собственный пользователь, а не как root. Обычно это хорошо.
Если задание, которое вы хотите запустить, может выполняться с теми же привилегиями, что и ваш пользователь, я рекомендую использовать пользовательский 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, например , вы добавите такую строку
*/10 * * * * root /usr/bin/somedirectory/somecommand
и сохраните файл. gedit
Вы можете увидеть содержимое файла crontab системы с помощью sudo crontab -l.
Подробнее о: https://help.ubuntu.com/community/CronHowto
Планировщик заданий KDE не будет работать в обычном Ubuntu. Он работает только в системах KDE, таких как KUbuntu. Для системы, отличной от KDE, вы предпочитаете использовать gnome-schedule
$ sudo apt-get install gnome-schedule
Приложение запланировано в Dash.