Aide sur un shell

Résolu/Fermé
dino - 16 oct. 2008 à 12:40
 dino - 20 oct. 2008 à 11:03
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
A voir également:

14 réponses

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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
16 oct. 2008 à 13:26
hello

list.txt="B C D"
for i in $list.txt
do
0
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
16 oct. 2008 à 14:45
que contient list.txt ?
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
16 oct. 2008 à 14:55
les nom sont séparés par des espaces ?
essaye

rsh $i 'ls -ltr'>>tarce_$time < /dev/null
0
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
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
16 oct. 2008 à 15:10
liste="$(cat /list.txt)"
for i in $liste
do

le séparateur DOIT être un espace ou tab
0
je suis d'accord avec toi mais ,encore une fois j'ai essayer un vide ,mais mon "ls -ltr" passe ne local.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 oct. 2008 à 15:16
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 oct. 2008 à 16:44
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 oct. 2008 à 09:11
la variable est le contenue de mon fichier qui est une liste de nom de machine
Elle sert à quoi alors ? A rien ?
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
17 oct. 2008 à 10:00
Peux-tu nous donner le resultat des commandes cat -A /TOTO/list.txt et file /TOTO/list.txt ?
0
dino > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
17 oct. 2008 à 10:56
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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > dino
17 oct. 2008 à 11:01
et cat -vet /TOTO/list.txt ?


PS: Sous quel os es-tu ?
0
dino > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
17 oct. 2008 à 11:46
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
OK ! tu me propose quoi ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 oct. 2008 à 10:49
De répondre au message #15 ;-)
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
17 oct. 2008 à 13:11
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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
17 oct. 2008 à 13:12
Ha ouais, bien vu :)

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

+ rsh A ls -ltr
0