# Расписания

> Автоматизация сканирования и усиления по расписанию в SecureBaseline Cloud - настройка cron-задач, уведомлений и периодических проверок соответствия CIS

Source: https://opennix.org/docs/haas/schedules/


## Обзор

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

## Навигация

**Меню**: Инфраструктура > Расписания

## Макет страницы

### Панель инструментов

| Кнопка | Описание |
|--------|----------|
| Создать расписание | Создать новое расписание |

### Таблица расписаний

| Колонка | Описание |
|---------|----------|
| Название | Имя расписания |
| Расписание | Cron-выражение с человекочитаемым описанием и иконкой часов |
| Тип задачи | Сканирование соответствия (синий тег) или Усиление (оранжевый тег) |
| Хост | Имя целевого сервера |
| Последний запуск | Время последнего выполнения |
| Следующий запуск | Время следующего запланированного выполнения |
| Включено | Переключатель для включения/отключения расписания |
| Действия | Кнопки Редактировать и Удалить |

### Пагинация

- Размер страницы по умолчанию: 50 записей
- Доступные размеры: 20, 50, 100, 200 записей на странице
- Показывает индикатор диапазона (например, "1-50 / 100")

## Создание расписания

1. Нажмите кнопку **Создать расписание**
2. Заполните форму расписания:

### Поля формы расписания

| Поле | Описание | Обязательное |
|------|----------|--------------|
| Название | Описательное имя расписания | Да |
| Описание | Опциональные заметки о расписании | Нет |
| Cron-выражение | Когда запускать (выберите шаблон или введите произвольное) | Да |
| Тип задачи | Сканирование соответствия или Усиление | Да |
| Хост | Целевой сервер (показывает имя хоста, IP и ОС) | Да |
| SCAP-профиль | Профиль для сканирования соответствия (показывается только для типа compliance_scan) | Да (для сканирований) |
| Включено | Переключатель для включения/отключения при создании | Нет (по умолчанию: вкл) |

3. Форма показывает человекочитаемый предпросмотр cron-расписания
4. Нажмите **OK** для создания

### Выбор SCAP-профиля

При создании расписания сканирования соответствия:
- Сначала выберите хост
- Выпадающий список профиля фильтруется для показа только профилей, совместимых с ОС хоста
- Если у хоста не определена ОС, показываются все профили

## Редактирование расписания

1. Нажмите кнопку **Редактировать** (иконка карандаша) на строке расписания
2. Измените поля в модальном окне редактирования
3. Нажмите **OK** для сохранения изменений

Все поля редактируемы, включая статус включения.

## Включение/Отключение расписаний

Два способа переключения расписаний:

1. **Переключатель**: Нажмите переключатель в колонке Включено
2. **Модальное окно редактирования**: Измените поле Включено в форме редактирования

Когда расписание:
- **Включено (On)**: Расписание будет выполняться в указанное время
- **Отключено (Off)**: Расписание приостановлено, не будет выполняться

## Удаление расписания

1. Нажмите кнопку **Удалить** (иконка корзины) на строке расписания
2. Подтвердите удаление во всплывающем диалоге
3. Расписание удаляется из системы

## Cron-выражения

Cron-выражения определяют когда выполняются расписания. Формат:

```
минута час день месяц день_недели
  0-59  0-23 1-31  1-12   0-6
```

### Готовые шаблоны

Выберите из распространенных шаблонов в выпадающем списке:

| Шаблон | Cron | Описание |
|--------|------|----------|
| Каждый час | `0 * * * *` | В минуту 0 каждого часа |
| Ежедневно в полночь | `0 0 * * *` | Каждый день в 00:00 |
| Ежедневно в 2:00 | `0 2 * * *` | Каждый день в 02:00 |
| Каждые 6 часов | `0 */6 * * *` | В 00:00, 06:00, 12:00, 18:00 |
| Еженедельно (воскресенье) | `0 0 * * 0` | Каждое воскресенье в полночь |
| Ежемесячно (1-е) | `0 0 1 * *` | Первый день месяца в полночь |

### Произвольные выражения

Для ввода произвольного cron-выражения:
1. Откройте выпадающий список cron-выражения
2. Введите произвольное выражение в поле ввода внизу
3. Нажмите Enter для применения

Примеры:

| Выражение | Значение |
|-----------|----------|
| `30 4 * * *` | Ежедневно в 4:30 |
| `0 9-17 * * 1-5` | Ежечасно 9-17, понедельник-пятница |
| `0 0 * * 0,6` | Полночь по выходным |
| `0 */2 * * *` | Каждые 2 часа |
| `0 0 15 * *` | 15-го числа каждого месяца |

### Значения полей Cron

| Поле | Значения |
|------|----------|
| Минута | 0-59 |
| Час | 0-23 |
| День месяца | 1-31 |
| Месяц | 1-12 |
| День недели | 0-6 (0=воскресенье) |

### Специальные символы

| Символ | Значение | Пример |
|--------|----------|--------|
| `*` | Любое значение | `* * * * *` = каждую минуту |
| `,` | Список | `0,30 * * * *` = :00 и :30 |
| `-` | Диапазон | `0 9-17 * * *` = с 9 до 17 |
| `/` | Шаг | `*/15 * * * *` = каждые 15 мин |

### Человекочитаемый предпросмотр

При вводе корректного cron-выражения под полем появляется информационное предупреждение с человекочитаемым описанием расписания. Это помогает проверить правильность расписания перед созданием.

### Валидация Cron

Форма валидирует cron-выражения:
- Должно содержать ровно 5 частей, разделенных пробелами
- Каждая часть должна быть в допустимых диапазонах
- Некорректные выражения показывают сообщения об ошибках

## Типы расписаний

### Расписание сканирования соответствия

Запускает автоматизированные сканирования соответствия CIS:

1. Выберите **Сканирование соответствия** как тип задачи
2. Выберите целевой хост
3. Выберите SCAP-профиль (фильтруется по ОС хоста)
4. Установите cron-расписание

Варианты использования:
- Еженедельные оценки безопасности
- Ежедневный мониторинг соответствия
- Предаудитная проверка

### Расписание усиления

Запускает автоматизированные задания усиления:

1. Выберите **Усиление** как тип задачи
2. Выберите целевой хост
3. Установите cron-расписание

**Предупреждение**: Автоматизированное усиление следует использовать осторожно. Убедитесь, что серверы протестированы перед включением автоматизированного усиления в продакшене.

## Выполнение расписания

### Как это работает

1. Планировщик проверяет назначенные расписания каждую минуту
2. Когда расписание наступает, создается задание
3. Задание добавляется в очередь
4. Worker обрабатывает задание
5. Записывается время последнего запуска
6. Вычисляется время следующего запуска

### Просмотр истории выполнения

- **Сканирования соответствия**: Перейдите на страницу Соответствие, фильтруйте по хосту
- **Задания усиления**: Перейдите на страницу Задания, просмотрите по хосту
- **Последний/Следующий запуск**: Проверьте колонки таблицы расписаний

### Временные метки

- **Последний запуск**: Показывает когда расписание последний раз выполнялось
- **Следующий запуск**: Показывает когда расписание будет выполнено следующий раз
- Время отображается в локальном часовом поясе вашего браузера

## Лучшие практики

### Сканирование соответствия

- Еженедельные сканирования для большинства сред
- Ежедневные сканирования для высокозащищенных сред
- Планируйте на периоды низкой нагрузки

### Усиление

- Избегайте автоматизированного усиления в продакшене без тестирования
- Используйте сначала для сред разработки/тестирования
- Всегда имейте настроенный мониторинг
- Рассмотрите ручное усиление для продакшена

### Именование расписаний

Используйте описательные имена:
- `Еженедельное соответствие - Веб-серверы`
- `Ежедневное сканирование безопасности - Продакшен`
- `Ежемесячное усиление - Среда разработки`

### Выбор времени

- Избегайте рабочих часов для ресурсоемких сканирований
- Учитывайте часовые пояса серверов
- Распределяйте расписания для избежания перегрузки
- Используйте непиковые часы (2:00, 3:00)

## Устранение неполадок

### Расписание не выполняется

1. Проверьте, что расписание включено (переключатель включен)
2. Проверьте корректность cron-выражения
3. Проверьте работу сервиса планировщика
4. Проверьте, что worker обрабатывает задания
5. Просмотрите логи планировщика на ошибки

### Задания в очереди, но не выполняются

1. Проверьте статус сервиса worker
2. Проверьте подключение к Redis
3. Просмотрите логи worker
4. Проверьте страницу Задания на зависшие задания

### Неправильное время выполнения

1. Проверьте cron-выражение в расписании
2. Проверьте часовой пояс сервера
3. Примечание: Все время в часовом поясе сервера
4. Используйте человекочитаемый предпросмотр для проверки

### Расписание показывает старое время следующего запуска

1. Проверьте, включено ли расписание
2. Обновите страницу
3. Проверьте работу сервиса планировщика
4. Время следующего запуска обновляется после каждого выполнения

### Слишком много заданий в очереди

1. Уменьшите частоту расписания
2. Распределите расписания по часам
3. Рассмотрите отключение низкоприоритетных расписаний
4. Проверьте, завершаются ли предыдущие задания

## Связанные страницы

- [Сканирование соответствия](/docs/haas/compliance-scanning/) - Просмотр результатов сканирования
- [Задания](/docs/haas/jobs/) - Просмотр истории заданий усиления
- [Хосты](/docs/haas/hosts/) - Управление целевыми серверами

