CentOS verwendet expect, um Skripte und Befehle remote in Stapeln auszuführen

CentOS verwendet expect, um Skripte und Befehle remote in Stapeln auszuführen

Manchmal müssen wir Server stapelweise bedienen, z. B. eine Datei auf den Server hochladen, Software installieren, einen Befehl und ein Skript ausführen, Dienste neu starten, Server neu starten usw. Wenn wir sie einzeln manuell bedienen, ist das sehr umständlich und eine Verschwendung von Arbeitskraft.

Zu diesem Zeitpunkt können wir expect verwenden, um Anweisungen an den Zielserver zu senden und Batch-Operationen zu implementieren.

Das folgende Beispiel kopiert eine Datei auf CentOS stapelweise zu anderen Dienstanbietern und führt den entsprechenden Befehl aus

1. Installieren Sie expect auf centos

yum installieren erwarten

2. Schreiben Sie das erwartete Skript copyfilebatch.sh

Das folgende Skript kopiert eine rc.local-Datei auf die Server mit den Intranet-IP-Adressen 192.168.0.102 bis 192.168.0.112. Führen Sie nach erfolgreichem Kopieren den Befehl chmod aus, um die Server jeweils neu zu starten.

#!/usr/bin/expect -f
Passwort festlegen Root-Passwort

für {set i 102} {$i <= 112} {incr i} {
  setze IP "192.168.0.$i"
  setzt "$ip"


  spawn ssh -o StrictHostKeyChecking=no $ip
  Zeitüberschreitung 3 festlegen
  Erwarte „root@$ip’s Passwort:“
  Zeitüberschreitung 3 festlegen
  sende "$password\r"
  Zeitüberschreitung 3 festlegen
  sende "exit\r"


  spawn scp /home/install/rc.local root@$ip:/etc/rc.d/rc.local
  Zeitüberschreitung 3 festlegen
  Erwarte „root@$ip’s Passwort:“
  Zeitüberschreitung 3 festlegen
  sende "$password\r"
  Zeitüberschreitung 3 festlegen
  sende "exit\r"




  SSH-Root@$IP erzeugen

  erwarten {
  "*ja/nein" { sende "ja\r"; exp_weiter}
  "*Passwort:" { sende "$passwort\r" }
  }
  erwarten "#*"

  #Auszuführender Befehl: sende "chmod +x /etc/rc.d/rc.local\r"
  sende "reboot\r"
  sende "exit\r"
  Erwarte EOF
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Lösung für die Meldung „Syntaxfehler: Unerwartetes Dateiende“ beim Ausführen eines .sh-Skripts in CentOS7
  • Verwenden Sie crontab, um das Skript zur regelmäßigen Ausführung des JAR-Programms in centOS6 auszuführen
  • CentOS 6.5-Konfiguration: SSH-Anmeldung ohne Schlüssel zur Ausführung des PSSH-Befehls – Erläuterung
  • So führen Sie geplante PHP-Aufgaben in CentOS7 aus
  • Detaillierte Erläuterung der Verwendung von crontab zum regelmäßigen Ausführen von Aufgaben unter CentOS 7
  • Beheben Sie das Problem, dass /etc/rc.local beim Starten von centos7 nicht ausgeführt wird
  • So richten Sie eine geplante Aufgabe ein, um ein bestimmtes Skript in CentOS auszuführen

<<:  Beispielanalyse der MySQL-Benutzerrechteverwaltung

>>:  Lernen Sie, wie Sie Uniapps und Miniprogramme (Bilder und Text) untervergeben

Artikel empfehlen

So zählen Sie das Datum mit Bash herunter

Sie möchten wissen, wie viele Tage es bis zu eine...

Beispielcode zum Konvertieren von HTML-Tabellendaten in das JSON-Format

Die Javascript-Funktion zum Konvertieren von <t...

Zwei Möglichkeiten zum Löschen von Tabellendaten in MySQL und ihre Unterschiede

Es gibt zwei Möglichkeiten, Daten in MySQL zu lös...

MySQLs konzeptionelles Verständnis verschiedener Sperren

Optimistisches Sperren Optimistisches Sperren wir...

JavaScript zum Implementieren einer zufälligen Namensaufruf-Webseite

JavaScript schreibt eine zufällige Roll-Call-Webs...

Implementierung von Nginx Hot Deployment

Inhaltsverzeichnis Semaphor Nginx-Hot-Bereitstell...

Zusammenfassung der Benutzererfahrung

Unabhängig davon, ob Sie an Software oder Websites...

IDEA verwendet das Docker-Plugin (Tutorial für Anfänger)

Inhaltsverzeichnis veranschaulichen 1. Aktivieren...

Was ist nach der Installation von Ubuntu 20.04 zu tun (Anleitung für Anfänger)

Ubuntu 20.04 wurde veröffentlicht und bringt viel...

MySQL-Lösung zur funktionalen Indexoptimierung

Bei der Verwendung von MySQL führen viele Entwick...