Arbeits ich 192.168.119.128
-192.168.119.129
automatische anmelden möchten und einige Befehle ausführen, so schreibe ich ein Skript erwarten.Linux erwarten Befehl ohne interact Richtlinie nicht
a.sh
#!/usr/bin/expect -f
set timeout 5
spawn ssh [email protected]
expect "password" {send "123456\r"}
expect "]#" {send "touch /tmp/a.txt\r"}
#interact
Die Ausgabe lautet:
[email protected]:~/Work$ ./a.sh
spawn ssh [email protected]
[email protected]'s password:
Last login: Sun Jan 22 17:36:21 2017 from 192.168.119.128
[[email protected] ~]# [email protected]:~/Work$
ich successfuly anmelden, aber es scheint touch /tmp/a.txt
Befehl ausgeführt wird nicht.
Wenn ich die letzte Zeile #interact
von a.sh auskommentieren, funktioniert es, und die Datei a.txt wird erstellt. Hier
#!/usr/bin/expect -f
set timeout 5
spawn ssh [email protected]
expect "password" {send "123456\r"}
expect "]#" {send "touch /tmp/a.txt\r"}
interact
ist die Ausgabe:
[email protected]:~/Work$ ./a.sh
spawn ssh [email protected]
[email protected]'s password:
Last login: Sun Jan 22 17:41:23 2017 from 192.168.119.128
[[email protected] ~]# touch /tmp/a.txt
[[email protected] ~]#
Warum ohne die interact
Richtlinie das Skript Arbeit nicht richtig? Vielen Dank.
Ja, ich gelöst, zuletzt "#interact" zu "erwarten "] #"{} schließen" arbeiten. –