
Ich habe ein Skript geschrieben, das ps -ef
alle 5 Minuten ausgeführt wird und dessen Ausgabe an eine Datei angehängt wird. Ich möchte, dass eine neue Datei erstellt wird, wenn die aktuelle Dateigröße 200 MB überschreitet. Kann mir jemand dabei helfen?
Antwort1
Sie könnten Ihrem Skript so etwas hinzufügen, bevor Sie die Datei anhängen.
FILE="your-file"
if test $(( $(stat -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
mv "$FILE" "$FILE-$(date +"%FT%T")"
fi
Antwort2
Schauen Sie sich das logrotate
Programm an. Erstellen Sie zunächst eine Konfigurationsdatei, beispielsweise /home/john/logrotate/ps.conf
, mit folgendem Inhalt: (vorausgesetzt, Sie speichern Ihre ps
Ausgabe in /home/john/logrotate/log/ps.log
)
/home/john/logrotate/log/ps.log {
size = 200MB
missingok
notifempty
}
Anschließend können Sie eine Crontab erstellen, die ausgeführt werden soll /usr/bin/logrotate /home/john/logrotate/ps.conf
. SieheMannfür weitere Optionen, beispielsweise Komprimierung.