Ich wurde beauftragt, ein automatisiertes Server-Hardening-Skript zu erstellen, und eine Sache, die sie benötigen, ist ein Bericht über die gesamte Ausgabe jedes ausgeführten Befehls. Ich möchte die Fehlermeldung in einem String speichern und in einer Textdatei anhängen.
Angenommen, ich habe folgenden Befehl ausgeführt:
/sbin/modprobe -n -v hfsplus
Die Ausgabe dieses Befehls auf meinem Computer wäre:
FATAL: Module hfsplus not found
Wie kann ich diese Fehlermeldung in einer Zeichenfolge speichern? Jede Hilfe wäre sehr dankbar. Vielen Dank!
Antworten:
Sie können dies tun, indem Sie den Befehl errors umleiten:
als ein Skript
oder
Wenn Sie den Fehler anhängen möchten, verwenden Sie
>>
statt>
Stellen Sie sicher, dass Sie den Fehler "Syntaxfehler in der Nähe von unerwartetem Token` & '" verwenden
2>&1
und nicht2> &1
vermeiden.quelle
Einfach als String im Bash-Skript speichern:
Dies kann ein bisschen besser sein, da Sie Meldungen sehen, wenn der Befehl ausgeführt wird:
quelle
Ich erfasse Fehler wie folgt
Wenn die Quelle fehlgeschlagen ist, werde ich den Fehler erfassen und protokollieren. log_warn ist nur eine einfache Funktion.
Übrigens benutze ich das in meinen Punktedateien
quelle
Zum Anhängen an eine Datei verwenden Sie
/sbin/modprobe -n -v hfsplus 2>> filename
quelle
Neuere Bash-Versionen (dh Bash 4.1+):
quelle
Um die Fehlermeldung in einer Variablen zurückzugeben, einfach;
quelle