Erläuterung des Beispiels für die automatische Anmeldung unter Linux

Erläuterung des Beispiels für die automatische Anmeldung unter Linux

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 melden Sie sich automatisch beim Switch an und speichern die Konfiguration unter Linux expect
  • Linux erwartet, dass ein Beispielcode für ein automatisches Anmeldeskript erreicht wird
  • Verwenden Sie das Expect-Skript, um die automatische Anmeldung eines Remotecomputers unter Linux zu realisieren
  • So implementieren Sie die automatische Anmeldung im Linux-Betriebssystem

<<:  So fügen Sie MySQL Indizes hinzu

>>:  jQuery+Ajax zum Erreichen eines einfachen Paging-Effekts

Artikel empfehlen

Vue verwendet Monaco, um Codehervorhebung zu erreichen

Mithilfe der Vue-Sprache und Elementkomponenten m...

MySQL 8.0.16 Installations- und Konfigurations-Tutorial unter CentOS7

Deinstallieren Sie die alte MySQL-Version (übersp...

Verwenden Sie nginx + sekundären Domänennamen + https-Unterstützung

Schritt 1: Fügen Sie dem primären Domänennamen vo...

Wie MySQL Milliarden von Datenverkehr unterstützt

Inhaltsverzeichnis 1 Master-Slave-Lese-/Schreibtr...

So analysieren Sie den SQL-Ausführungsplan in MySQL mit EXPLAIN

Vorwort In MySQL können wir den Befehl EXPLAIN ve...

Detaillierte Schritte zur Implementierung der Excel-Importfunktion in Vue

1. Front-End-geführte Implementierungsschritte De...

js implementiert das klassische Minesweeper-Spiel

In diesem Artikelbeispiel wird der spezifische Co...

Mysql-Timeline-Daten, um die ersten drei Daten desselben Tages zu erhalten

Erstellen von Tabellendaten CREATE TABLE `praise_...

Allgemeine Datumsvergleichs- und Berechnungsfunktionen in MySQL

Implementierung des Zeitvergleichs in MySql unix_...