Ich schreibe ein Skript zum Lesen von Benutzername, Passwort und Host-Informationen aus einer Datei. Ich parse dann diese Informationen, um die Variablen zu erhalten. Ich möchte dann diese Variablen zu einem expect-Skript hinzufügen, das alle IP-Adressen in meiner Datei liest und bestimmte Befehle auf den entfernten Geräten ausführt, an denen ich mich anmelden möchte. Das Skript funktioniert, wenn es sich mit einem bekannten Host verbindet. Was ich jedoch sehe, ist, dass ein Gerät nicht läuft und das System mit dem folgenden Fehler fortfährt. ssh: connect 192.168.3.2 Port 22 zu bewirten: Keine RouteFehler keine Route zum Host mit expect beim Lesen Host-Benutzernamen und Passwörter aus einer CSV-Datei
die Datei Gastgeber Ich mag würde 2 Dinge 1. Überspringen Sie den Host tun und mit dem nächsten Host 2. Protokoll der Host zu verschieben, ist in eine andere Datei, damit ich das Netzwerkproblem zu diesem Host beheben kann.
Bitte beachten Sie das folgende Skript. Bitte jede Hilfe wird sehr akzeptiert.
#! /usr/bin/expect -f
## Read the file
set fid [open /csv_pars/employee1.csv]
set content [read $fid]
close $fid
## Split into records on newlines
set records [split $content "\n"]
## Iterate over the records
foreach rec $records {
## Split into fields on comma
set fields [split $rec ","]
## Assign fields to variables and print some out...
lassign $fields\ ipaddr username password
puts "$ipaddr"
puts "$username"
puts "$password"
if {$ipaddr == ""} continue
spawn ssh -X "[email protected]$ipaddr"
sleep 2
expect "password:"
sleep 2
send "$pass\r"
expect "$"
send -- "ls -l\r"
expect "$"
send -- "exit\r"
expect eof
}
Dank Glen Ich werde versuchen, diese – yawdmac
Glen Ich habe ein Problem, wenn ich die eingestellte Fehlerprotokoll Ich bin mir nicht sicher, wo es loggt. Ich suchte den Server und konnte das Protokoll nicht finden. Bedeutet dies, dass ich zuerst eine Protokolldatei erstellen muss. – yawdmac