Quello che sto cercando di fare è di:leggere il file in stringa e fare un ciclo in Aspettatevi Script
- Creare un file
.exp
, che leggerà dal file*.txt
dalla stessa directory e analizzare tutti i contenuti nel file di testo in una variabile stringa nello script expect. - Loop della stringa, che contiene una serie di nomi host, ed eseguire una serie di comandi finché la stringa non viene enumerata.
Così che lo script non, viene letta una serie di host da un file txt
nella stessa directory, e quindi leggere in una stringa, e il file di .exp
sarà automatica del registro in ciascuno di essi e eseguirli una serie di comandi.
Ho il seguente codice scritto, ma non sta funzionando:
#!/usr/bin/expect
set timeout 20
set user test
set password test
set fp [open ./*.txt r]
set scp [read -nonewline $fp]
close $fp
spawn ssh [email protected]$host
expect "password"
send "$password\r"
expect "host1"
send "$scp\r"
expect "host1"
send "exit\r"
Qualsiasi aiuto è molto apprezzato ....
Sono un po 'confuso. Avete un file che elenca tutti i comandi e un altro elenco di tutti gli host? O hai una directory con un file per host (chiamato da hostname con estensione .txt?) Che contiene i comandi da eseguire su quell'host? –
ciao. Sto cercando di creare un ciclo. per prima cosa leggi il file host.txt, che contiene tutti i server su cui voglio eseguire lo script exp. E poi, mentre l'eof di host.txt, copia e incolla i comandi che sono nel file commands.txt in ogni host. – Tony
che significa anche che il comando expect in questo script prevede un numero di host diversi, come $ host1->, $ host2-> etc .... – Tony