EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

Gericht - Online in der Cloud

Führen Sie Dish im kostenlosen OnWorks-Hosting-Provider über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist die Befehlszeile, die im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


Dish - Tool für den parallelen Systemadministrator mehrerer Hosts

ZUSAMMENFASSUNG


Schüssel [zu erhalten] ... -e Befehl {-G hosts_file | host_1 host_2 ...}
dip {-G hosts_file | -g "user@host_1 ..."} lokale_datei :remote_file
dip {-G hosts_file | -g "user@host_1 ..."} :remote_file lokale_datei

BESCHREIBUNG


Gericht - die Diligence-Shell führt Befehle auf mehreren Hosts über ssh/rsh/telnet aus, und auch
erleichtert die Verteilung von Dateien per scp/rcp, eine Remote-Passwortänderung usw. Es kann
Hosts im Parallelmodus verarbeiten.

OPTIONAL


-h Drucken Sie eine Hilfenachricht, die kurz alle Befehlszeilenoptionen beschreibt

-H, --Hilfe
Umfassende Hilfe mit Beispielen

--Version
Programmversion und Copyright-Nachricht drucken, dann beenden

-V Versionsnummer anzeigen und beenden

-C
Konfigurationsverzeichnis - $HOME/.dish ist Standard; In diesem Verzeichnis befinden sich
folgenden Konfigurationsdateien: 'hosts', 'rests', 'pass' und 'options'. Wenn benutzt,
diese Option muss das erste Argument in der Befehlszeilenzeichenfolge oder das zweite sein
eins, wenn `-D' gewählt wurde! Alternativ kann man das Konfigurationsverzeichnis angeben durch
Definieren der Umgebungsvariablen DISH_CONF.

-CC
Wie `-C' mit Fallback auf Standard, wenn lokale Konfiguration nicht gefunden wird; Dies bedeutet, dass,
falls die Dateien 'pass', 'options' oder 'rests' im angegebenen Verzeichnis fehlen,
aber solche Dateien existieren in $HOME/.dish, letzteres wird berücksichtigt. Das einzige
Ausnahme ist '$HOME/.dish/hosts' die ignoriert wird. Die Verwendung dieser Option ist
gleichbedeutend damit, das Verzeichnis in das gewählte zu ändern und dann `dish' auszuführen.

-c
Programm (Alias ​​"connector") und seine Optionen für die Verbindung mit der Fernbedienung
host(s) - zum Beispiel `rsh', während der erzeugte Prozess "rsh $host . ist ".
Ihr Standard-Connector ist `ssh'. Darüber hinaus wird durch die Verwendung eines entsprechenden textbasierten Clients
als Konnektor kann man auf verschiedene Arten von Hosts zugreifen - Switches, Datenbanken usw
auf.

-e
Remote-Befehl zum Ausführen; Sie kann auch durch die Umgebungsvariable DISH_CMD gesetzt werden.

-E
Befehl ausführen, bei dem auch der Verbindungsteil angegeben ist, zB "-E 'ssh $host
date'", was gleich "-e date" ist. Diese Option ist nicht kompatibel mit `-c' und
`-e'. Sie kann auch durch die Umgebungsvariable DISH_FUEXE gesetzt werden.

-t Pseudo-tty-Zuweisung in ssh erzwingen; Dies geschieht automatisch bei Passwort
zu navigieren.

-T
Timeout für die Befehlsausführung - Standard 30s (pro Host)

-TT
Gesamtzeitüberschreitung für die Befehlsausführung - Standard 300s (alle Hosts); Diese Option ist
nur sinnvoll, wenn Hosts nacheinander verarbeitet werden und die Gesamtverarbeitungszeit beträgt
sollte die angegebene Obergrenze nicht überschreiten.

-x
Regulärer Ausdruck für die Shell-Eingabeaufforderung; Dieser Wert gibt an, welcher Prompt sein soll
erwartet in der Programm-Shell nach dem Einloggen in ein System mit `telnet', `mysql',
`sqlplus' oder andere interaktive Kommandozeilen-Clients (siehe `-c'). Der Standardwert
ist `(%|\$|#|\>) ?$'.

-X
Regulärer Ausdruck für die Kennwortabfrage; Bei der Standardeinstellung wird die Groß-/Kleinschreibung nicht beachtet
Wert `Passwort: *$'.

-ANZEIGE
Regulärer Ausdruck für die ssh-Eingabeaufforderung zum Hinzufügen eines neuen Hostschlüssels - `connecting
(ja/nein)?.*' ist Standard

-AC
String mit der Antwort auf die ssh-Eingabeaufforderung zum Hinzufügen eines neuen Hostschlüssels - `ja' ist Standard

-g
Datei mit Liste der Hosts/IPs/Konten für das Ziel; Der Befehl wird ausgeführt am
diese Ziele. Die Standardhostdatei ist '$HOME/.dish/hosts' - normalerweise pro Zeile eins
Konto der Form "user@host" (wenn ssh Ihre Wahl für den Connector ist). Um zu
Join-Listen verwenden die Option wiederholt. Alternativ kann die Umgebungsvariable
DISH_HOSTS könnte verwendet werden, um die Zielhosts zu definieren, während in der angegebenen Zeichenfolge
sie müssen durch Leerzeichen getrennt werden. Indem Sie diese Option mit `-r' oder `-i' kombinieren, werden Sie
kann verschiedene Untergruppen von Zielhosts/-konten definieren.

-r
Datei mit Liste der auszuschließenden Hosts/Konten in Ruhe; Die Standardeinstellung ist
'$HOME/.teller/rests'. Ein "ruhender Gastgeber" ist ein Gastgeber, der von der ausgeschlossen wird
Ziele. Die Liste der ruhenden Hosts oder der Dateiname könnte auch durch die
Umgebungsvariable DISH_RESTS.

-i
Datei mit Liste von Hosts/Konten, die sich mit Zielhosts überschneiden; Es gibt kein
Standarddatei. Nur überlappende Hosts, die in dieser Liste enthalten sind und gleichzeitig
als Ziel definierte Zeit, verarbeitet.

-u
Benutzername - Standard ist Ihr lokaler Benutzername; Es kann auch definiert werden durch die
Umgebungsvariable DISH_USER. Intern ist der Wert über die Variable zugänglich
$user (siehe Beispiele). Außerdem ist es unerheblich, wenn Konten der Form
"user@host" werden verarbeitet, da sie bereits den Benutzernamen enthalten.

-p
Login-Passwort (-p "" = -pp = -a0) - Alias ​​"login Authentic" oder "a0"; Wenn nein
Authentifizierung für die Anmeldung erforderlich (es erscheint keine Benutzer- und keine Passwortabfrage), dann
verwenden Sie `/dev/null' als Passwort. Wenn der Benutzername abgefragt wird, ist das Passwort dennoch ein
leerer String, dann muss `/dev/empty' als Passwort angegeben werden. Der Wert dieser
Option könnte auch eine Passwortdatei sein (siehe `-P'). Schließlich kann man die
Passwort durch die Umgebungsvariable DISH_PASS.

-a
Zusätzliches Passwort zur Authentifizierung (-a "" = -aa = -a1) - Alias ​​"first
Authentic" oder "a1"; Innerhalb des Spawn-Prozesses, wenn ein Programm wie `smbmount', `su',
`ssh' usw. bittet um Authentifizierung, ihm wird das a1-Passwort übergeben. Dieses Passwort
kann auch durch die Umgebungsvariable DISH_PASS1 gesetzt werden.

-A
Ein weiteres Passwort für die Authentifizierung (-A "" = -AA = -a2) - Alias ​​"zweites Authentic"
oder "a2"; Wenn ein gestarteter Prozess nach einer Authentifizierung durch das a1-Passwort fragt
erneut für ein Passwort, dann wird a2 gesendet. Dieses Passwort kann auch vom
Umgebungsvariable DISH_PASS2.

-n
Neues Passwort bei Passwortänderung (-n "" = -nn = -ne)

-p0 Anmeldung ohne Authentifizierung - dasselbe wie `-p /dev/null'

-p1 Stellen Sie das a1-Passwort so ein, dass es dem Login-Passwort entspricht; Diese Option sollte nicht sein
zusammen mit `-p0' und `-a1' verwendet. Siehe Beispiel d) unten.

-P
Datei mit Passwort(en); Die Standard-Passwortdatei ist '$HOME/.dish/pass'. Es muss sein
nur für den Benutzer lesbar (Dateimodus 600 oder 700), sonst beendet das Programm mit
Fehler, aber siehe auch nächste Option. Jede Zeile in der Datei kann einen Passworteintrag enthalten
der Form: "Passwort:Benutzername:Hostname", alternativ
"Passwort:::Benutzername:::Hostname" oder "Passwort;;;Benutzername;;;Hostname". Man kann
Geben Sie eine Liste von Hosts an, die durch `,' oder `;' Zeichen. Reguläre Ausdrücke
für Hostnamen sind ebenfalls erlaubt (siehe Beispiel-Konfigurationsdateien im
Verteilung).

-m Ignorieren Sie die Zugriffsberechtigungen der Passwortdatei

-s [ ]
Sequentielle Verarbeitung von Hosts (Standardmodus); Wenn ein Zeitintervall (gemessen in
Gleitsekunden) angegeben ist, wartet das Programm diese Zeit
bevor Sie mit der Verarbeitung des nächsten Hosts in der Sequenz beginnen.

-F Spawn-Prozesse im Hintergrund - Fork und Disconnect; So sind alle Gastgeber
im Wesentlichen parallel verarbeitet! Es ist eine sehr mächtige Option - abhängig von Ihnen
RAM-Größe und Speicherauslastung, es sollte kein Problem sein, ein paar zu verarbeiten
Hunderte von Hosts parallel. Seien Sie auf jeden Fall vorsichtig - wenn Sie zu viele Hosts haben
der Liste, könnten Sie Ihr System belasten. Die Standardwerte des Hintergrunds
Prozesse werden nach '/dev/null' umgeleitet, Sie können jedoch `-l' oder `-L' zum Schreiben verwenden
die Ausgabe in Dateien. Siehe auch 'Bugs und bekannte Probleme' auf der Handbuchseite.

-f Generieren Sie Prozesse im Hintergrund, ohne die Verbindung zu tty zu trennen; Es ist das gleiche wie `-F'
wohingegen die Standardausgaben der erzeugten Prozesse an das Terminal gesendet werden. Auch der
Der Elternprozess wartet, bis seine Kinder fertig sind. Siehe auch „Fehler und bekannte Probleme“
auf der Handbuchseite.

-q Seien Sie leise - überspringen Sie die Ausgabe von Spawn und melden Sie sich an; Bei der Arbeit mit der sicheren Shell ist es
Es ist auch praktisch, `ssh' mit der Option `-q' zu verwenden.

-Q Seien Sie QUIET - überspringen Sie jede Ausgabe

-v Seien Sie ausführlich (Standard) - überschreibt `-q' und `-Q'

-l
Befehlsausgabe in Datei protokollieren; Die Ausgabe der erzeugten Prozesse wird an die angehängt
Datei.

-L
Schreiben Sie ein separates Protokoll für jeden Host, auf dem bezeichnet den Basisnamen des Logs
Datei. Der vollständige Name einer Protokolldatei ist definiert als " _ .Protokoll".

-j Notieren Sie den aufgerufenen Befehl in einer Journaldatei mit dem Namen '$HOME/.dish/journal';
Es speichert die Historie der ausgeführten Befehle und deren Ausführungszeit. Ein
Jedem Befehl ist eine eindeutige Kennung zugeordnet.

-J Zeichnen Sie auch den aufgerufenen Befehl und die erzeugten Prozesse auf; Schreiben Sie in die
Journal-Datei den ausgeführten Befehl sowie die einzelnen erzeugten Prozesse und deren
Zeitpunkt der Ausführung.

-o
Datei mit an das Programm übergebenen Befehlszeilenoptionen - Standard ist
'$HOME/.gericht/optionen'; Die Optionen müssen getrennt in die Datei geschrieben werden - eine pro
Leitung. Mit Hilfe dieser Datei kann man die Standardkonfiguration ändern: Gabel einrichten
auf den Standardmodus setzen, den Standardconnector ändern und so weiter. Bei der Arbeit in
"Kopiermodus", dh durch Aufrufen des Programms als 'dicp' ist '$HOME/.dish/options.dicp'
wird als Standardoptionsdatei angesehen.

-d Aktivieren Sie die Diagnoseausgabe von Expect (siehe `man Expect')

-D Debug-Modus (Trockenlauf); Drucken Sie Umgebungsvariablen, Konfigurationsdateinamen und
Befehle auszuführen und dann zu beenden. Diese Option sollte als erstes im Befehl verwendet werden
Linie.

Beispiele:


Beachten Sie, dass die Variablen $host und $user ausgewertet werden. Somit ändert sich $host
dynamisch seinen Wert an den tatsächlichen Host-/Kontonamen an, bevor ein neuer Prozess gestartet wird. Die
Das gleiche gilt für $user.

a) Überprüfen Sie das Datum und die Betriebszeit auf den Hosts 192.168.0.1 und 192.168.0.2

Gericht -e 'Datum \; Betriebszeit' [E-Mail geschützt] [E-Mail geschützt]

b) Verteilen Sie '.profile' und '.bashrc' an Gastkonten auf 'host1' und 'host2'

Gericht -E "scp $HOME/.profile $HOME/.bashrc guest@\$host:" host1 host2

or

dicp -e "$HOME/.profile $HOME/.bashrc guest@:" host1 host2

or

dicp -g "host1 host2" $HOME/.profile $HOME/.bashrc guest@:

or

dicp -g "guest@host1 guest@host2" $HOME/.profile $HOME/.bashrc :

c) Kopieren Sie entfernte '.profile'-Dateien in das lokale Verzeichnis auf localhost

dicp -g "guest@host1 guest@host2 admin@host2" :.profile .profile.\$host

Hier enthält der Name der Zieldatei (lokale Datei) den Namen des Remote-Kontos
damit die lokalen Dateien eindeutige Namen haben.

d) Loggen Sie sich mit `ssh' auf 'host1' ein und kopieren Sie von dort '.profile' nach 'host2'

Da die Liste der Hosts nicht leer sein darf, wird ein Dummy-Host verwendet, um die
Prozess. Die Option `-t' ist notwendig, um die Pseudo-tty-Zuweisung in `ssh' zu erzwingen,
andernfalls schlägt `ssh' bei der Anmeldung mit einem Fehler fehl. Ein zweites Passwort (a1-Passwort) ist
erforderlich für die scp-Authentifizierung auf 'host2':

Gericht -a '' -E 'ssh -t user1@host1 scp .profile user2@host2:' dummy_host

Falls das Passwort von 'user1' und 'user2' gleich ist, werden Sie nur gefragt
einmal für ein Login-Passwort für user1@host1, wenn Sie `-p1' verwenden:

Gericht -p1 -E 'ssh -t user1@host1 scp .profile user2@host2:' dummy_host

Oder äquivalent und einfacher:

Gericht -p1 -t -e 'scp .profile user2@host2:' user1@host1

e) Ersetzen Sie Zeilen mit `START_XNTPD=' durch `START_XNTPD="yes"' in /etc/rc.config

Dieser Befehl wird als Root-Benutzer auf jedem Host ausgeführt, der in 'Hosts.root' aufgeführt ist:

Gericht -u root -E 'ssh $user@$host "perl -pi -e
\"s/^START_XNTPD=.*\$/START_XNTPD=\\\"ja\\\"/g;\" /etc/rc.config"' -g Hosts.root

f) Konten von Benutzern auf einer Kündigungsliste einfrieren

Durch die Verwendung eines Skripts namens `FreezeUser.sh' werden alle Konten von Benutzern gefunden auf
'Terminate.User.lst' wird heute um 24:00 Uhr auf beiden Servergruppen eingefroren als
in den Dateien 'Hosts.1' und 'Hosts.2' definiert:

Gericht -E 'ssh root@$host "cat Terminate.User.lst | while read UN; do echo \"su -
admin -c \\\$HOME/bin/FreezeUser.sh \$UN\" | at 24:00 ; done"' -g Hosts.1 -g
Gastgeber.2

g) Remote-Konfigurationsdatei eines Automounters ausdrucken

Melden Sie sich als 'admin'-Benutzer auf Host 192.168.0.1 an, wechseln Sie zu 'root' und fangen Sie dann die Datei an
'/etc/auto.net' und drucken Sie das Datum aus. Die Option `-a' veranlasst das Programm zu fragen
Sie für das Root-Passwort auf dem Remote-Host:

Gericht -u admin -a '' -E 'rsh -l $user $host su -root -c \"cat /etc/auto.net\;
Datum\"' 192.168.0.1

h) Installieren Sie ein Paket auf Debian GNU/Linux-Hosts

Nachdem Sie einen Dateiserver über Samba gemountet haben, installieren Sie von dort ein Debian-Dish-Paket auf
alle laufenden Server, überspringen jedoch Hosts bei der Wartung. Drei verschiedene Passwörter sind
zur Authentifizierung benötigt - einer für die Anmeldung, der nächste für su-root und der letzte für
Einhängen des Dateiservers:

Schüssel -a0 -a1 -a2 -g Debian.up -r Debian.maint -e 'su - -c \"mount -t smbfs
//FILESERVER/Packages.Dir /mnt/smb ; dpkg -i /mnt/smb/dish_1.19.1_all.deb\"'

i) Überprüfen Sie, ob die Systemlast >2 ist, indem Sie die Standardkonfigurationsdateien 'hosts' und 'pass' verwenden

Gericht '(Betriebszeit |egrep \" (\[2-9\]|1\[0-9\])\\.\" && Hostname) |paste - -'

j) Abfrage einer MySQL-Datenbank auf dem Remote-Host 10.0.0.1

Gericht -pp -c 'mysql -p -u $user -h' -e 'mysql verwenden; Tabellen anzeigen; Benutzer beschreiben;' -u
Wurzel 10.0.0.1

k) Passwort auf allen Hosts/Konten gleichzeitig ändern

Wir gehen davon aus, dass die Liste der Benutzerkonten in der Datei 'Accounts.lst' enthalten ist,
wohingegen ein Eintrag in der Liste die Form "user@hostname" hat. Nach dem Befehl
Ausführung werden Sie zuerst nach dem Login-Passwort (altes Passwort) gefragt und dann
für das neue Passwort, das eventuell noch einmal richtig eingegeben werden muss:

Gericht -p '' -n '' -e passwd -g Accounts.lst

Oder alternativ alle Hosts gleichzeitig und leise verarbeiten:

Gericht -pp -nn -f -Q -e passwd -g Accounts.lst

Wenn Sie das Passwort ändern und `-nn' verwenden möchten, dann ist das a1-Passwort implizit
gleich dem Login-Passwort (a0-Passwort) setzen.

l) Ändern Sie das Passwort vom 'root'-Konto (verwenden Sie nicht die Option '-a0')

Wenn Sie das Root-Passwort für 'remotehost' ändern möchten, versuchen Sie Folgendes:

Gericht -nn -e passwd root@remotehost

Wie vorher, aber als Benutzer 'admin' (Login-Passwort) einloggen, dann wechseln zu
'root' (a1-Passwort) und schließlich das Root-Passwort aktualisieren:

Gericht -a1 -nn -e 'su -c passwd' admin@remotehost

Ändern des Passworts für 'admin' auf 'localhost', nach Anmeldung als 'root' über
`telnet' wird ausgeführt von:

gericht -nn -c telnet -u root -e 'passwd admin' localhost

Beachten Sie, dass für die Passwortänderung, wenn `-p ""' (oder entsprechend `-a0' oder `-pp') nicht ist
explizit verwendet wird, wird davon ausgegangen, dass `passwd' nicht nach dem alten Passwort fragt,
wie bei einer Passwortänderung durch 'root'. Das gleiche gilt auch, wenn Sie sich bei einem anmelden können
Konto, ohne ein Passwort einzugeben, aber dann fordert `passwd' Sie auf, das alte einzugeben -
Diese Situation tritt auf, wenn man einen SSH-Schlüssel für die Anmeldung verwendet, ohne
Passwort-Authentifizierung. Für ein solches Szenario ist die richtige Wahl der Optionen `-p0 -aa -nn'.

Bei richtig vorbereiteten Konfigurationsdateien in '$HOME/.dish' kann man bowl als
Distributed Shell für einen virtuellen Cluster von Hosts und führen Sie sie aus, ohne eine anzugeben
Programmparameter, sondern nur einen Befehl ausgeben, wie zum Beispiel `dish df -k /' oder `dicp
.Profil :'.

Als allerletzter Hinweis sollte man sich bewusst sein, dass bei der Authentifizierung per Passwort,
Der automatisierte Anmeldeprozess von Gericht basiert auf der Erwartung, dass die Anmeldeaufforderung an . gesendet wird
das Terminal wird den Regex-String ohne Berücksichtigung der Groß-/Kleinschreibung `Password: *$' enthalten (siehe aber auch
`-X'). Andernfalls schlägt die Authentifizierungsprozedur fehl.

Verwenden Sie das Gericht online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad