logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 27-02-2020 15:46:54

moonete
Membre
Inscription : 27-02-2020

automatisation serveur

bonjour a tous

je débutes sur la programmation de serveur

-j’aimerais savoir comment automatiser mon redémarrage du serveur de jeu tous les jours (j’arrives a l’éteindre mais pas a le redémarrer avec crontab -e)
-j’aimerais envoyer des messages toutes les minutes avant le redémarrage du serveur (5 min avant si possible en rouge^^)
-j’aimerais aussi sauvegarder ma sauvegarde tous les jours avec crontab aussi si c’est possible bien sure

merci d’avance

Hors ligne

#2 27-02-2020 16:01:42

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : automatisation serveur

La notion de serveur est superflue amah, il y a des application serveur, mais les serveurs sont des ordinateurs, y a aucun intêret à apporter la distinction.

Quand tu parles de redémarrer, tu parles de redémarer ton ordinateur ou de relancer ton application serveur de jeu ?

Ça veut dire quoi "envoyer des messages" ? Sous quelle forme tu veux les envoyer ?

Tu veux sauvegarder, ok. Tu veux sauvegarde quoi ?

Je pense qu'il manque des éléments essentiels à tes questions : le contexte, les outils que tu utilises, l'objectif...


...Tu parlerai pas de minecraft par hasard ? Comment tu veux qu'on devine ? é_è

Dernière modification par otyugh (27-02-2020 16:02:47)


virtue_signaling.pngpalestine.png

En ligne

#3 27-02-2020 18:21:43

moonete
Membre
Inscription : 27-02-2020

Re : automatisation serveur

en faites c'est un serveur dedie sur lequel est installer debian 10
oui c'est un serveur de jeu avec lequel j'ai un script pour démarrer pour eteindre c'est pkill -f "7D2D_Serv2" et pour le redémarrer  ./load_7d2d_s2.sh
le script c'est sa:

#!/bin/bash

cd /home/moonete/7d2d2

screen -S 7D2D_Serv2 ./startserver.sh -configfile=serverconfig.xml

echo "screen -x 7D2D_Serv2"

screen -x



en faites j'aimerais envoyer des messages pour dire que le serveur va redémarrer sur le jeu dans le tchat

en faites je voudrais faire une copie du dossier de sauvegardes dans un dossier que j'ai creer save
/home/moonete/7d2d2/saves et je veut le mettre dans /home/moonete/saves et le sauvegarder dans ce dossier tous les jours
je ne sais pas si j'ai ete assez explicite
merci d'avance

Edit à bendia : j'ai mis des balises autour de ton script, c'est y pas mieux comme ça wink Voir le tuto : Le code, ça pique moins les yeux en couleur

Hors ligne

#4 27-02-2020 18:38:36

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : automatisation serveur

moonete a écrit :

oui c'est un serveur de jeu avec lequel j'ai un script pour démarrer pour eteindre c'est pkill -f "7D2D_Serv2" et pour le redémarrer  ./load_7d2d_s2.sh
le script c'est sa:



Il y a quoi exactement dans ton crontab pour relancer le serveur ?

moonete a écrit :

en faites j'aimerais envoyer des messages pour dire que le serveur va redémarrer sur le jeu dans le tchat

Quel tchat, il est intégré au jeu ? On peut y envoyer des messages en ligne de commande ?

moonete a écrit :

en faites je voudrais faire une copie du dossier de sauvegardes dans un dossier que j'ai creer save

Il doit y avoir des outils tout fait pour ça, mais ça doit être intéressant d'apprendre à le faire à la main wink


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#5 27-02-2020 18:41:12

moonete
Membre
Inscription : 27-02-2020

Re : automatisation serveur

dans mon crontab j'ai sa
00 6 * * * pkill -f “7D2D_Serv2”
01 6 * * * /home/moonete/load_7d2d_s2.sh

oui c'est un tchat dans le jeu et oui je pense car j'ai deja jouer sur des serveurs et ils en envoyaient des messages

Hors ligne

#6 27-02-2020 19:04:38

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : automatisation serveur

Hum, et sans doubler les chiffres dans la colonne des minutes, genre 0 à la place de 00, 1 à la place de 01 ?

Il doit aussi y avoir moyen de voir ce qui c'est passé dans /var/log/syslog avec un truc du genre

 grep CRON /var/log/syslog



Edit, il y aurait aussi moyen d'enregistrer ce qui se passe lors de l'execution de ce script avec un truc du genre

1 6 * * * /home/moonete/load_7d2d_s2.sh >> /home/moonete/7d2d_s2.log



Pour les messages, sans savoir exactement le logiciel serveur dont il s'agit et sans sa documentation, c'est impossible à deviner hmm


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#7 27-02-2020 20:29:37

moonete
Membre
Inscription : 27-02-2020

Re : automatisation serveur

donc sa ecrit sa a chaque fois que c'est lancer

Feb 27 12:12:01 sd-158141 CRON[6061]: (root) CMD (pkill -f "7D2D_Serv2")
Feb 27 12:13:01 sd-158141 CRON[6118]: (root) CMD (/home/moonete/load_7d2d_s2.sh)
Feb 27 12:13:01 sd-158141 CRON[6117]: (CRON) info (No MTA installed, discarding output)
Feb 27 12:17:01 sd-158141 CRON[6317]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 27 13:17:01 sd-158141 CRON[8492]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

et avec la ligne que tu m'as donner sa fait sa

Feb 27 20:05:01 sd-158141 CRON[13139]: (root) CMD (pkill -f "7D2D_Serv2")
Feb 27 20:06:01 sd-158141 CRON[13157]: (root) CMD (/home/moonete/load_7d2d_s2.sh >> /home/moonete/7d2d_s2.log)
Feb 27 20:17:01 sd-158141 CRON[13269]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

mais il est toujours pas demarrer

Dernière modification par moonete (27-02-2020 20:29:58)

Hors ligne

#8 27-02-2020 20:35:42

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : automatisation serveur

>> /home/moonete/7d2d_s2.log

Ça redirige la sortie du script executé par cron vers le fichier /home/moonete/7d2d_s2.log. On peut lire le contenu du fichier avec

cat /home/moonete/7d2d_s2.log



Edit : par contre, c'est root qui lance le script, donc, peut-être le serveur aussi. C'est peut-être ça le problème, et d'une manière général, c'est plutôt dangereux.


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#9 27-02-2020 20:40:30

moonete
Membre
Inscription : 27-02-2020

Re : automatisation serveur

sa me met sa

Must be connected to a terminal.
screen -x 7D2D_Serv2
Must be connected to a terminal.

et donc faut que je me mettes sous mon nom utilisateur pour faire crontab?

Hors ligne

#10 27-02-2020 20:45:59

Debian Alain
Membre
Lieu : Bretagne
Distrib. : sid (unstable) / bullseye (stable)
Noyau : Linux sid 6.4.0-3-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Hors ligne

#11 27-02-2020 20:59:41

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : automatisation serveur

moonete a écrit :

et donc faut que je me mettes sous mon nom utilisateur pour faire crontab?

Ca n'est pas impossible, mais comme on ne sait toujours pas ce que c'est exactement comme serveur wink En général, on essaye d'isoler les serveurs avec un utilisateur spécifiques qui aura des droits limités. Là, imagine qu'une faille existe, le faire exécuter par root permet donc à la faille d'avoir accès à toutes la machine.

Ceci-dit, ça ne réglera peut-être pas le problème, je ne suis pas certain que cron soit l'outil le plus adapté pour faire ça. Peut-être que qu'un timer systemd ferait mieux le taf.

Je ne suis pas un spécialiste de screen, ni de cron mais le problème semble venir de là

Must be connected to a terminal.

. Il faut chercher de côté avec ce message d'erreur.

Edit : genre ce genre de réponse, mais tu ne les auras qu'en anglais tongue


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#12 28-02-2020 16:33:33

naguam
Membre
Lieu : Quelque part
Distrib. : Plusieurs
Noyau : Ça dépend
(G)UI : La CLI il n'y a que ça de vrai!
Inscription : 13-06-2016

Re : automatisation serveur

Dans un premier temps, on a toujours pas la réponse sur le type de serveur de jeu.

Si screen peut être lancé en non interactif, ça n'empeche pas qu'il doit être lancé depuis une
session interactive (ligne de commande) et non depuis en script lancé par un soft (cron) et non depuis une session interactive (si je ne me trompes pas).
(Je suis quasiment certain que l'environnement qui définit la session interactive courante est utilisée par screen ou tmux et doivent utiliser la var du terminal courant).
Avec un cron cela ne serait probablement pas les mêmes var d'environnement et probablement pas les mêmes.

Dans un second temps il est vrai qu'il est utile pour tester des soft server de les lancer dans une session screen ou tmux, mais s'en servir de
manière permanente est une autre histoire, c'est plutôt pas terrible/pas conseillé.

Ce que je te conseillerais, c'est de créer un service systemd pour ton serveur de jeu que tu restart avec le cron proprement.
(et même avec anacron qui a certains avantages mais je te laisse te renseigner).
En faisant un service tu n'a plus besoin de t'occuper d'utiliser screen, en revanche pour accéder à la console serveur
(si tu parle d'un serv minecraft) je ne sais si elle sera accessible (possiblement mais je ne sais pas faire).

Mais c'est pour ça que je conseilles de configurer le serv minecraft en interactif avant de
le mettre en temps que service et de mettre un joueur administrateur ayant les même droits que la console serveur
(dans le système du jeux, pas dans debian).

Enfin, pour envoyer le message aux joueurs dont tu parles c'est le soft du serv qui doit s'en occuper,
si c'est bien d'un serv minecraft, tu as de la chance la plupart des serveurs minecraft le permettent de
prevenir un certain nombre de temps que le serveur va reboot ou être stoppé, mais pour ça aussi il y a de la doc
à foison sur le net, faut juste prendre le temps de chercher.
(du moins les serveurs comme spigot ou papermc et peut-être même le soft standard).

(même plus simple que de créer un service, tu peux faire reboot le serveur de jeux en une commande que tu mets dans le cron directement ou un script comme tu fais mais sans screen, mais je trouve ça moins terrible dans le sens ou tu perd en flexibilité un service que tu enablerais permettrait de redémarrer le serv de jeux directement à chaque reboot de la debian et de stopper le serveur proprement et d'avoir un bon contrôle (le cron ne permet que d'executer des commandes et c'est pas pour du contrôle et interactif et non interactif, seulement non interactif)

Même si finalement ce n'est pas un serveur minecraft (ce que la conf xml semble montrer) ce que je dis dois s'appliquer dans les grandes lignes en adaptant un peu.

Si tu tiens temps à screen il doit y avoir moyen de lui simmuler un environnement qui lui fait croire la présence d'un terminal dans lequel il pourrait se lancer.

Dernière modification par naguam (28-02-2020 16:43:45)

Hors ligne

Pied de page des forums