Factorio Руководство

Автоматизация headless-сервера Factorio через RCON: скрипты резервного копирования, оповещения в Discord и управление игроками

Автоматизация headless-сервера Factorio через RCON: привязка к 127.0.0.1, выполнение тихих сохранений /silent-command, отправка вебхуков в Discord и запуск по расписанию cron.

Автоматизация headless-сервера Factorio через RCON: скрипты резервного копирования, оповещения в Discord и управление игроками

Управление выделенным сервером Factorio в режиме headless требует регулярного выполнения административных задач: сохранения прогресса перед перезагрузкой, информирования игроков о плановом обслуживании, создания резервных копий и мониторинга онлайна. Прямой ввод команд в терминал screen или tmux не поддаётся надёжной автоматизации, поэтому Factorio поддерживает стандартный протокол Source RCON для удалённого управления через сетевой сокет.

В этой статье мы рассмотрим безопасную настройку RCON в Factorio, запуск команд сохранения мира без остановки сервера и создание bash-скрипта с интеграцией Discord-вебхуков.

Настройка RCON-порта и привязки к локальному интерфейсу#

Factorio включает поддержку RCON через параметры командной строки при запуске бинарного файла factorio. По умолчанию порт RCON не шифрует сетевой трафик, поэтому критически важно привязать его исключительно к локальному интерфейсу 127.0.0.1.

Проверьте или добавьте флаги RCON в конфигурационный файл службы systemd (/etc/systemd/system/factorio.service):

bash
cat << 'EOF' > /tmp/factorio_rcon_flags.conf
--rcon-port 27015 \
--rcon-password "StrongSecretKey2026" \
--rcon-bind 127.0.0.1
EOF
cat /tmp/factorio_rcon_flags.conf

Параметр --rcon-bind 127.0.0.1 гарантирует, что порт 27015 останется недоступен для внешних сканеров интернета и будет принимать соединения только от локальных скриптов сервера.

Выполнение команд и создание бэкапов через CLI#

Для отправки команд RCON из консоли Linux используется легковесная утилита mcrcon или rcon-cli. Установите mcrcon и проверьте связь с сервером:

bash
sudo apt-get update && sudo apt-get install -y mcrcon
mcrcon -H 127.0.0.1 -P 27015 -p "StrongSecretKey2026" "/players online"

Команда возвращает текущий список игроков. Для создания резервной точки сохранения без лагов и остановки сервера используется внутренняя команда:

bash
mcrcon -H 127.0.0.1 -P 27015 -p "StrongSecretKey2026" "/silent-command game.server_save()"

Команда /silent-command выполняет метод Lua-движка игры без вывода служебных сообщений в общий чат выживших.

Скрипт автоматических бэкапов с оповещениями в Discord#

Объединим принудительное сохранение через RCON, сжатие файла мира и отправку JSON-уведомления в Discord-канал администраторов в единый скрипт автоматизации:

bash
cat << 'EOF' > /opt/factorio/rcon_backup.sh
#!/usr/bin/env bash
set -euo pipefail

RCON_HOST="127.0.0.1"
RCON_PORT="27015"
RCON_PASS="StrongSecretKey2026"
DISCORD_WEBHOOK="https://discord.com/api/webhooks/your_webhook_id/your_token"
SAVE_NAME="world_$(date +%Y%m%d_%H%M%S)"

# Принудительное сохранение мира через RCON
mcrcon -H "$RCON_HOST" -P "$RCON_PORT" -p "$RCON_PASS" "/server-save"
sleep 2

# Оповещение в Discord
PAYLOAD=$(cat <<JSON
{
  "username": "Factorio Server Bot",
  "content": "Сохранение мира успешно завершено: \`${SAVE_NAME}\`."
}
JSON
)

curl -s -H "Content-Type: application/json" -X POST -d "$PAYLOAD" "$DISCORD_WEBHOOK"
EOF
chmod +x /opt/factorio/rcon_backup.sh

Скрипт подаёт команду /server-save, ожидает завершения записи дискового кэша и отправляет компактное событие в мониторинг команды.

Настройка периодического запуска через Cron#

Добавьте регулярное расписание запуска скрипта резервного копирования в системный планировщик cron:

bash
(crontab -l 2>/dev/null; echo "0 */4 * * * /opt/factorio/rcon_backup.sh >> /var/log/factorio_backup.log 2>&1") | crontab -
crontab -l | grep rcon_backup

Каждые 4 часа сервер сохраняет карту и отправляет статусное подтверждение, сводя к минимуму риск потери фабричного прогресса при сбоях операционной системы.

Если вы хотите развернуть автоматизированный сервер Factorio Space Age с защищённым веб-RCON, графиками нагрузки UPS/FPS и автоматическими бэкапами по расписанию, профессиональный хостинг серверов Factorio предоставляет готовую инфраструктуру с мгновенной активацией.

Источники#