Kürzlich habe ich ein Spark-Streaming-Programm in einem Hadoop-Testcluster ausgeführt und dann nohup ./execute.sh & verwendet, um das Programm im Hintergrund auszuführen. Nach nur wenigen Tagen war die Protokolldatei größer als G. Wenn ein Problem auftritt und ich die Protokolldatei anzeigen möchte, ist das Öffnen der Datei offensichtlich mühsam, daher habe ich versucht, die Dateigröße wie folgt zu reduzieren: 1. Erklärung des Nohup-Befehls: a. Syntax: nohup [Befehl] [Argumente] [&] b. Beschreibung: Der Befehl „nohup“ führt den durch den Parameter „Command“ und alle zugehörigen Arg-Parameter angegebenen Befehl aus und ignoriert dabei alle Auflegesignale. Verwenden Sie den Befehl nohup, um das Programm nach der Abmeldung im Hintergrund auszuführen. Um den Befehl nohup im Hintergrund auszuführen, fügen Sie am Ende des Befehls & (das Symbol für „und“) hinzu. Wenn Sie keine Umleitung angeben, wird das Protokoll standardmäßig in die Datei nohup.out im aktuellen Verzeichnis ausgegeben. Senden Sie es im Allgemeinen so: nohup ./execute.sh &, sodass sich das Protokoll oder die Ausgabe im aktuell ausgeführten Verzeichnis befindet.nohup.out Umleitung: nohup ./execute.sh > /home/xxx/log.log 2>&1 & : Auf diese Weise wird das Protokoll in das angegebene Verzeichnis umgeleitet 2. Teilen Sie nohup.out auf und verhindern Sie, dass es unbegrenzt wächst Der allgemeine Übermittlungsbefehl, den ich hier verwende, lautet: nohup ./execute.sh &, sodass im aktuellen Verzeichnis eine nohup.out-Datei vorhanden ist. Zu diesem Zeitpunkt können Sie eine Möglichkeit finden, nohup.out regelmäßig in mehrere kleine Dateien aufzuteilen, aber gleichzeitig sicherzustellen, dass nohup.out nicht unbegrenzt wächst (im Allgemeinen kann das Programm nicht unterbrochen werden): a. Teilen Sie jeden Tag (stellen Sie die Zeit nach Bedarf ein) das Protokoll des Vortages regelmäßig auf (wenn es beispielsweise etwa 1 g pro Tag sind, können Sie es jedes Mal in etwa 100 m aufteilen). b. Nach dem Aufteilen wird die Datei nohup.out gespeichert, um sicherzustellen, dass das neue Ausgabeprotokoll weiterhin in nohup.out ausgegeben wird Das Obige in der Schale current_date=`Datum -d "-1 Tag" "+%Y%m%d"` split -b 65535000 -d -a 4 nohup.out ./log/log_${current_date}_ Der Befehl split wird hier verwendet, um die nouhup-Datei entsprechend der angegebenen Größe aufzuteilen (65535000b sind etwa 60 MB, die Größe kann angepasst werden) und in das angegebene Format aufzuteilen (-d -a 4 mit einem 4-stelligen Suffix, beginnend bei 0000, für Details können Sie den Befehl split von Baidu verwenden), das endgültige Ausgabeformat ist log_20160610_0001 cat /dev/null > nohup.out (Dieser Befehl löscht sofort die Datei nohup.out und schreibt später weiter in die Datei) und leitet das Protokoll an /dev/null weiter. Dasselbe kann mit umgeleiteter Ausgabe erreicht werden, außer dass stattdessen der umgeleitete Dateiname verwendet wird. Definieren Sie diese Befehle in einer Shell-Datei und führen Sie sie regelmäßig jeden Tag aus. Auf diese Weise werden die täglichen Protokolle in mehrere Teile aufgeteilt, was bei der Fehlerbehebung und bei zu großem Protokollrückstand praktisch ist. Sie können historische Protokolle regelmäßig löschen und nur die letzten paar Tage behalten. Der Gesamtcode lautet wie folgt: dieser_Pfad=$(cd `dirname $0`;pwd) cd $diesen_Pfad echo $diesen_Pfad current_date=`Datum -d "-1 Tag" "+%Y%m%d"` echo $aktuelles_datum split -b 65535000 -d -a 4 /home/.../nohup.out /home/.../log/log_${current_date}_ cat /dev/null > nohup.out 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:
|
<<: JavaScript-Timer zum nahtlosen Scrollen von Bildern
>>: Mysql kann keine nicht aggregierten Spalten auswählen
Ereignisschleife in js Da JavaScript ein Single-T...
Die Voraussetzungen sind wie folgt: Unter dem Dom...
Der lokale Windows-Remotedesktop stellt eine Verb...
Inhaltsverzeichnis Fall Kontextwechsel-Overhead? ...
Inhaltsverzeichnis Ereignisschleife Ereignisschle...
Der Befehl „top“ ist der beste Befehl, den jeder ...
Cocos Creator-Version: 2.3.4 Demo-Download: https...
Inhaltsverzeichnis Hintergrund Lösung Neue Fragen...
Inhaltsverzeichnis 1. Subunternehmer für Miniprog...
Heutzutage beginnen immer mehr Front-End-Entwickle...
Inhaltsverzeichnis 1. MySQL 8.0.18 installieren 2...
Früher wusste ich nur, wie ich zum Springen das Na...
In diesem Artikelbeispiel wird der spezifische Co...
Eine direkte Verwendung von Breite und Höhe ist ni...
Inhaltsverzeichnis Vorne geschrieben Was genau is...