Forum Programmation.shell Script Batch ou sh pour envoyer un autre script sur une machine distante et l'executer.

Posté par  .
Étiquettes : aucune
0
1
sept.
2004
Bonjour,

Je souhaiterai d'une machine NT avoir un batch ou un script sh que je lance d'une machine unix qui envoye un script sur des machines unix et execute ce script.
Je dispose d'un telnet, du ftp, et de la cmd rcp ( je ne pense pas disposer de ssh, n'y de rsh)

en fait, ce qui serrai bien c'est que le script lance FTP qui envoie le script sur toute les machines. puis le script lance un telnet qui fasse un ./mon-script

Mais j'ai cru lire que c'était pas si simple.

Avez - vous des idées ?

Merci de votre aide.
  • # Cygwin est ton ami

    Posté par  . Évalué à 0.

    N'oublies pas de choisir tous les paquets dont tu as besoin.

    Attention dans les scripts au nom des répertoires.

    Bon courage

    Enzo Bricolo
    • [^] # Re: Cygwin est ton ami

      Posté par  . Évalué à 1.

      Ca ma l'air compliqué Cygwin

      Moi je veux juste un truc du genre

      #/bin/sh

      cd /rep/local

      ftp machine1 -u toto -pwd mon_mot_de_passe
      cd /le/bon/rep
      put mon_script
      exit

      telnet machine1 -u toto -pwd mon_mot_de_passe
      cd /le/bon/rep
      ./mon_script
      exit

      ca parait simple mais il faut que se soit le script passe les cmd aux interfaces ftp et telnet.

      Comment faire ?

      Peut-etre que Cygwin peut le faire mais ça parait moins simple.
      • [^] # Re: Cygwin est ton ami

        Posté par  . Évalué à 1.

        cygwin n'a rien de compliqué. c'est un simple émulateur linux. Ca s'installe dans un seul répertoire (en créant des sous répertoires, bien sûr) qu'il suffir d'effacer pour désinstaller complètement le systeme.
        L'install standard te crées une îcone te permettant de démarrer un console avec un interpréteur bash. Donc tu te retrouves comme dans un shell linux. Et tu peux donc faire interpréter un script bash classique. Une install normale de cygwin te permet d'utiliser rlogin, ftp, ssh, et tout le reste qui va bien.
        Donc à part l'install, ya vraiment rien de compliqué.
        Et au moins, pas besoin de faire un truc de goret pour soit disant 'scripter' un transaction ftp dans un mauvais .bat o(
  • # ftp scripté

    Posté par  . Évalué à 1.

    Son NT, tu peux scripter le FTP. Tu cré un fichier texte avec les commandes que tu veux envoyer au clien FTP (/!\ le mot de passe apparait en clair dans ce fichier). Consulte l'aide de NT pour voir comment ca marche. Par contre, le client telnet de base ne peux pas le faire. Putty peut etre ?
    • [^] # Re: ftp scripté

      Posté par  (site web personnel) . Évalué à 2.

      Avec netcat ça doit être faisable.

      Comme alternatives à CygWin, il y a notamment http://unxutils.sourceforge.net/(...) et http://www.microsoft.com/windows/sfu/(...) (pas libre mais gratuit)

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

      • [^] # Re: ftp scripté

        Posté par  . Évalué à 1.

        Si tu n'as pas {l'envie | la motivation} de faire un script Perl comme indiqué si dessous, tu as un bon utilitaire qui permet de scripter le FTP : ncftp.

        Il fournit ncftpput (et son confrère ncftpget) et ncftpbatch qui permettent d'automatiser tout ça. La syntaxe est assez simple, "à la" wget.

        Par contre, pour ton Telnet, pas de meilleur idée que Perl ou expect.

        Hope that helps.
  • # Une tâche planifiée ou ponctuelle ?

    Posté par  (site web personnel) . Évalué à 2.

    Dans le cadre de taches planifiées, il peut être intéressant de déclencher les actions à partir des postes clients ... Ainsi la crontab contient une entrée qui va chercher le script sur le poste serveur, l'exécute, puis le vire éventuellement avec une fréquence donnée ...
    Évidemment, ça oblige à intervenir sur les crontab de tous les postes clients ...

    Pas mal de clients ftp, ssh permettent de passer des commandes directement :
    ssh user@host command reste le problème du mot de passe à régler, soit en utilisant les clés pour ssh, ou en passant le mot de passe comme un gros sale dans la ligne de commande avec ftp ...

    Avant de choisir une solution, fais donc bien l'inventaire des services disponibles sur les machines "clientes", celles qui doivent exécuter le script. Il me semble bizarre qu'elles aient toutes un serveur ftp, telnet et pas ssh ...
    • [^] # avec putty sur NT, ssh sur linux ça marche bien

      Posté par  (site web personnel) . Évalué à 2.

      utiliser putty pour faire du ssh sur du NT ça t'évitera de divulguer les mots de passe sur le réseau, tu as pscp (pour faire un scp) et plink (pour faire un ssh qui va exécuter la commande à distance)

      tu te crées une clé privé sur ton poste NT (par puttygen) et tu copies la clé publique dans $HOME/.ssh/authorized_keys sur le serveur

      Une fois que c'est bien configuré :

      pscp -i cle_privee.ppk mon_script toto@machine1:/le/bon/rep/
      plink -i cle_privee.ppk toto@machine1 "/le/bon/rep/"

      vala... google putty pour le télécharger et lire la doc' en ligne...

      Bon courage.
  • # Commentaire supprimé

    Posté par  . Évalué à 2.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # expect

    Posté par  . Évalué à 2.

    si tu l'as, la commande expect peut t'aider pour automatiser le ftp.
    google donne par exemple
    http://www.cpqlinux.com/submit.html#FTPEXPECT(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.