Co staram się zrobić to:odczytać pliku do String i zrobić pętlę w Expect Script
- Utwórz plik
.exp
, który będzie odczytany z pliku*.txt
z tego samego katalogu i analizować całą zawartość w pliku tekstowym do zmiennej łańcuchowej w skrypcie oczekiwania. - Zapętlaj ciąg znaków, który zawiera serię nazw hosta, i wykonuj serię poleceń do momentu wyliczenia ciągu.
Więc co skrypt nie jest czytać serię hosta z pliku w tym samym katalogu txt
, a następnie odczytać je na sznurku, a plik .exp
będzie auto log do każdego z nich i excecute serię poleceń.
Mam następujący kod napisany, ale to nie działa:
#!/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"
Każda pomoc jest mile widziana ....
jestem trochę zdezorientowany. Czy masz jeden plik z listą wszystkich poleceń i inną listą wszystkich hostów? A może masz katalog z jednym plikiem na hosta (nazwany przez nazwę hosta z rozszerzeniem .txt?), Który przechowuje polecenia do uruchomienia na tym hoście? –
witam. Próbuję utworzyć pętlę. najpierw przeczytaj plik host.txt, który zawiera wszystkie serwery, na których chcę uruchomić skrypt exp. Następnie, podczas przeglądania pliku host.txt, skopiuj i wklej polecenia znajdujące się w pliku commands.txt do każdego hosta. – Tony
co oznacza również, że polecenie expect w tym skrypcie będzie wymagało wielu różnych hostów, takich jak $ host1->, $ host2-> etc .... – Tony