hi, ich versuche gerade ein bash script zu schreiben, welches /var/log/messages nach ~/logs/`date +%j%Y%s`.log schreibt, danach /var/log/messages loescht und neu erzeugt. das kopieren funktioniert. mit rm /var/log/messaes loesche ich die datei und mit touch /var/log/messages erzeuge ich sie wieder. mit chmod 640 /var/log/messages setze ich dann wieder die gleichen rechte. bloss muss ich jetzt noch neu booten, damit wieder was reingeschrieben werden kann. was mache ich falsch? geht das loeschen leichter/eleganter? ciao sascha
"Sascha Andres" wrote:
ich versuche gerade ein bash script zu schreiben, welches /var/log/messages nach ~/logs/`date +%j%Y%s`.log schreibt, danach /var/log/messages loescht und neu erzeugt. das kopieren funktioniert. mit rm /var/log/messaes loesche ich die datei und mit touch /var/log/messages erzeuge ich sie wieder. mit chmod 640 /var/log/messages setze ich dann wieder die gleichen rechte. bloss muss ich jetzt noch neu booten, damit wieder was reingeschrieben werden kann. was mache ich falsch? geht das loeschen leichter/eleganter?
Ging neulich schon mal (und auch früher schon mehrmals) durch die Liste. Kurze Erklärung: Wenn ein Programm eine Datei erstmal geöffnet hat, dann arbeitet es mit dieser Datei. Daran ändert sich auch nichts, wenn die Datei umbenannt oder gelöscht wird, da sich die Änderung zunächst nur auf den Dateinamen, nicht aber auf die Datei selbst auswirkt. (Eine "gelöschte" Datei wird erst tatsächlich aus dem Dateisystem gelöscht, wenn kein Prozeß mehr darauf zugreift.) Richtige Lösung: Datei umbenennen und dem syslogd sagen, daß er seine Konfiguration neu laden soll (dabei öffnet er auch die Log-Dateien neu): mv /var/log/messages ~/logs/`date +%j%Y%s`.log touch /var/log/messages chmod 640 /var/log/messages rcsyslog reload Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/
participants (2)
-
Eilert Brinkmann
-
Sascha Andres