Installer un serveur Rust sur Debian 9.x

1 - Installez Debian
Si vous suivez ces etapes vous devez savoir utiliser les commandes cd, su, less, nano, ect...
Lors de l'installation de Debian j'ai créé un utilisateur root et lpm. Vous pouvez remplacer lpm par se que vous voulez.
Pensez simplement à remplacer lpm par votre compte pour la suite.
Note: J'indique le compte [root] et [lpm] utilisé pour chaque commandes.


2 - Installation de LGSM
-Installation des dépendances:
[root]:# dpkg --add-architecture i386; apt update; apt install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 libstdc++6:i386 lib32z1

-Installation de LGSM:
[lpm]:$ wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh rustserver
./rustserver install

Note: Vérifiez qu'il n'y a pas eu d'erreur et passez à la suite.

Editez la config en fonction de vos preferences:
[lpm]:$ nano ~/lgsm/config-lgsm/rustserver/rustserver.cfg
Exemple:

##################################
######## Instance Settings ########
##################################
# PLACE INSTANCE SETTINGS HERE
## These settings will apply to a specific instance
port="28015"
rconport="28016"
rconpassword="Secret"
rconweb="1"
servername="[FR] Mon Serveur"
maxplayers="100"
worldsize="3200"
seed="1234567890"
tickrate="10"

2a - Installation de oxide: (Optionnel)
[lpm]:$ ./rustserver mi
Tapez rustoxide et


2b - Redémarrer le serveur une fois par jours et automatiser son redémarrage en cas de crash: (Optionnel)
Telechargez et installez le plugin SmoothRestart:
[lpm]:$ wget -P ~/serverfiles/oxide/plugins/ https://umod.org/plugins/SmoothRestart.cs

Choisir l'heure du démarrage du décompte dans le fichier de configuration :
[lpm]:$ nano ~/serverfiles/oxide/config/SmoothRestart.json
Exemple:
...
"Timers": {
"RebootTimes": {
"03:15": "45"
},
"useTimers": true
}
...

A ce stade le serveur lancera un décompte de 45 minutes pour avertir les joueur a 3H15 et s'arrêtera a 4h00.
En revanche il ne redémarrera pas tout seul.

Pour corriger ce problème j'utilise un cron qui exécutera un script pour monitorer le serveur et le redémarrer automatiquement: (https://opensource.com/article/17/11/how-use-cron-linux)
Téléchargez et placez le fichier monitor-rustserver.sh a la racine du dossier utilisateur.
Le rendre executable:
[lpm]:$ chmod +x monitor-rustserver.sh
Créez un dossier pour le cache et les logs à la racine:
[lpm]:$ mkdir ~/.cache
[lpm]:$ mkdir ~/log/uptime

Ajoutez ces lignes au cron:
[lpm]:$ crontab -e
* * * * * /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.sh 2>&1
* * * * * sleep 10; /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.log 2>&1
* * * * * sleep 20; /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.log 2>&1
* * * * * sleep 30; /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.log 2>&1
* * * * * sleep 40; /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.log 2>&1
* * * * * sleep 50; /home/lpm/monitor-rustserver.sh >> /home/lpm/log/uptime/monitor-rustserver.log 2>&1

!!! Attention à stopper le cron pour faire les mises à jours de Rust et oxide !!!
[root]:# service cron stop
[root]:# service cron start