Alt linux crontab e

Настройка cron в linux

Для выполнения конкретных задач по расписанию, или периодически, через равный промежуток времени (регулярных действий) в линуксе (да и вообще в UNIX-подобных ОС), существует утилита cron. Это программа-демон (служба, по аналогии с Windows), которая постоянно размещена и работает в оперативной памяти компьютера, сканируя раз в минуту список установленных задач на наличие актуальной для выполнения в текущий момент времени. Сами инструкции по запуску задач находятся в специально предназначенных crontab-файлах, которые, в свою очередь, находятся в строго отведённых каталогах системы.

Историческая справка

Утилита была разработана ещё в начале 70-х годов прошлого столетия, когда Кен Томпсон и Деннис Ритчи создали ОС UNIX. Они работали над проектом по созданию многозадачной и многопользовательской системы Multics, в котором принимали участие компании AT&T и Bell Labs. В то время подобная система была настолько высокотехнологичным и прорывным продуктом, что позже Bell Labs отказалась от активного участия в проекте из-за крайне низкой востребованности подобного рода систем для широкого потребления.
Однако, используя наработки из проекта Multics, Томпсон и Ритчи на этой основе и на волне энтузиазма создали ОС UNIX. Такая мощная и прорывная платформа для полноценного раскрытия своего функционала нуждалась в обеспечении её функционалом в виде специализированного ПО и утилит, одной из которых и по сей день является cron. Разработчиком утилиты является Кен Томпсон.

Функционал и основные компоненты примеры cron

Описания регулярных действий, запускаемых утилитой– это так называемая crontab-таблица, которая имеет строго определенный формат. Она состоит из 6 колонок, разделённых табуляторами или пробелами, первые 5 из которых определяют время запуска действия. Последняя колонка интерпретируется как команда запуска, т. е. само действие.

0 5 * * 1 tar -zcf var/backups/home.tgz /home/

Приведённое описание действия означает запуск резервного копирования (путём архивирования и помещения созданного архива в var/backups/) всех каталога /home каждую неделю (по понедельникам) в 5 утра. Как видно, сначала задаётся колонка минут, затем часов, дней, месяцев и дней недели. Далее следует команда запуска, в данном случае для создания архива. В колонках, определяющих время могут использоваться числа, группы чисел, разделяемых запятыми, диапазоны чисел, разделяемых дефисом, а также символы «*» и «/». Каждому действию соответствует строка описания в crontab-файле. В приведённом примере цифра «1» означает порядковый номер дня недели — понедельник, соответственно «2» — вторник, «3» — среда и т. д., причём воскресенье это «0» или «7». Символ «*» означает любое значение с учётом валидности для соответствующего параметра. Для задания шага значений используется символ «/», например:

23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."

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

*/5 * * * * echo "Выполняется каждые 5 минут"
*/1 * * * * echo "Выполняется каждую минуту"
* */1 * * * echo "Выполняется каждый час"

каждое первое число февраль, июль и ноябрь в 2.30

10 00 01 02,07,11 * echo "каждое первое число февраль, июль и ноябрь в 0.10"
00,30 * * * * echo "каждые полчаса"
* * * * 6,7 echo "суббота и воскресенье"
00 10,15,20 * * * echo "будет выполняться каждый день в 10.00 и 15.00, 20.00"

один раз в день с 00 до 09 часов по буднем.

00 00-09 * * 1-5 echo "будет выполняться с 00 до 09 часов по буднем"

Для добавления скрипта в крон нужно прописать полный путь к скрипту. Пример

00 01 * * * /etc/scripts/script.sh

В данном примере скрипт /etc/scripts/script.sh будет запускаться каждый день в час ночи. Существуют два типа crontab-файлов: системные и пользовательские. В отличие от пользовательских, в системных после колонок задания времени используется еще колонка для указания пользователя, от которого выполняется действие:

17 * * * * root cd / && run-parts —report /etc/cron.hourly

Кроме того, местоположение системных и пользовательских crontab-файлов различается: файлы, используемые для действий, управляющих системой находятся в /etc/cron.d/, а файлы, создаваемые для отдельных пользователей хранятся по адресу /var/spool/cron/crontabs/.
Для корректной работы утилиты необходимо в файлах crontab указывать оболочку командного интерпретатора, а также добавлять домашний каталог пользователя в PATH:

SHELL=/bin/sh PATH=/bin:/usr/bin:/home/paul/bin

При необходимости можно также указать электронный адрес пользователя:

Читайте также:  Linux pxe server centos

Если в описании действия команда отправляет текстовое содержимое в стандартный вывод, то программа, при наличии электронного адреса, автоматически перехватит это сообщение и отправит по e-mail.

Использование cron

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

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

Будьте аккуратны с этой командой, она удаляет всю таблицу задач без предупреждения!

Важно заметить, что команда «crontab -e» также используется для создания пользовательского файла. Сначала файл будет создан в каталоге /tmp/ и лишь позже cron самостоятельно скопирует его в каталог пользовательских crontab-файлов, задав ему имя соответствующего пользователя, т. е. того, кем он был изначально создан.

Не стоит пугаться директории /tmp/ — файлы crontab в ней не потеряются.

Некоторые особенности cron

Утилита обладает рядом особенностей, которые необходимо учитывать при работе с ней и составлении описаний регулярных действий:

  1. Минимальное время составляет одну минуту.
  2. Файл crontab должен всегда заканчиваться пустой строкой
  3. Условия времени запуска «день недели» и «день месяца» обрабатываются через логическую операцию «ИЛИ», все остальные условия — через логическое «И».
  4. Выводы запускаемых команд выводятся в виде сообщений пользователю, но если в файле crontab была определена директива MAILTO – сообщение будет отправлено по указанному в этой директиве e-mail.

Узнать, запущена ли в данный момент утилита крон, позволяет команда:

Для запуска и остановки можно также использовать:

service cron start service cron stop
systemctl start cron systemctl stop cron

Логи Cron

Логи по работе запуска программы в каждой системе хранятся по разному. Например в Centos это /var/log/crond, в Ubuntu /var/log/syslog. Так же, если не указанно MAILTO, вывод команд работы скриптов которые запускает крон, можно посмотреть в каталоге /var/spool/mail. В файле пользователя из под которого запускается программа.

Читайте также:  Linux echo переменные среды

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

В процессе работы с операционной системой (ОС) пользователю нередко приходится подключать различные устройства хранения.

У начинающих пользователей Linux часто возникает вопрос, каким же образом установить какое-либо программное обеспечение

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

Для системных администраторов данная тема является чуть ли не первоочередной по важности. Ведь обычно

Нередко начинающие пользователи Linux сталкиваются с некоторыми особенностями этих систем. Чаще всего это проявляется

Источник

Alt linux crontab e

Источник: docs.altlinux.org

Источник: docs.altlinux.org ALT Linux – один из самых известных и популярных в России дистрибутивов Linux, разработанный с учетом русскоязычной аудитории. Основные преимущества ALT Linux включают в себя высокую стабильность работы, доступность и активное сообщество пользователей. Однако наиболее важной функцией ALT Linux, как и любого другого дистрибутива Linux, является возможность автоматизации. Именно с ней мы сегодня и столкнемся, исследуя автоматизацию задач с использованием таких инструментов, как Cron и Systemd.

Установка ALT Linux представляет собой достаточно простой процесс, который включает в себя загрузку дистрибутива с официального сайта, запись его на флешку или диск и установку на целевой компьютер. После успешной установки мы можем приступить к автоматизации.

Автоматизация с использованием Cron

Первым инструментом для автоматизации задач, который мы рассмотрим, является Cron. Cron – это классический планировщик задач для Unix-подобных операционных систем, который позволяет автоматизировать выполнение задач по расписанию.

Чтобы использовать Cron для автоматизации, нужно создать задачу. Задача в контексте Cron – это команда или скрипт, который нужно выполнить, и время, когда его нужно выполнить.

Пример задачи для Cron выглядит следующим образом:

Читайте также:  Команда curl linux установка

Это задание будет выполняться каждую минуту. Звездочки обозначают минуты (0-59), часы (0-23), дни месяца (1-31), месяцы (1-12) и дни недели (0-7, где 0 и 7 — это воскресенье), соответственно. В нашем случае, звездочки в каждом поле означают «любое время».

Создать новую задачу для Cron можно, отредактировав crontab, с помощью команды crontab -e. Посмотреть текущий список задач можно командой crontab -l.

Автоматизация с использованием Systemd

Systemd – это современная система инициализации и менеджер служб для Linux, предоставляющая намного больше возможностей для автоматизации, чем Cron.

В Systemd для автоматизации используются единицы, называемые службами (services) и таймерами (timers). Служба описывает, что нужно выполнить, а таймер — когда это нужно сделать.

Создание новой службы в Systemd включает в себя создание файла с расширением .service в каталоге /etc/systemd/system/. В этом файле описывается задача, которую нужно выполнить. Например:

[Unit] Description=My Script [Service] ExecStart=/path/to/script.sh 

Таймер создается аналогичным образом, но в файле с расширением .timer, и он связывается со службой:

[Unit] Description=Run my script every hour [Timer] OnCalendar=hourly Unit=my_script.service [Install] WantedBy=timers.target 

Включить новый таймер можно командой systemctl enable —now my_script.timer. Посмотреть список активных таймеров можно командой systemctl list-timers.

Таким образом, автоматизация задач в ALT Linux с использованием Cron и Systemd – это мощный инструмент для управления повторяющимися и планируемыми задачами, который может существенно упростить и улучшить процесс управления системой.

Источник

Оцените статью
Adblock
detector