Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/10/2013, à 01:09

DonutMan75

Screen et shell script

Bonjour à tous,

Sur ma machine en local, j'utilise screen pour avoir un terminal accessible depuis n'importe où (notamment via ssh).

En local, j'aimerais automatiser (via cron) un script qui exécuterait régulièrement certaines commandes sur ce terminal.
Il me semble que l'option -X de screen répond à cette problématique.

Or, je n'y arrive pas... Pouvez-vous m'aider ?

Liens :
http://doc.ubuntu-fr.org/screen
http://www.gnu.org/software/screen/manual/screen.html

Terminal 1 :

$ screen -S toto

Terminal 2 :

$ screen -x toto -X "ls"

Je m'attends à voir apparaître, sur terminal 1 et terminal 2 le listing de mon répertoire courant...
Or, dans terminal 2, ça passe à la ligne sans rien indiquer... (à la rigueur ça ça n'est pas gênant).
Et dans terminal 1, je vois "-X : unknown command 'ls'" s'afficher dans un carré blanc en bas à gauche de ma fenêtre...

Comment pourrais-je m'en sortir ?

Merci d'avance smile

Donut

Hors ligne

#2 Le 25/10/2013, à 08:44

tiramiseb

Re : Screen et shell script

Salut,

L'argument de "-X" ce n'est pas pour exécuter une commande dans le shell, c'est pour exécuter une commande propre à screen (je t'invite à voir là pour ces commandes : http://www.gnu.org/software/screen/manu … d-Summary).


Le problème par rapport à ton besoin, c'est qu'il n'y a pas moyen de savoir si le screen en question est en capacité d'accueillir le retour d'une commande : si vim est ouvert et que tu es en train d'éditer des fichiers, quel comportement attendrais-tu ? De plus, comment gères-tu le cas où tu as plusieurs fenêtres ouvertes dans le screen ? Comment faire pour que le potentiel message que tu essaies d'y afficher le sera sur la fenêtre que tu veux ?

Plutôt que d'exprimer un début de solution, peux-tu exprimer ton premier besoin ; autrement dit, pourquoi veux-tu afficher quelque chose dans ce screen ?

Hors ligne

#3 Le 25/10/2013, à 10:54

DonutMan75

Re : Screen et shell script

Bonjour Tiramiseb,

en fait je mets en place un serveur Minecraft (je ne sais pas si tu connais ce jeu ?).

C'est un truc en java, que je lance avec la commande :

$ java -Xmx1024M -Xms1024M -jar minecraft_server.jar

Le terminal lance ensuite le serveur et j'ai la main pour lancer certaines commandes spécifiques (/say pour parler, /save-all pour forcer la sauvegarde du serveur etc...).

J'aimerais pouvoir y accéder depuis n'importe où. Comme j'ai déjà un accès ssh sur cette machine, la solution de screen me paraissait idéale. Donc ça, ça marche plutôt bien.

Maintenant, j'aimerais faire un script sh (appelé régulièrement via cron) qui enverrait la commande '/save-all' au serveur avant d'archiver le répertoire où sont stockées les données. C'est là que je bloque...

Apparemment d'après ce que tu me dis, ce n'est pas possible ?


Merci d'avance et bonne journée,

Donut

Hors ligne