Перейти к содержанию

Как настроить расписание сохранений и объявлений Valheim

Как задать cron-задачу ServerManager, выбрать часовой пояс и отличить отправленную команду от завершённого сохранения или обслуживания мира.
Версия не проверена

ServerManager создаёт cron.yml, когда мир готов. Расписание работает без Discord, а исходное jobs: [] ничего не запускает. Здесь речь о стороннем моде ServerManager, а не о системном планировщике операционной системы. Инструкция относится к ServerManager 1.2.3 по документации автора.

Настройка простого сохранения

  1. Перед использованием расписаний ServerManager уберите NewCron/CronJob: автор не рекомендует запускать их вместе с этой системой.
  2. Откройте созданный cron.yml и сохраните его структуру YAML: используйте пробелы, а не табуляции.
  3. Выберите timezone: local, UTC либо установленный в системе идентификатор часового пояса.
  4. В списке jobs создайте задачу с command: save и schedule: '*/30 * * * *' — каждые 30 минут.
  5. Укажите interval, например 10: это проверка задач каждые 10 секунд, а не интервал между сохранениями.
  6. Проверьте серверный журнал после изменения: настройки перечитываются во время работы.

Обычная запись schedule содержит пять полей: минуты, часы, день месяца, месяц, день недели. Необязательное первое поле добавляет секунды. Оставляйте выражение в кавычках, чтобы YAML не трактовал его символы как свою структуру.

Одна команда или последовательность

Поле задачи · Назначение
Поле задачиНазначение
commandОдна серверная команда.
commandsУпорядоченный список команд; имеет приоритет, если указаны оба поля.
scheduleВремя запуска задачи по выбранному часовому поясу.
logНастройка журналирования успешной задачи.

Используйте плоские имена команд ServerManager без sm: либо команды установленной серверной консоли. Это выполнение с полномочиями сервера, а не shell-команды. Ошибка шага останавливает последовательность. Для выключения задачи удалите или закомментируйте её запись, не стирая файл прогресса.

Что считать выполнением

Запланированный save ждёт подтверждённого checkpoint. Но команды других модов могут продолжать фоновую работу после отправки. Сообщение Dispatched; completion not tracked означает именно отправку без отслеживания завершения, а не успешное окончание обслуживания.

Для планового выключения после save дождитесь в журнале WorldCharacterCheckpointCompleted с pending=0 для этого сохранения. Одно уведомление World saved не заменяет эту проверку и не доказывает получение сервером каждого последнего действия клиента.

Журналы и пропущенное время

  • Обычные задачи пропускают время, пока сервер был выключен: не рассчитывайте на выполнение всех пропущенных повторений.
  • logJobs по умолчанию false; поле log конкретной задачи может его переопределить.
  • Ошибки, отмены и пропуски остаются в аудите. Saves и смешанные последовательности сохраняют аудит независимо от подавления успешных повторяющихся broadcast center.
  • Для прогресса сохраняйте cron_last.yml и .cron-writer.lock; не удаляйте их ради повторного запуска задачи.
Информация
Обслуживание через Upgrade World требует отдельного совместимого мода и имеет особые условия завершения. sm:cronack <jobId> подтверждает разбор прерванного случая и пропускает его, но не повторяет и не отменяет изменения. Не используйте эту команду как автоматический способ «починить» непонятное состояние мира.

Гайд был полезен?