Mini-Howto um die Logfiles in ein tagesaktuelles Logfile zu schreiben


benötigt: opt_cron (1.6.x) bzw. opt_easycron (2.x)

Angeregt von Wunsch #332 auf der fli4l-Wunschliste stelle ich hier meine kleine Bastellösung vor, damit fli4l jeden Tag (oder eine andere frei bestimmbare Zeitspanne) in ein neues Logfile schreibt und die alten Logfiles mit Datum ablegt.

Zuerst muß man (mein) opt_(easy)cron installieren.

Als nächstes erstellt man eine Datei mit z.B. folgendem Namen logrotate-syslog.sh
cp [hier kommt der Pfad des Logfiles rein - siehe config.txt plus Logfilename] [wieder der Pfad]$(date +[Logfilename]_%Y-%m-%d_%H-%M-%S); echo -n > [pfad+name]

Diese legt man dann in opt/usr/local/mybin/logrotate-syslog.sh bzw. opt/files/usr/local/mybin/logrotate-syslog.sh ab.

Bei mir sieht das dann so aus:
cp /platte/log/syslog /platte/log/$(date +syslog_%Y-%m-%d_%H-%M-%S); echo -n > /platte/log/syslog

Dann gibt man in der config.txt zum opt_cron folgendes ein

#------------------------------------------------------------------------------
# Optional package: CRON
#------------------------------------------------------------------------------
OPT_CRON='yes'                                          # cron: yes or no
CRON_N='1'                                              # cron: Anzahl
CRON_1_COMMAND='/usr/local/bin/logrotate-syslog.sh'     # cron: Befehl
CRON_1_TIME='59 23 * * *'                               # cron: Zeitpunkt: min h Tag Monat Wochentag


bzw. in der config/easycron.txt
#------------------------------------------------------------------------------
# Optional package: EASYCRON
#------------------------------------------------------------------------------
OPT_EASYCRON='yes'                                       # EASYCRON: yes or no
EASYCRON_NOMAIL='yes'                                    # EASYCRON: yes or no - Mail von cron unterdrücken
EASYCRON_N='1'                                           # EASYCRON: Anzahl
EASYCRON_1_CUSTOM=''                                     # EASYCRON: eigene Einstellungen wie Umgebungsvariablen
EASYCRON_1_COMMAND='/usr/local/bin/logrotate-syslog.sh'  # EASYCRON: auszuführender Befehl
EASYCRON_1_TIME='59 23 * * *'                            # EASYCRON: Zeitpunkt: min h Tag Monat Wochentag

Hier ist dann auch die Stelle, andere Zeitspannen einzutragen. Näheres in der Anleitung zum opt_cron.

Wichtig: Obwohl Ihr die Datei in .../mybin ablegt, liegt die Datei auf dem Router nachher in .../bin!


Stand: 13.12.2001 Stephan Manske

 

Klicken Sie hier, um die Seite auszudrucken.