IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[screen] Envoyer une commande


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut [screen] Envoyer une commande
    Hello,

    j'ai un petit problème avec la commande screen ...

    j'essaie d'envoyer une commande à un screen par un script .sh, voici la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    screen -S $1 -X stuff "$2 $(echo -ne '\r')"
    $1 = le nom du screen
    $2 = la commande

    je précise que le screen en question est un serveur css

    le problème est le suivant: la commande ne marche que si le screen a été ouvert dans un terminal auparavant depuis sa céation.

    Comment puis-je parer au problème ?

    merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Après recherche, j'ai trouvé:

    screen -S $1 -p 0 -X stuff $"$2$(echo -ne '\r')"

    mnt, j'aimerais bien récupérer l'output de la commande, comment puis-je faire ?

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 387
    Par défaut
    Bonjour,

    Dans le man:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -L   tells screen to turn on automatic output logging for the windows.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    J'ai bien vu oui, mais cette option log tout le screen non ?, je veux juste la réponse de ma commande ...

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 387
    Par défaut
    Dans ce cas, c'est la redirection classique vers un fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande >fichier_de_sortie
    Il faut juste que cela soit la commande qui tienne compte de la redirection pas screen...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Dans ce cas, c'est la redirection classique vers un fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande >fichier_de_sortie
    Il faut juste que cela soit la commande qui tienne compte de la redirection pas screen...
    justement, c'est le problème ;(

    la commande screen.. ne répond rien, mais je ne sais pas comment récupérer la réponse de la commande executée dans le screen

  7. #7
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Bonjour

    • L'option -S lance une nouvelle session nommée. Alors que l'option -X se connecte à une session en cours. Quid?
    • La commande avec -X ne marche pas si la session est protégée par mot de passe. Quid?
    • L'argument '\r' est super-louche. C'est un retour chariot. En clair, il revient en début de ligne sans changer de ligne. Est-ce ton besoin?
    • echo ne marche qu'au démarrage pour un message de bienvenue. As-tu lu le manuel de screen?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    • L'option -S lance une nouvelle session nommée. Alors que l'option -X se connecte à une session en cours. Quid?
    • La commande avec -X ne marche pas si la session est protégée par mot de passe. Quid?
    • L'argument '\r' est super-louche. C'est un retour chariot. En clair, il revient en début de ligne sans changer de ligne. Est-ce ton besoin?
    • echo ne marche qu'au démarrage pour un message de bienvenue. As-tu lu le manuel de screen?
    -S sockname Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
    tiré de screen --help, d'après moi, c'est pour pouvoir récupérer une session autrement que par son id (je me trompe peut-être, trouvé sur internet)

    les screen que j'utilise ne sont pas protégé par mot de passe, donc je vois pas le problème.


    pour le \r j'ai trouvé ça sur internet, sans ça, la commande était écrite dans le terminal sans être envoyée...

    pour le echo, c'est pareil que le \r, sans ça, la commande était écrite avec \r à la fin plutôt que l'exécuter en tant que retour de ligne (ou retour chariot, comme tu le nommes) ...

  9. #9
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 387
    Par défaut
    Si, ce que je disais précédemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ screen -S 13118.totoscr -X stuff "echo titi >/tmp/totoscr.res$(echo -ne '\r')"
    $ cat /tmp/totoscr.res
    titi
    $ screen -S 13118.totoscr -X stuff "echo toto >/tmp/totoscr.res$(echo -ne '\r')"
    $ cat /tmp/totoscr.res
    toto

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 15
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Si, ce que je disais précédemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ screen -S 13118.totoscr -X stuff "echo titi >/tmp/totoscr.res$(echo -ne '\r')"
    $ cat /tmp/totoscr.res
    titi
    $ screen -S 13118.totoscr -X stuff "echo toto >/tmp/totoscr.res$(echo -ne '\r')"
    $ cat /tmp/totoscr.res
    toto
    merci pour la réponse, je teste ça tout de suite.

    EDIT: ne marche pas pour un serveur CS:S

Discussions similaires

  1. Envoyer une commande dans un screen
    Par clementdugal dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 09/12/2012, 22h32
  2. Envoyer une commande Telnet (bibliothèque Jakarta)
    Par XKCorp dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/09/2006, 14h57
  3. Envoyer une commande periodiquement dans l'applet
    Par Battosaiii dans le forum Applets
    Réponses: 2
    Dernier message: 11/12/2005, 17h57
  4. Comment envoyer une commande en HTTP ?
    Par Promeneur dans le forum Web & réseau
    Réponses: 5
    Dernier message: 08/06/2005, 18h45
  5. Comment envoyer une commande à une console ?
    Par seb_asm dans le forum Assembleur
    Réponses: 3
    Dernier message: 27/03/2004, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo