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

MySQL verwendet UNIQUE, um das Einfügen nicht doppelter Daten zu implementieren

SQL UNIQUE-Einschränkung Die UNIQUE-Einschränkung...

So verwenden Sie Docker+DevPi zum Erstellen einer lokalen PyPi-Quelle

Vor einiger Zeit musste ich für die Entwicklung h...

So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker

Docker installiert MySQL Docker-Suche MySQL. Such...

Führen Sie die Schritte zur Installation von MySQL 8.0.x unter Linux aus.

MySQL Einführung in MySQL MySQL war ursprünglich ...

So ändern Sie das MySQL-Passwort unter Centos

1. MySQL-Anmeldeeinstellungen ändern: # vim /etc/...

Benutzerzentriertes Design

Ich wurde in letzter Zeit häufig zu einer offensi...

Lösen Sie das Problem der Groß- und Kleinschreibung der Linux+Apache-Server-URL

Ich bin heute auf ein Problem gestoßen. Beim Eing...

Teilen Sie einige ungewöhnliche, aber nützliche JS-Techniken

Vorwort Programmiersprachen enthalten normalerwei...

Vue implementiert Beispielcode für Links- und Rechtsgleiteffekte

Vorwort Die bei der persönlichen tatsächlichen En...

Detaillierte Erklärung zur Verwendung der JavaScript-Paging-Komponente

Die Paginierungskomponente ist eine häufige Kompo...

Detaillierte Verwendung des Kubernetes-Objektvolumens

Überblick Volume ist die Abstraktion und Virtuali...

So löschen Sie ein Image in Docker

Der Befehl zum Löschen von Bildern im Docker laut...

So löschen Sie den MySQL 8.0-Dienst vollständig unter Linux

Bevor Sie diesen Artikel lesen, sollten Sie sich ...