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

Java Discussion :

Commandes Shell Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut Commandes Shell Java
    Bonjour,

    Dans mon application je doit exécuter des commandes sur un serveur distant (Solaris) à partir de ma solution qui tourne dans un système Windows ou Linux (programmé en JAVA).
    Ces commandes de surveillance (sar, iostat, netstat, vmstat) doivent s’exécuter automatiquement sur le serveur Solaris dans des intervalles de temps prédéfinies, et je doit récupérer ces informations (dans des fichiers) et les utiliser dans la suite de mon application.
    Je suis parti sur l'utilisation du protocole ssh en utilisant la librairies JSCH, mais je n'arrive pas exécuter les commandes automatiquement, je ne peut qu'ouvrir une session ssh et exécuter les commandes manuellement.
    Si quelqu'un pourrait m'aider dans cette procédure ou m'orienter vers une autre approche.

    Merci.

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    moi, je te propose que lorsque tu exécutes ton programme après avoir fait la connexion ssh, que tu fasses un fichier de sortie et des logs. Ensuite, vu que tes fichiers de sorties/logs sont déposés dans un endroit de ton serveur distant, tu n'as qu'à les récupérer et continuer ton travail.
    Pour l'instant, je vois mal comment tu pourrais lancer une commande via ssh et ensuite récupérer l'output en parallèle en utilisant jsch :/
    Si tu trouves, ça m'intéresse.
    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut
    Mais cette approche ne me permet pas d'automatiser ce travail. Je vient de trouver une approche qui consiste à faire la connexion ssh avec le serveur distant Solaris avec JSCH, et exécuter une script shell en Bash avec exec de la classe runtime. Je n'ai pas encore essayer cette approche mais je vous donnerai des nouvelles si ça aboutit à quelque chose...

  4. #4
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Par défaut
    Bonjour,

    Avec unix/linux tu peux scheduler des jobs qui tournent régulierement et qui mettent les résultats dans des fichiers logs, par exemple.
    Ensuite tu te connectes pour récupérer ces logs et les parser.

    Il faut utiliser cron : http://www.ibm.com/developerworks/li...ing/index.html

    Cordialement.
    Omar MEBARKI

  5. #5
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Mais il me semble qu'il veuille surtout lancer sa commande de manière temporelle et non à des périodes de boucles comme le fait 'cron'.
    A la limite, j'aurais proposé la commande 'at' pour programmer une fois la date de lancement de la commande.
    Mais bon, moi j'espère qu'il trouvera la solution sans passer par tous ces hacks
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut
    Merci pour ta réponse,

    J'ai déjà pensé à cette approche, mais elle nécessite une configuration d'un cron sur chaque serveur que je veut surveiller. Le but étant d'exécuter ces commandes sur n'importe quel serveur sur le réseau, d'où la nécessite de le faire en programme.

  7. #7
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    dans les exemples de jsch il y a un Exec.java qui exécute une commande sur un serveur distant, tu t'es basé dessus ?

    de plus dans cet exemple ils récupèrent les sorties .in et .err et les redirigent vers ce qu'ils veulent, donc on peut imaginer une sortie sur des fichiers.

    ou je me trompe totalement ?

    pour le second problème, il te faut un moyen de lancer des jobs régulièrement ?
    en force brute: un thread 'Launcher' qui lance les jobs, vérifie qu'ils sont bien finis et... dodo jusqu'à la prochaine fois ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PrintWriter en JAVA pour la lecture des commandes shell
    Par mastraze dans le forum Général Java
    Réponses: 4
    Dernier message: 17/07/2012, 17h04
  2. Lancer une commande shell (openssl) depuis une programme java
    Par hnsfr dans le forum Général Java
    Réponses: 1
    Dernier message: 23/04/2012, 10h21
  3. Invite de commande (shell) dans un programme java
    Par Fused dans le forum Général Java
    Réponses: 2
    Dernier message: 07/08/2009, 14h57
  4. Problème mémoire d'execution d'une appli java en commande shell
    Par Djinner² dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/07/2008, 17h34
  5. execute une commande shell en java
    Par freakfm dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 07/10/2006, 17h03

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