Dies ist der Befehl shush, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
shush – Führen Sie einen Befehl aus und melden Sie optional seine Ausgabe per E-Mail
ZUSAMMENFASSUNG
pst [ -h | -V ]
pst [ -c dir ] [ -S | -s Einrichtung ] [ -vfmk ] Name [ ID ]
pst [ -c dir ] [ -H zu ] [ -R zu ] [ -T zu ] -C Name [ stdout [ stderr ]]
pst [ -i | -u | -r ] [ -c dir ]
BESCHREIBUNG
pst führt einen Befehl aus und meldet optional seine Ausgabe per E-Mail. Es ist eine nützliche Verpackung
rund um Cron-Jobs. Standardmäßig, pst erzeugt keine Ausgabe, wenn es als ausgeführt wird
Alles (wenn überhaupt) wird per Post gemeldet. Allerdings ist die Konfiguration ebenso kritisch
Fehler werden im Standardfehlerprotokoll und (optional) im Syslog gemeldet. Weil
unterbricht pst hat schwerwiegende Folgen, einschließlich des wahrscheinlichen Verlusts jeglicher Ausgabe von
Befehl werden die folgenden häufig verwendeten Signale ignoriert pst: SICHERN, SIGINT, SIGQUIT
und SIGTERM. Wenn man wirklich eine laufende Instanz von beenden möchte pst statt zu töten
Der laufende verwaltete Befehl SIGKILL kann verwendet werden und dient als Erinnerung daran, wie
Eine solche Maßnahme ist in der Regel unangemessen.
Damit ein Befehl ausgeführt werden kann mit pst, eine Konfigurationsdatei Name muss in der vorhanden sein
Konfigurationsverzeichnis ($HOME/.shush standardmäßig). Diese Datei definiert, wie der Befehl ausgeführt wird
sollte auch ausgeführt werden, wenn Berichte per E-Mail versendet werden sollen. Weitere Informationen zu verfügbaren
Konfigurationsparameter finden Sie im CONFIGURATION Abschnitt unten.
Möglicherweise sind zwei zusätzliche Konfigurationsdateien vorhanden: name.stdout und name.stderr (standardmäßig).
Diese Dateien werden verwendet, um die Standardausgabe bzw. den Standardfehler anzuzeigen.
vom Befehl erzeugt. Einzelheiten zur Verwendung finden Sie im COMMAND AUSGABE Abschnitt
unten mit.
Wenn das -C Option angegeben ist, pst lädt optional nur die Konfiguration
Analysieren Sie die Standardausgabe und den Standardfehler aus den angegebenen Dateien und schließlich
Erstellen Sie auf Wunsch Musterberichte. Dies kann auch zur Erstellung von Berichten verwendet werden, wenn pst
Beim Ausführen eines Befehls konnte der Vorgang nicht ordnungsgemäß beendet werden. (Die Standardausgabe und der Fehler von
(Der Befehl befindet sich normalerweise in Dateien unter /tmp.)
pst ist in der Lage, zurechtzukommen crontab(5) Einträge basierend auf vom Benutzer definierten Konfigurationen.
Dies kann auf zwei Arten erfolgen. Wenn eine Datei mit dem Namen „Zeitplans" existiert in der
Konfigurationsverzeichnis, dann wird es für Planungsinformationen gelesen. Jede Zeile sollte
einen einzelnen Eintrag enthalten, der drei durch Leerzeichen getrennte Felder enthält. Die Felder sind
(in der Reihenfolge) der Hostname, für den der Eintrag gilt, oder das Zeichen „*“, um alle einzuschließen
Hosts, die Konfiguration Nameund schließlich die Planungsinformationen im gleichen Format
wie es von der verwendet wird Zeitplans Parameter (siehe unten). Um eine anzugeben ID, benutzen Sie Name:ID wie die
zweites Feld. Wenn keine Datei mit dem Namen „Zeitplans", dann pst prüft die Konfiguration
Verzeichnis für Konfigurationsdateien und fügt sie dem aktuellen Benutzer hinzu crontab(5) Datei als
angegeben durch die enthalten Zeitplans Parameter (siehe unten). Dateien, deren Namen mit beginnen
das Zeichen „#“ oder das Ende mit dem Zeichen „~“ werden ignoriert.
OPTIONAL
-h Zeigen Sie eine kurze Hilfemeldung an.
-V Zeigt die Versionsinformationen an. Präfix mit -v um die Standardeinstellungen für die Kompilierungszeit anzuzeigen.
-c dir Geben Sie das Verzeichnis an, in dem Konfigurationen gespeichert werden.
-s Einrichtung
Definiert die Syslog-Funktion, die für die Protokollierung verwendet werden soll.
-S Deaktivieren Sie die Syslog-Protokollierung.
-v Kopieren Sie Informationsprotokollmeldungen in die Standardausgabe.
-f Schnellmodus: Beliebig konfiguriert zufällige Verzögerung wird ignoriert.
-m Überwachen und zeigen Sie die Standardausgabe und den Fehler des Befehls in Echtzeit an.
-k Behalten Sie die Ausgabeprotokolldateien des Befehls, anstatt sie nach Abschluss zu löschen.
-C Überprüfen Sie die Konfiguration, ohne einen Befehl auszuführen.
-H zu Senden Sie einen Beispiel-HTML-Bericht an den/die angegebenen Empfänger.
-R zu Senden Sie einen angereicherten Beispielbericht an den/die angegebenen Empfänger.
-T zu Senden Sie einen Beispieltextbericht an den/die angegebenen Empfänger.
-i Verwende crontab(1) um ein neues zu installieren crontab(5) Datei für den aktuellen Benutzer. Der Benutzer
darf noch keine haben crontab(5) Datei.
-u Verwende crontab(1) um die des aktuellen Benutzers zu aktualisieren crontab(5) Datei, die bereits muss
existieren.
-r Entfernen Sie alle von hinzugefügten Einträge -u Option vom aktuellen Benutzer crontab(5).
CONFIGURATION
pst Konfigurationsdateien bestehen aus einem Hauptabschnitt, Berichtsabschnitt(en) und Parametern.
Der Hauptabschnitt definiert globale Parameter sowie Standardeinstellungen für Berichte. Jeder Bericht
Der Abschnitt beginnt mit dem Namen des Berichts in Klammern. Zeilen, die mit dem beginnen
Zeichen „#“ werden ignoriert. Parameter sollten nur einmal angegeben werden. Falls angegeben
Bei mehreren Vorkommen werden alle bis auf das letzte Vorkommen ignoriert, sofern nicht anders angegeben.
Parameter werden mit der folgenden Syntax definiert:
Name=Wert
oder:
Name@hostname=Wert
oder:
Name%ID=Wert
oder schließlich:
Name@hostname%ID=Wert
Das zweite und vierte Format werden ignoriert, sofern nicht pst läuft auf dem angegebenen
Hostname. Das dritte und vierte Format ermöglichen die Definition mehrerer Instanzen einer einzigen
Konfigurationsdatei. Für solche Konfigurationsdateien ist eine Instanz erforderlich ID anzugeben
Befehl zum Laufen. Jede Konfigurationszeile, die das dritte oder vierte Format verwendet, wird ignoriert, wenn
ID Die in dieser Zeile gefundene Datei stimmt nicht mit der Instanz überein ID früher gelaufen pst.
Die folgenden Parameter können im Hauptbereich erscheinen:
Befehl
Der tatsächlich auszuführende Befehl. pst legt zwei Umgebungsvariablen fest, bevor es ausgeführt wird
Befehl: SHUSH_NAME eingestellt ist Name und SHUSH_ID eingestellt ist ID.
Config Standardmäßig wird der vollständige Pfad der Hauptkonfigurationsdatei verwendet. Die anderen zwei
Konfigurationsdateinamen werden durch Anhängen von „.stdout“ und „.stderr“ erhalten.
Suffixe an den Wert dieses Parameters.
sperren Wenn dieser Parameter festgelegt ist, gibt er Anweisungen pst um eine Sperrdatei zu erhalten, bevor Sie das ausführen
Befehlund definiert die Aktionen, die für den Fall ausgeführt werden sollen Sperrdatei wird von einem anderen gehalten
Verfahren. Das Format ist eine durch Kommas getrennte Liste von Aktionen. Gültige Aktionen sind: a
Zeitdauer (während der pst sollte einfach warten und weiter versuchen, das zu erhalten
Sperrdatei), die Zeichenfolge „abort“ (die darauf hinweist pst sollte sofort beendet werden
wenn die Sperrdatei existiert bereits), die Zeichenfolge „ignore“ (zeigt an, dass pst sollte
Ignorieren Sie eine vorhandene Sperrdatei), die Zeichenfolge „loop“ (um zu markieren, wo erneut begonnen werden soll
wenn alle Aktionen ausgeführt wurden) und die Zeichenfolge „notify=" gefolgt von einer E-Mail
Adressen, an die eine Benachrichtigungsmail gesendet werden soll. Aktionen werden im ausgeführt
in der Reihenfolge, in der sie bereitgestellt werden, und pst Ich werde ewig warten und versuchen, das zu bekommen Sperrdatei
sobald alle Aktionen ausgeführt wurden, es sei denn, die Zeichenfolge „loop“ ist definiert
Aktionen. Zeitdauern können in den Einheiten Wochen, Tage, Stunden usw. angegeben werden.
m(Inuten) oder s(Sekunden). Wenn keine Einheit angegeben ist, wird von Minuten ausgegangen.
Sperrdatei
Standardmäßig pst verwendet eine Datei, die sich im selben Verzeichnis wie die befindet
Konfigurationsdatei gespeichert und nach der Konfiguration und den Hostnamen benannt. Eine Alternative
Mit diesem Parameter kann der Dateiname angegeben werden.
lockmsg
Wenn diese Zeichenfolge festgelegt ist, wird sie als Betreff für E-Mail-Nachrichten mit Sperrbenachrichtigungen verwendet.
Der Standardwert ist „[%u@%h] **PENDING** %N [%t]“. Siehe die MAIL THEMA Abschnitt für
Details zum Format.
Weg pst Ändert die Umgebung nicht, außer um die festzulegen PATH Variable, wenn die Weg
Parameter eingestellt ist.
zufällige Verzögerung
Wenn dieser Parameter gesetzt ist, pst wird bis zur angegebenen Zeitspanne warten
Starten des Befehls, es sei denn, er wird mit dem aufgerufen -f. Gültige Zeiteinheiten sind: s(Sekunden),
m(Minuten), Stunden(unsere), Tage(Tage), Wochen(Wochen). Wenn keine Einheit angegeben ist, wird davon ausgegangen, dass sie vorhanden ist
Minuten.
Zeitplans
Dies definiert, wann dieser Befehl als Cron-Job ausgeführt werden soll crontab(5) kompatibel
Format. Mehrere Einträge können mit dem Zeichen „;“ angegeben werden. als Trennzeichen.
Einträge, denen das Zeichen „#“ vorangestellt ist, werden übersprungen. Dieser Parameter ist nicht vorhanden
direkt genutzt von pst um den Befehl auszuführen, wird aber von verwendet -i und -u Optionen.
sendmail
Dies kann verwendet werden, um den zum Senden von E-Mails verwendeten Befehl zu überschreiben.
Schale Standardmäßig die Bourne-Shell sh(1) wird verwendet, um die Befehl, was jede Shell zulässt
zu verwendende Syntax. Mit diesem Parameter kann eine alternative Shell definiert werden.
erklärteir
Dies definiert das Verzeichnis, in dem der Status von pst wird gespeichert und standardmäßig verwendet
Verzeichnis „.state“, in dem sich die Konfiguration befindet. Es wird ein Fehler generiert
wenn das Verzeichnis nicht existiert, es sei denn, diese Option wurde nicht gesetzt. Dies einstellen
Option auf eine leere Zeichenfolge wird dies verhindern pst vor dem Speichern seines Status. schlast(1)
verwendet diese Statusdateien, um über laufende Instanzen von zu berichten pst sowie vorherige
läuft.
syslog Dieser Parameter ist einzige verwendet von der -i und -u Optionen und hat keine weiteren Auswirkungen auf
pst. Es ermöglicht das Überschreiben der standardmäßigen Syslog-Funktion, die für die Protokollierung verwendet wird
zur Kompilierzeit definiert. Wenn es leer bleibt, wird die Verwendung von Syslog unterdrückt.
Timeout
Mit diesem Parameter kann man steuern, wie lange Befehl kann laufen. Es sollte ein sein
Durch Kommas getrennte Liste von Aktionen. Gültige Aktionen sind: eine Zeitdauer (während der
pst sollte einfach auf das warten Befehl zum Beenden), ein Signal (entweder „SIGNAME“
oder „-SIGNUMBER“), das an gesendet werden soll Befehl's Prozessgruppe, ein Signal
(entweder „=SIGNAME“ oder „=SIGNUMBER“), das an gesendet werden soll Schale zum Laichen verwendet
Befehl, die Zeichenfolge „Schleife“ (um zu markieren, wo nach allen Aktionen erneut begonnen werden soll
ausgeführt wurden) und der Zeichenfolge „notify=" gefolgt von Mailadressen, an die a
Es sollte eine Benachrichtigungsmail gesendet werden. Aktionen werden in der Reihenfolge ausgeführt, in der sie sind
bereitgestellt, und pst Ich werde ewig warten, wenn das Befehl Läuft noch einmal alle
Aktionen wurden ausgeführt, es sei denn, die Zeichenfolge „loop“ ist eine der definierten Aktionen.
Zeitdauern können in den Einheiten Wochen, Tage, Stunden, Minuten oder angegeben werden
s(Sekunden). Wenn keine Einheit angegeben ist, wird von Minuten ausgegangen.
Timeoutmsg
Wenn diese Zeichenfolge festgelegt ist, wird sie als Betreff für E-Mails mit Zeitüberschreitungsbenachrichtigungen verwendet
Mitteilungen. Der Standardwert ist „[%u@%h] **TIMEOUT** %N [%t]“. Siehe die MAIL THEMA
Weitere Informationen zum Format finden Sie im Abschnitt.
Die folgenden Parameter können an beliebiger Stelle in der Konfiguration erscheinen. Wenn in der angegeben
Im Hauptabschnitt definieren sie Standardeinstellungen, die für jeden Bericht gelten, für den die
Derselbe Parameter wurde nicht definiert.
zu, cc, bcc
Wohin der E-Mail-Bericht gesendet werden soll.
Fach
Betreff des Mailberichts. Siehe die MAIL THEMA Abschnitt für Einzelheiten dazu
Format.
Kopfzeile Zusätzliche E-Mail-Header. Beachten Sie, dass dieser Parameter zur Angabe wiederholt werden kann
mehrere Header. Allerdings nur Kopfzeilen aus dem Bericht (falls angegeben) oder aus dem
Der Hauptabschnitt wird für einen bestimmten Bericht verwendet.
Hostpräfix
Standardmäßig wird den angegebenen Betreffzeilen der Hostname in eckigen Klammern vorangestellt.
Mit diesem Parameter kann dieses Präfix angepasst werden. Eine positive ganze Zahl gibt an
wie viele Komponenten des vollqualifizierten Hostnamens angezeigt werden sollen. Ein Negativ
Ganzzahl gibt an, wie viele nachgestellte Komponenten des vollständig qualifizierten Hostnamens vorhanden sind
sollte getrimmt werden. Die Ganzzahl Null gibt an, dass das Präfix weggelassen werden soll.
Dieser Parameter wird ignoriert, wenn „Fach" enthält ein beliebiges „%“-Zeichen.
Benutzerpräfix
Standardmäßig wird den angegebenen Betreffzeilen der Benutzername in eckigen Klammern vorangestellt.
Mit diesem Parameter kann dieses Präfix deaktiviert werden. Jeder Wert ungleich Null zeigt an
dass der Benutzername angezeigt werden soll, während Null dazu führt, dass das Präfix weggelassen wird. Das
Parameter wird ignoriert, wenn der „Fach" enthält ein beliebiges „%“-Zeichen.
Möglichkeiten für das Ausgangssignal: (vorher "stderr")
Dieses definiert wie Kommandos Standard Möglichkeiten für das Ausgangssignal: und Standard Fehler sind gefangen und
berichtet zu Benutzer: „errfirst“, "gemischt", „outfirst“. Wann Verwendung von "gemischt",
name.stderr Konfiguration Datei is ignoriert. Wann Verwendung von „errfirst“ or „outfirst“,
Krankengymnastik Berichte Mai - dank One of Folgende XNUMX zusätzlich Optionen „outonly“
und „irrtümlich“.
Format E-Mail-Nachrichten, die die Ausgabe der senden Befehl kann in drei verschiedenen Varianten verschickt werden
Formate: „Text“ (Standard), „enriched“ Text oder „HTML“.
Größenbeschränkung
Standardmäßig ist die gesamte Ausgabe des Befehl wird in Mail-Berichten verschickt. Das
Der Parameter kann verwendet werden, um die Größe der in einem Bericht enthaltenen Ausgabe zu begrenzen. Notiz
dass die Gesamtgröße der gesendeten E-Mails größer sein wird, da diese Beschränkung keine Auswirkungen darauf hat
E-Mail-Header. Die Größe kann in den Einheiten m, k, b, c (MB, KB, Bytes) angegeben werden.
Wenn keine Einheit angegeben ist, wird davon ausgegangen, dass es sich um KB handelt. Ein Grenzwert von Null zeigt dies an
Die Ausgabe sollte nicht abgeschnitten werden.
if Nur wenn nein, wird ein Bericht versendet if Bedingung angegeben ist oder wenn die angegebene if
Bedingung ist wahr. Die Bedingungssyntax ermöglicht die üblichen logischen Operatoren
("||", "&&", "!"), Vergleichsoperatoren ("==", "!=", "<", "<=", ">", ">=") und
grundlegende arithmetische Operatoren („+“, „-“). Abgesehen von den durch die definierten Zählern
Konfiguration (siehe COMMAND AUSGABE Abschnitt unten) können die folgenden Variablen verwendet werden
verwendet werden:
$exit Wenn der Befehl normal beendet wurde, ist dies sein Exit-Code. Ansonsten ist es so
negativ und gibt die Signalnummer an, die den Befehl ausgelöst hat
beenden (z. B. -1 zeigt an, dass Signal Nummer 1 den Befehl veranlasst hat
beenden).
$Größe Ausgabegröße (in Bytes), dasselbe wie „$outsize + $errsize“
$übergroß
Größe (in Bytes) der Standardausgabe
$errsize
Größe (in Bytes) des Standardfehlers
$lines Anzahl der ausgegebenen Zeilen
$Umrisse
Anzahl der Standard-Ausgabezeilen
$errlines
Anzahl der Standardfehlerzeilen
$Laufzeit
Befehl Laufzeit (in Sekunden)
$utime Benutzerzeit, die von der verwendet wird Befehl
$stime Systemzeit, die von verwendet wird Befehl
$tty 1 wenn pst wird von einem Terminal aus ausgeführt (z. B. interaktiv), andernfalls 0.
MAIL THEMEN
Die "lockmsg""Timeoutmsg" und "Fach" Parameter können die folgenden Token enthalten
die wie folgt erweitert werden:
%% Der Charakter
%h Der Hostname
%
oder "%- "
A Teil- Hostname: A positiv Ziffer zeigt wie viele Komponenten of
voll qualifiziert hostname zu halten; a Negativ Ziffer zeigt wie viele
schleppend Komponenten of voll qualifiziert hostname zu trimmen.
%i Die Instanz ID
%n Die Konfiguration Name
%N Die Konfiguration Name und Instanz ID
%r Der Berichtsname
%t Die verstrichene Zeit.
%u Der Nutzername.
%U Die Benutzer-ID.
Wenn das Zeichen „%“ im Feld „Fach" Parameter, dann die
"Hostpräfix" und "Benutzerpräfix" Parameter werden ignoriert.
COMMAND AUSGABE
Nach dem Befehl beendet, pst wird den Inhalt der verwenden name.stdout und
name.stderr Dateien (sofern vorhanden), um sich die von der erzeugte Ausgabe anzusehen Befehl.
Diese Dateien folgen einem einfachen Format. Jede Zeile besteht aus einem einzelnen Zeichen (dem
Zählername), gefolgt von einem regulären Ausdruck.
Alle Zähler werden auf 0 (Null) initialisiert. Jede Ausgabezeile wird mit diesen abgeglichen
reguläre Ausdrücke, bis eine Übereinstimmung gefunden wird. Wenn eine Übereinstimmung gefunden wird, wird der zugehörige Zähler angezeigt
wird um eins erhöht. Diese Zähler können dann als Teil der Hauptkonfiguration verwendet werden,
in einem (n "if„Konfigurationsparameter, der die Entscheidung über das Versenden eines E-Mail-Berichts ermöglicht
basierend darauf, wie oft bestimmte reguläre Ausdrücke gefunden wurden.
Schließlich können reguläre Ausdrücke Unterausdrücke definieren, die in fett dargestellt werden
E-Mail-Berichte.
Zeilen, die mit dem Zeichen „#“ beginnen, gelten als Kommentare und werden ignoriert. Von
Standardmäßig werden standardmäßige reguläre Ausdrücke verwendet, es sei denn, die erste Zeile lautet „#pcre“.
In diesem Fall werden Perl-kompatible reguläre Ausdrücke verwendet.
VARIABLEN
HOME Wenn die -c Option wird nicht verwendet, pst sucht nach Konfigurationsdateien in
$HOME/.shush.
SHUSH_SENDMAIL
Falls definiert, sollte dies auf die zeigen sendmail(1) binär. Diese Variable überschreibt
das "sendmail"Konfigurationseinstellung und sollte mit Vorsicht verwendet werden.
TMPDIR Verzeichnis, in dem temporäre Dateien erstellt werden.
BEISPIEL
Die folgende Konfiguration führt täglich um 9:00 Uhr „shush -c /etc/shush -u“ aus und aktualisiert den Benutzer
(root) crontab:
command=shush -c /etc/shush -u
Zeitplan=0 9 * * *
lock=notify=root root-logs,abort
timeout=5m,loop,notify=root root-logs,15m
stderr=first
format=text
Betreff=Tägliches Crontab-Update
[Protokolle]
to=root-logs
[Leser]
if=$exit != 0 || $umrisse != 1 || $errsize > 0 || U
to=root
format=rich
Die zugehörige Konfiguration für die Standardausgabe lautet:
Oshush: Crontab aktualisiert\.$
U^.+$
und für den Standardfehler:
U^(.+)$
Während der Ausführung des Befehls wird eine Sperre gesetzt und E-Mails an „root“ und „root-logs“ gesendet, wenn
Die Sperre wird von einem anderen Prozess gehalten, wenn pst startet, in diesem Fall pst wird abbrechen. A
Mail wird auch an „root“ und „root-logs“ gesendet, wenn „shush -c /etc/shush -u“ für mehr ausgeführt wird
als 5 Minuten und alle 15 Minuten nach den ersten 5 Minuten.
Nach Abschluss wird die Ausgabe immer an „root-logs“ gesendet. Zusätzlich die Ausgabe
wird an „root“ gesendet, wenn die Bedingung „$exit != 0 || $outlines != 1 || $errsize > 0 ||“ erfüllt ist
U“ ist wahr. Damit diese Bedingung wahr ist, muss eine der folgenden Bedingungen wahr sein: der Ausgang
Der Code ist ungleich Null, die Standardausgabe des Befehls bestand nicht aus einer einzelnen Zeile, sondern wurde ausgegeben
Standardfehler oder schließlich ist der Zähler „U“ ungleich Null. Damit der Zähler „U“ nicht ist
Null, es muss eine andere Ausgabe auf der Standardausgabe als die Zeile „shush: crontab“ erfolgen
aktualisiert.". Abschließend wird jede Ausgabezeile angezeigt, die mit dem Standardfehler erstellt wurde
in Fettschrift in E-Mails, die an „root“ gesendet werden.
Nutzen Sie Shush online über die Dienste von onworks.net