Aide sur un shell

Résolu
dino -  
 dino -
Bonjour,

Je voidrais ecrire un peitit script qui se lance a partir d'une machine A et se connect sur un liste de machine B,C,D,...et laanc a chaque fois un script ou une commande ,mais ca coinse ,il lance ma camande en local

time=`date +%d%m`
LOG_FILE=tarce_$time

list.txt=B,C,D

liste="$(cat /list.txt)"
for i in $liste
do

rsh $i 'ls -ltr'>>tarce_$time

done

Merci pour votre aide
Configuration: Windows XP
Firefox 3.0.3

14 réponses

Résumé de la discussion

Un script vise à démarrer sur une machine A et, via une liste de machines B, C, D, lancer une commande sur chaque machine distante. Des questionnements apparaissent sur le fichier list.txt, la manière de lire son contenu avec cat ou echo, et l'usage correct de rsh pour que les commandes s'exécutent sur les machines ciblées. D'autres propositions soulignent l'importance de vérifier l'existence du fichier, le chemin d'accès, et d'utiliser correctement une boucle for pour traiter la liste des noms afin d'éviter les exécutions locales.

Bobot (l'IA à votre service)
  1. doudou
     
    Une manière comme tant d'autres ...

    Ici, le script doit exister sur la machine distante...

    echo "Entrez le nom du site : \c"
    read sit
    echo "Entrez le nom de connexion : \c"
    read con
    echo "Entrez le path complet du fichier a executer: \c"
    read pat
    rshell $sit -l $con "$pat"

    Tu mets çà dans ta boucle, tu adaptes rsh / rshell en fonction de ton shell...
    pareil pour récupérer les résultats sur la machine locale...
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello

    list.txt="B C D"
    for i in $list.txt
    do
    0
  3. dino
     
    Bonjour,

    Merci doudou,la solution de dubcek me parait plus simple,mais c'est ce que j'ai essayer de faire :

    liste="$(cat /list.txt)"
    for i in $liste
    do

    le pb c'est que macommande simple "ls -ltr" passe en local ,pas sur la machine distante.
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      que contient list.txt ?
      0
  4. dino
     
    le nom de deux machines.A noter qye je peux faire un rsh et me connecter sans pb avec user root sur le deux a partir de ma machine en locale.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    les nom sont séparés par des espaces ?
    essaye

    rsh $i 'ls -ltr'>>tarce_$time < /dev/null
    0
  7. dino
     
    J'ai essayer de séparer les deux noms par un vide NOK, par un ";" NOK :mon "ls -ltr" passe tje en local et non sur la machines distante
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    liste="$(cat /list.txt)"
    for i in $liste
    do

    le séparateur DOIT être un espace ou tab
    0
  9. dino
     
    je suis d'accord avec toi mais ,encore une fois j'ai essayer un vide ,mais mon "ls -ltr" passe ne local.
    0
  10. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut vous tous,

    Un truc me turlupine ;-\
    list.txt=B,C,D     # <<< variable
    
    liste="$(cat /list.txt)"     # <<< lecture d'un fichier à la racine !!!
    for i in $liste
    do 
    Il n'y aurait pas comme un os ?
    0
  11. dino
     
    j'ai modier le chemin et mis /TOTO/list.txt ,mais est ce vraiment cela le pb ? si oui en quoi et comment le corrriger ?

    Merci.
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Je n'en sais rien, par contre est-ce que le fichier existe ?
      Si oui, alors pourquoi déclarer une variable ?
      Si non, alors c'est la variable qu'il faut lire et dans ce cas c'est la commande "echo" et non "cat" !
      0
  12. dino
     
    Bonjour,

    st-ce que le fichier existe ?....>oui heuresement !
    Si oui, alors pourquoi déclarer une variable ?....>la variable est le contenue de mon fichier qui est une liste de nom de machine
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      la variable est le contenue de mon fichier qui est une liste de nom de machine
      Elle sert à quoi alors ? A rien ?
      0
    2. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Peux-tu nous donner le resultat des commandes cat -A /TOTO/list.txt et file /TOTO/list.txt ?
      0
    3. dino > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      Bonjour,

      voila :

      cat -A /TOTO/list.txt
      cat: Not a recognized flag: A
      Usage: cat [-qrSsu] [-n[b]] [-v[et]] [-|File ...]

      file /TOTO/list.txt
      /TOTO/list.txt: commands text
      0
    4. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > dino
       
      et cat -vet /TOTO/list.txt ?


      PS: Sous quel os es-tu ?
      0
    5. dino > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      cat -vet list.txt
      A B C $

      Mais le "more" me donne
      more list.txt
      A B C

      le $ il fait koi la ?

      pour la version :
      uname -a
      AIX 2 5 00527D0A4C00

      Merci.
      0
  13. dino
     
    OK ! tu me propose quoi ?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      De répondre au message #15 ;-)
      0
  14. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    rsh A 'ls -lrt'
    si le login sur A se fait comme utilisateur lambda et que le home directory de lambda en monté sur toutes les machines, ls -lrt retournera toujours la même chose
    que répond
    rsh A 'hostname'
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Ha ouais, bien vu :)

      Croisons les doigts pour que ce soit le cas...
      0
  15. dino
     
    je sais pas ce qu'il fait ,la log ne dit rien :

    + rsh A ls -ltr
    0