The Scheduler

также доступно на: English, Deutsch

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

Более того, Вы можете выбрать между разными ветками стабильности для вашего сервера.

Как начать

Начните чат с @scheduler:etke.cc и отправьте help для получения инструкций

ПРИМЕЧАНИЕ: этот бот работает только для клиентов etke.cc, потому он не будет работать для других пользователей

Режимы

The Scheduler поддерживает 4 режима работы и Вы можете использовать их все одновременно. Лучше всего иметь хотя бы recurring maintenance, чтобы быть уверенным что ваш сервер обновлен и защищен.

Run

Режим run моментально запустит команду, к примеру:

  • @клиент: run ping
  • @scheduler: Command execution has been started. Please, keep in mind that it may take some time. You will receive a message when it’s done.
  • @scheduler: command execution of run ping succeeded
ssh.INFO [etke.cc] disk usage: 48%

Ниже есть полный список доступных комманд.

Schedule

Режим schedule запланирует запуск команды на конкретную дату и время (UTC), к примеру, если Вы хотите запустить обслуживание сервера 1 июля в 5 часов вечера по UTC:

  • @клиент: schedule maintenance 2022-07-01 17:00
  • @scheduler: Command execution has been scheduled.

и первого июля примерно в 5:30 вечера по UTC (обслуживание сервера занимает некоторое время) Вы получите следующее сообщение:

  • @scheduler: command execution of run maintenance succeeded

Да, здесь нет ошибки - режим schedule просто планирует запуск режима run на конкретную дату и время в будущем

Recurring

Режим recurring устанавливает повторяющийся режим schedule на конкретный день недели и время. По умолчанию у Вас будет добавлена команда maintenance на случайный день недели время (услуга обслуживания сервера от etke.cc), потому вместо ручных запусков через run или schedule каждый раз, когда вам нужно запустить какую-то команду, можно воспользоваться режимом recurring и указать желаемый день недели и время. К примеру, если Вы хотите проводить обслуживание сервера каждую пятницу в 3 часа дня по UTC:

  • @клиент: recurring maintenance Friday 15:00
  • @scheduler: Recurring schedule has been set.

и каждую пятницу примерно в 3:30 дня по UTC (обслуживание сервера занимает некоторе время) Вы получите следующее сообщение:

  • @scheduler: command execution of run maintenance succeeded

ПРИМЕЧАНИЕ: Вы можете установить только одно повторяющееся расписание на команду, потоэтому несколько повторяющихся конфигураций одной и той же команды (например: recurring maintenance Friday 15:00 и recurring maintenance Monday 17:00) будут заменять друг друга и в итоге останется лишь последняя конфигурация – в поедельник 17:00 по UTC.

List

Режим list просто отображает списки запусков из режимов run (выполненные команды и результаты выполнения), schedule и recurring, полезно если Вы хотите что-то проверить.

Примеры:

  • @клиент: list runs
  • @scheduler:
* 2022-06-12 16:36: run ping
* 2022-05-30 22:01: run maintenance
* 2022-06-19 16:03: run restart slack failed: exit status 1
  • @клиент: list schedules
  • @scheduler:
* 2022-06-27 16:00: run ping (recurring)
* 2022-07-01 17:00: run ping

ПРИМЕЧАНИЕ: обратите внимание на суффикс (recurring) - он указывает на то, что эта задача была запланирована автоматически, потому что у Вас установлен (еженедельный) recurring с ней. Указана только первая (ближайшая) дата в будущем.

  • @клиент: list recurring
  • @scheduler:
* Monday 16:00: run ping

Команды

ping

Эта команда проверит доступность сервера и заполненность диска, полезна когда Вы применяете новые правила файервола или просто хотите убедиться, что на вашем сервере достаточно свободного места для загрузки 5гб фото котиков.

Пример:

  • @клиент: run ping
  • @scheduler: Command execution has been started. Please, keep in mind that it may take some time. You will receive a message when it’s done.
  • @scheduler: command execution of run ping succeeded
ssh.INFO [etke.cc] disk usage: 48%

maintenance

Эта команда запускает процесс обслуживания сервера, который занимает 15-30 минут. Подробности можно узнать на странице Услуги.

Пример:

  • @клиент: run maintenance
  • @scheduler: Command execution has been started. Please, keep in mind that it may take some time. You will receive a message when it’s done.
  • @scheduler: command execution of run maintenance succeeded

restart

Эта команда перезапускает сервисы systemd, полезно когда Вы видите что интеграция с другой платформой зависла и не отвечает. Внутри есть специальный маппинг между “человеко-читаемыми” названиями сервисов и реальными названиями, поэтому если Вы хотите перезапустить интеграцию с facebook, можно просто написать run restart facebook вместо run restart matrix-mautrix-facebook (к слову, второй вариант тоже сработает)

Пример:

  • @клиент: run restart slack
  • @scheduler: Command execution has been started. Please, keep in mind that it may take some time. You will receive a message when it’s done.
  • @scheduler: command execution of run restart slack succeeded

ПРИМЕЧАНИЕ: для режимов schedule и recurring, имя сервиса для команды restart должно быть написано после даты/дня недели и времени, например: schedule restart 2022-07-01 17:00 slack или recurring restart Monday 17:00 slack

Ветки стабильности

The Scheduler был разработан с учетом того, что некоторые клиенты предпочитают стабильные, но медленные/поздние обновления, а другие предпочитают нестабильные, но гораздо более быстрые/ранние обновления, чтобы получать самые свежие версии как можно быстрее.

Вы можете выбрать ветку стабильности, которая соответствует вашим потребностям. Если Вы хотите сменить ветку стабильности для вашего сервера, просто сообщите нам об этом.

stable (по умолчанию)

Название говорит само за себя - это наша более стабильная (более протестированная) ветка, в сравнении с fresh. Обычно она отстает на несколько дней (до недели) от ветки fresh.

В этой ветке мы собираем обновления компонентов в течении недели и сначала тестируем их на серверах разработчиков, на серверах open-source сообщества и на серверах клиентов, которые выбрали ветку стабильности fresh. Только после этого мы публикуем протестированные обновления в ветку stable, чтобы Вы могли установить их во время обслуживания сервера и были уверены, что они ничего не сломают.

Ветка stable используется по умолчанию на всех клиентских серверах, за исключением клиентов, которые явно попросили перейти на ветку fresh.

fresh (тестирование)

Эта ветка получает обновления настолько быстро, насколько это вообще возможно, поэтому Вы получаете самые свежие обновления, используемые разработчиками и open-source сообществом. Такие обновления иногда могут содержать калечащие изменения, но мы стараемся подготовить обходные пути и миграции перед публикацией. Используте эту (fresh) ветку стабильности, если хотите получать обновления как можно раньше (до 1 недели раньше, чем stable) за счет более выского шанса поломок.

У нас есть специальная комната #fresh:etke.cc где публикуются обновления почти в реальном в ремени.