Es gibt viele Skripte im Internet, die expect verwenden, um eine automatische Anmeldung zu erreichen, aber es gibt keine klare Erklärung, und Anfänger kopieren und sammeln sie normalerweise. Aber ich weiß nicht, warum es so geschrieben ist. Dieser Artikel veranschaulicht das Prinzip des Skripts anhand eines Minimalbeispiels. Der Skriptcode lautet wie folgt: #!/usr/bin/expect Zeitüberschreitung auf 30 setzen spawn ssh -l Benutzername 192.168.1.1 erwarte "Passwort:" sende "ispass\r" interagieren 1. [#!/usr/bin/expect] Diese Zeile teilt dem Betriebssystem mit, welche Shell zur Ausführung des Codes im Skript verwendet werden soll. Der Expect-Befehl hier ist eigentlich derselbe wie bei Bash unter Linux und bei cmd unter Windows. HINWEIS: Diese Zeile muss die erste Zeile im Skript sein. 2. [Timeout auf 30 setzen] Im Grunde weiß jeder, der Englisch kann, dass hier das Timeout eingestellt wird. Jetzt müssen Sie sich nur noch merken, dass die Zeiteinheit Sekunden ist. 3. [spawn ssh -l Benutzername 192.168.1.1] Spawn ist ein interner Befehl von expect, der nach dem Aufrufen der expect-Umgebung ausgeführt werden kann. Wenn expect nicht installiert ist oder direkt unter der Standard-SHELL ausgeführt wird, kann der Befehl spawn nicht gefunden werden. Verwenden Sie daher keine Befehle wie „which spawn“, um den Spawn-Befehl zu finden. Beispielsweise ist „dir“ in Windows ein interner Befehl, der mit der Shell geliefert wird. Sie können keine ausführbare Datei namens „dir.com“ oder „dir.exe“ finden. Seine Hauptfunktion besteht darin, dem laufenden SSH-Prozess eine Shell hinzuzufügen, um interaktive Befehle zu übergeben. 4. [erwarte "Passwort:"] Das expect hier ist auch ein interner Befehl von expect. Das kann etwas verwirrend sein. Der Shell-Befehl von expect ist derselbe wie der interne Befehl, aber es ist dieselbe Funktion. Sie müssen sich nur daran gewöhnen. Dieser Befehl soll feststellen, ob die Zeichenfolge „password:“ im letzten Ausgabeergebnis enthalten ist. Wenn ja, wird es sofort zurückgegeben. Andernfalls wird eine Weile gewartet, bevor es zurückgegeben wird. Die Wartezeit beträgt hier die oben festgelegten 30 Sekunden. 5. [senden Sie „ispass\r“] Hierbei handelt es sich um eine interaktive Aktion, die der manuellen Eingabe eines Passwortes entspricht. Tipps: Vergessen Sie nicht, am Ende der Befehlszeichenfolge „\r“ hinzuzufügen. Wenn ein abnormaler Wartezustand auftritt, können Sie dies überprüfen. 6. [interagieren] Behalten Sie nach Abschluss der Ausführung den interaktiven Status bei und übergeben Sie die Steuerung an die Konsole. Zu diesem Zeitpunkt können Sie manuell arbeiten. Wenn dieser Satz nicht enthalten ist, meldet sich das System nach der Anmeldung ab, anstatt auf dem Remote-Terminal zu bleiben. Das Obige ist der Inhalt dieses Artikels über das Beispiel der automatischen Anmeldung unter Linux. Vielen Dank für Ihr Lernen und Ihre Unterstützung für 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: So fügen Sie MySQL Indizes hinzu
>>: jQuery+Ajax zum Erreichen eines einfachen Paging-Effekts
Da die Plattform weiter wächst, ist die Forschung...
Um die Fähigkeit zum Schreiben von nativem JavaSc...
Vorwort Wenn in einem relativ komplexen großen Sy...
Dieser Artikel veranschaulicht anhand eines Beisp...
1. Fehler beim Verbinden mit Master 'x@xxxx:x...
JSON-Daten werden auf der HTML-Seite angezeigt un...
Wenn Sie das Win10-System installiert haben und e...
Inhaltsverzeichnis 1. Einleitung 2. Vorteile 3. N...
Phänomen Das System konnte den Linux-Systemkernel...
Die erste Möglichkeit besteht darin, jQuery's...
Zusammensetzung der Tabellenbeschriftung Die Tabe...
Das <canvas>-Element ist für clientseitige ...
1. Installationspaket MySQL-Dienst-Downloadadress...
In diesem Artikel wird der spezifische Code des o...