CentOS 7 и 8 настройка сервера после установки

Visitors have accessed this post 1437 times.

Настройка Cron (Linux)

Чтобы настроить время и интервал запуска скрипта, используется команда crontab:

crontab -e

Флаг -e показывает, что необходимо отредактировать расписание запуска для текущего пользователя. После запуска команды вам нужно будет прописать правила в открывшемся временном файле. Обратите внимание на то, что правила будут запускаться только под тем пользователем, под которым вы их добавляли (если вам нужен запуск cron от пользователя root, то и правила нужно устанавливать от него).

Как запустить по расписанию команду?

Для редактирования расписания планировщика cron выполните:

crontab -e

Формат строк расписания имеет вид:

минута час день месяц день_недели команда

Минута — время в минутах от 0 до 59

Час — от 0 до 23 День — день месяца от 1 до 31 Месяц — от 1 до 12 либо буквенные обозначения jan — dec День недели — от 0 до 6 (0 — воскресенье) или sat — sun Команда — строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.

Значения минут, часов, дней можно указывать следующим образом: Значение — число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений

Несколько значений — допускается указывать несколько значений через запятую, например 2,14,22 Диапазон значений — указывается через дефис, например 2-10 Шаг значений — указывается через дробь, в знаменатель которой ставится шаг, например */3 — каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.

Читайте также:  Windows Server TP2. Знакомимся с новой серверной ОС от Microsoft

Рассмотрим следующий пример записи:

0 8-19/2 * * 1 /home/tvs/test01

Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт test в домашнем каталоге пользователя tvs.

Сразу хотим предостеречь вас от распространенной ошибки, при указании периодического исполнения все даты должны быть указаны явно, звездочка обозначает полный диапазон значений, а не их отсутствие. Например если вам требуется исполнять некий скрипт каждый час с 10 до 15 неправильно будет:

* 10-15 * * * /home/tvs/test1 Данная строка приведет к запуску скрипта каждую минуту в диапазоне с 10 до 15 часов. Правильно будет:

0 10-15 * * * /home/tvs/test1

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

Кроме даты можно использовать ряд специальных строк:

@reboot — выполнять команду при перезагрузке @yearly или @annually — выполнять 1 января, аналогично записи: "0 0 1 1 * " @monthly — выполнять 1 числа каждого месяца, аналогично "0 0 1 * * " @weekly — выполнять каждое воскресенье, равносильно "0 0 * * 0" @daily или @midnight — ежедневно в полночь,"0 0 * * * " @hourly — раз в час, "0 * * * * "

Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:

@midnight /home/tvs/test1

Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.

Для системных и административных задач предусмотрен файл /etc/crontab. Синтаксис записей в нем отличается наличием дополнительного значения — пользователя, от чьего имени будет запущено задание:

минута час день месяц день_недели пользователь команда

Пример такой записи:

0 19 * * 1-5 root /etc/backup

Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт/etc/backup от имени пользователя root.

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

Читайте также:  Статьи о Office 365. Грамотная настройка и решение проблем

Отключить SELinux

Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

Чтобы изменения вступили в силу, можно перезагрузиться:

# reboot

А если хотите без перезагрузки применить отключение SELinux, то выполните команду:

# setenforce 0

Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы — комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.

[sc3]

Примеры

1. Ежедневно в 2 часа ночи.

Это будет полезно для ежедневного резервного копирования.

0 2 * * * /bin/sh 2. Дважды в день

Команда ниже будет выполняться в 5 утра и 5 вечера ежедневно.

0 5,17 * * * /scripts/3. Каждую минуту

* * * * * /scripts/4. Каждое воскресенье в 17:00

Пригодится для планирования еженедельных задач.

0 17 * * sun /scripts/5. Каждые 10 минут

Если вы хотите запустить скрипт с интервалом в 10 минут, вы можете настроить его, как показано ниже. Может быть полезно для мониторинга.

*/10 * * * * /scripts/6. Определенные месяцы

Иногда может понадобиться запланировать задачи только на некоторые месяцы. Ниже приведен пример скрипта, который будет запущен в январе, мае и августе.

Читайте также:  PXE — грузим всё! Осваиваем мультизагрузку по локальной сети

* * * jan,may,aug * /script/7. Определенные дни

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

0 17 * * sun,fri /script/8. Первое воскресенье каждого месяца.

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

0 2 * * sun [ $(date +%d) -le 07 ] && /script/9. Каждые четыре часа.

Если вы хотите запустить скрипт с интервалом в 4 часа:

0 */4 * * * /scripts/10. Дважды в каждое воскресенье и понедельник.

Чтобы запланировать выполнение задачи дважды только в воскресенье и понедельник:

0 4,17 * * sun,mon /scripts/11. Несколько задач

Можно запланировать несколько задач в одной записи с помощью точки с запятой:

* * * * * /scripts/; /scripts/12. Ежегодно (@yearly)

@yearly равно «0 0 1 1 *». Задание будет выполняться в первую минуту каждого года. Можно отправить новогодние поздравления