Plane den Restart deines ARK: Survival Evolved Servers
ARK ist das Spiel, bei dem geplante Neustarts am meisten zählen und wo sie fahrlässig durchgeführt werden, am meisten kosten. Der Speicherverbrauch steigt mit der Dino-Zahl und der Struktur-Zahl und ein Server, der eine Woche lang laufen gelassen wird, ist visibly schlechter als einer, der täglich neu gestartet wird.
Wann sollte es neu starten?
Verwende {{minutes}}, wo die Countdown-Nummer hingehen sollte.
Was passiert, der Reihe nach
- Job startetWarnen
ServerChat Server restartet in 15 Minuten - 10 Minuten vorherWarnen
ServerChat Server restartet in 10 Minuten - 5 Minuten vorherWarnen
ServerChat Server restartet in 5 Minuten - 1 Minuten vorherWarnen
ServerChat Server restartet in 1 Minuten - NeustartzeitSpeichern
SaveWorld - NeustartzeitStopp
DoExit
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.
Die crontab-Zeile
Verschoben um 15 Minuten früher als deine gewählte Zeit, damit der Neustart selbst auf ihr landet, anstatt 15 Minuten danach.
45 3 * * * /opt/restart-ark_se.sh
Das Skript, das es ausführt
Speichere als /opt/restart-ark_se.sh und mache es ausführbar. Es geht davon aus, dass rcon-cli auf dem Pfad ist und liest das Passwort aus der Umgebung anstatt es einzubetten.
#!/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 Server restartet in 15 Minuten'
sleep 300
# 10 minute warning
send 'ServerChat Server restartet in 10 Minuten'
sleep 300
# 5 minute warning
send 'ServerChat Server restartet in 5 Minuten'
sleep 240
# 1 minute warning
send 'ServerChat Server restartet in 1 Minuten'
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 || trueDer Cron verwendet die Zeitzone des Servers, nicht deine. Überprüfe sie mit timedatectl, bevor du davon ausgehst, dass 04:00 Uhr 04:00 Uhr bedeutet – ein Container in UTC und ein Admin in Europa sind im Sommer zwei Stunden und im Winter eine Stunde auseinander.
Der Teil, der spezifisch für ARK: Survival Evolved ist
Schicke immer SaveWorld und warte, bis es zurückkehrt, bevor du DoExit schickst. ARK speichert nicht zuverlässig beim Shutdown – dies ist der mit Abstand häufigste Grund dafür, dass ein Stamm einen Tag voller Fortschritte verloren hat, und es ist vollständig vermeidbar. Wenn du ein Cluster betreibst, ist jeder Karte ein separater Server mit seinem eigenen Speicher und jeder davon braucht die volle Sequenz.