wie kann ich mithilfe von Syslog eine Beschädigung der Protokolldatei vermeiden, wenn mehrere Prozesse versuchen, in dieselbe Protokolldatei zu schreiben?

wie kann ich mithilfe von Syslog eine Beschädigung der Protokolldatei vermeiden, wenn mehrere Prozesse versuchen, in dieselbe Protokolldatei zu schreiben?

Ich wollte wissen, wie Syslog verwendet wird, wenn mehrere Prozesse versuchen, in dieselbe Protokolldatei zu schreiben, wie

for i in $var
do
some process >> logfile &
done
wait

Antwort1

Du kannst tun

some process | logger &

um Prozesse zu starten und deren Ausgabe an Syslog weiterzuleiten. Beachten Sie, dass die Standardfunktion „Benutzer“ und die Standardebene „Hinweis“ ist. Sie können sie mit der -pOption ändern.

Der Grund, warum dies problemlos funktioniert, ist, dass die Prozesse nicht direkt in die Zieldatei schreiben. Sie senden ihre Nachrichten an den Syslog-Daemon, der das Schreiben in die entsprechenden Dateien verwaltet. Soweit ich die Dinge verstehe, wäre die Atomizität zeilenbasiert, d. h. jede Ausgabezeile eines Prozesses würde ohne Störungen an Syslog gehen, aber mehrzeilige Nachrichten könnten Zeilen von anderen Prozessen eingemischt bekommen.

verwandte Informationen