Hallo zusammen,
ich möchte die Ausgabe von ein paar Konsolenbefehlen in einer Art Logfile sammeln. Nun stellt Debian ja bereits diverse Funktionen zum Loggen bereit, wie z.B. das automatische Löschen von veralteten Logs, bzw. Größenbegrenzungen.
Wie gestalte ich nun mein Script, bzw. den Cronjob, dass mein "Logfile" (nennen wir es mal Mein_Log.log) von Debian automatisch so behandelt wirt, das nur die letzten 24 Stunden vorgehalten werden und alles ältere automatisch verworfen wird?
Habe schon eine Menge über "rsyslogd" (nutze Lenny) gelesen, aber ob das jetzt das richtige ist und wie ich es damit überhaupt hinbekommen soll ist mir nicht klar.
Gruß
Altmeister
Bashscript soll in Logfile schreiben
-
- Beiträge: 2
- Registriert: 15.10.2009 18:42:56
Re: Bashscript soll in Logfile schreiben
Hallo und willkommen,
geht es dir jetzt um das Archivieren/löschen von Logs, oder das schreiben?
Schreiben:
Kannst du einfach Umleiten. Beispiel:
Damit wird die Ausgabe von dem Programm "meinbefehel" in die Log Datei "/var/log/meinbefehel.log" geschrieben.
Archivieren/Löschen:
Schau dir mal logrotate ( man logrotate ) an. Damit wird so etwas erledigt. Dazu auch die schon vorhandenen Konfigs unter "/etc/logrotate.d".
Gruß
geht es dir jetzt um das Archivieren/löschen von Logs, oder das schreiben?
Schreiben:
Kannst du einfach Umleiten. Beispiel:
Code: Alles auswählen
/bin/meinbefehel >> /var/log/meinbefehel.log
Archivieren/Löschen:
Schau dir mal logrotate ( man logrotate ) an. Damit wird so etwas erledigt. Dazu auch die schon vorhandenen Konfigs unter "/etc/logrotate.d".
Gruß
-
- Beiträge: 827
- Registriert: 26.05.2008 12:04:54
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Nörten-Hardenberg
-
Kontaktdaten:
Re: Bashscript soll in Logfile schreiben
Also für mich klingt eine simple Lösung so.
1.Richte einen einfachen Cron ein, der täglich ausgeführt wird und dein Skript damit startet und laufen lässt.
2.Leite die Ausgaben deines Skripts in die Logdatei um.
Somit kannst du einfach deine Einträge der letzten 24 Stunden loggen und hast auch nur diese.
Dazu muss man nicht einmal mit rsyslog rumspielen.
Mit dem Inhalt deines Skripts kann man hier bestimmt auch deinem Problem besser auf den Grund gehen und dir zeigen was angepasst werden müsste.
Martin
1.Richte einen einfachen Cron ein, der täglich ausgeführt wird und dein Skript damit startet und laufen lässt.
2.Leite die Ausgaben deines Skripts in die Logdatei um.
Somit kannst du einfach deine Einträge der letzten 24 Stunden loggen und hast auch nur diese.
Dazu muss man nicht einmal mit rsyslog rumspielen.
Mit dem Inhalt deines Skripts kann man hier bestimmt auch deinem Problem besser auf den Grund gehen und dir zeigen was angepasst werden müsste.
Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
-
- Beiträge: 2
- Registriert: 15.10.2009 18:42:56
Re: Bashscript soll in Logfile schreiben
Ok, das Skript sollte eigentlich nur Die CPU und HDD Temps loggen um zu sehen ob die Kühlung ausreicht. Das ganze dann von 0 Uhr bis 23:50 Uhr alle 10 Minuten ein Eintrag und pro Tag ein Log. 7 Tage aufbewahren, was älter ist löschen.
Das Skript sollte in etwas so aussehen: (noch nicht getestet)
Das Skript sollte in etwas so aussehen: (noch nicht getestet)
Code: Alles auswählen
#!/bin/bash
logfile="/var/log/Temperatur_$(date -Is).log
core0="$(lm-sensors | grep core0)"
core1="$(lm-sensors | grep core1)"
hdd1=$(hddtemp /dev/sdb5)"
hdd2=$(hddtemp /dev/sdb6)"
function main() {
echo "$(date +%T):"
echo " CPU:
echo " $core0"
echo " $core1"
echo " Festplatten:"
echo " $hdd1"
echo " $hdd2"
}
main >$logfile