Programa un reinicio de servidor ARK: Survival Evolved

ARK es el juego donde los reinicios programados importan más y donde hacerlo descuidadamente cuesta más. El uso de memoria aumenta gradualmente con el número de dinosaurios y estructuras, y un servidor dejado durante una semana estará visiblemente peor que uno reiniciado diariamente.

¿Cuándo debería reiniciarse?

Usa {{minutes}} donde debería ir el número de la cuenta atrás.

Lo que ocurre, en orden

  1. El trabajo comienzaAdvertirServerChat El servidor se reiniciará en 15 minutos
  2. 10 minutos antesAdvertirServerChat El servidor se reiniciará en 10 minutos
  3. 5 minutos antesAdvertirServerChat El servidor se reiniciará en 5 minutos
  4. 1 minutos antesAdvertirServerChat El servidor se reiniciará en 1 minutos
  5. Hora de reinicioGuardarSaveWorld
  6. Hora de reinicioDetenerDoExit

Always send SaveWorld and wait for it to return before DoExit. ARK does not reliably save on shutdown, and this is the single most common cause of a rolled-back tribe base.

La línea crontab

Desplazado 15 minutos antes de la hora elegida, para que el reinicio caiga en ella en lugar de 15 minutos después.

45 3 * * *  /opt/restart-ark_se.sh

El script que ejecuta

Guárdalo como /opt/restart-ark_se.sh y hazlo ejecutable. Supone que rcon-cli está en la ruta y lee la contraseña del entorno en lugar de incrustarla.

#!/usr/bin/env bash
set -euo pipefail

# Scheduled restart for ARK: Survival Evolved.
# Generated by spawnly.net/tools/restart-scheduler

# The password stays out of this file. Put it in the environment, or in a
# file only root can read, and export it before this script runs.
RCON_HOST="${RCON_HOST:-127.0.0.1}"
RCON_PORT="${RCON_PORT:-27020}"
: "${RCON_PASSWORD:?set RCON_PASSWORD before running}"

send() {
  rcon-cli --host "$RCON_HOST" --port "$RCON_PORT" --password "$RCON_PASSWORD" "$1"
}

# 15 minute warning
send 'ServerChat El servidor se reiniciará en 15 minutos'

sleep 300
# 10 minute warning
send 'ServerChat El servidor se reiniciará en 10 minutos'

sleep 300
# 5 minute warning
send 'ServerChat El servidor se reiniciará en 5 minutos'

sleep 240
# 1 minute warning
send 'ServerChat El servidor se reiniciará en 1 minutos'

sleep 60
# Flush the world to disk
send 'SaveWorld'

sleep 10
# Shut down cleanly
send 'DoExit'

# Give the process time to finish writing before anything restarts it.
sleep 30
systemctl start ark_se 2>/dev/null || true

El cron utiliza la zona horaria del servidor, no la tuya. Compruébala con timedatectl antes de asumir que las 04:00 son las 04:00 donde estás —un contenedor en UTC y un administrador en Europa tienen dos horas de diferencia en verano y una en invierno.

La parte específica de ARK: Survival Evolved

Siempre envía SaveWorld y espera a que vuelva antes de DoExit. ARK no guarda de forma fiable al apagarse — esto es la causa más común de que una tribu pierda un día de progreso al iniciar sesión, y es completamente evitable. Si tienes un cluster, cada mapa es un servidor separado con su propio guardado, y todos necesitan la secuencia completa.

Soporte & Ayuda