Recuperer les logs d'un programme executé par Cron

Fermé
Sod - 3 juil. 2015 à 21:23
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 4 juil. 2015 à 08:44
Salut à vous, je viens vous demander de l'aide aujourd'hui car étant débutant sur Linux avec 10 ans de Windows derrière moi c'est comme si je débarquais sur une autre planète, et une sacrée planète de fous qui plus est

J'ai donc une machine sous Xubuntu dédiée au host d'un serveur ARK : Survival Evolved, si je lance mon serveur manuellement via un terminal (./monserver.sh) il se lance, m'affiche quelques lignes de rapport de lancement et par la suite d'éventuelles infos en cas de crash ou autre.

Bien évidemment afin d'automatiser tout ça j'ai créé un script .sh chargé de Kill le processus si existant et de relancer ./monserver.sh afin de programmer avec Crontab des reboots quotidiens. Tout fonctionne très bien et aux heures voulu, mais le soucis c'est que lorsque le serveur est lancé via Crontab je n'ai rien d'autre que le processus dans mon task manager à l'écran, plus de terminal pour m'afficher les infos de lancement et en cas de crash.

J'ai donc cherché un (LONG) moment sur google et j'ai trouvé deux solutions potentielles que voici :

1.
Créer un terminal spécifique au serveur via screen -S SERVER et exécuter la commande de lancement de mon serveur via le script .sh suivant :
#!/bin/bash
screen -S SERVER -X stuff "sh /directory/monserver.sh"

Cette solution a été écrite par un des développeurs d'ARK, seulement voilà syntaxe incorrecte le script en question n'accepte pas les guillemets et si je les retires j'ai un "unknown command : sh" dans le terminal SERVER, donc pas moyen d'exécuter mon serveur (ou n'importe quel autre script) et croyez moi j'ai du tenter 150 syntaxes différentes à l'aide de screen -h...


2.
Exécuter mon serveur et balancer les retours dans un fichier Logs avec le script suivant :
#!/bin/bash
./monserver.sh > Logs

puis lire ce même fichier en continu dans un terminal avec la commande : tail -f Logs
mais là encore une fois problème, le serveur se lance, le fichier Logs se créer mais reste totalement vide...


Voilà voilà, ça fait plus de 10h que je traîne ce problème sans trouver la solution, à croire que pour avoir le droit d'afficher 4 lignes dans une console il faut se payer une licence Windows Server....

Merci d'avance à vous !
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
4 juil. 2015 à 08:05
Salut,

#!/bin/bash
./monserver.sh > Logs 2>&1

0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
Modifié par dubcek le 4/07/2015 à 08:45
hello
essayer
screen -S SERVER -X stuff  sh /directory/monserver.sh

et l'option --retry de tail
0