Solaris: log files löschen

hiho,

ich möchte die logfiles von zwei kisten in den „Auslieferungszustand“ zurücksetzen, damit wir ohne Probleme sämtliche Zugriffe erfassen können und uns die alten nicht noch irgendwo herumschwirren (namentlich sollen alle einträge aus last verschwinden … mit dem löschen von /var/adm/lastlog scheint es ja nicht getan zu sein)

gruss

berni

Hallöchen berni

syslogd stoppen
cat /dev/null > /var/adm/lastlog
syslogd starten
sollte funktionieren. Wie /dev/null jetzt bei Solaris heißt kann ich dir leider nicht sagen, wirst es aber wohl wissen…hoff’ ich doch mal.

Grüße
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

syslogd stoppen
cat /dev/null > /var/adm/lastlog
syslogd starten

oder fuer cowboys (aus der huefte geschossen):

$ >/var/adm/lastlog

hintergrund: beim loeschen eines geoeffneten files passiert erstmal nicht viel. es wird zwar ein unlink durchgefuehrt (wenn der link count 1 war), aber der platz kann nicht freigegeben werden, und der prozess der auf der datei haengt kriegt davon nix mit, der sieht weiterhin die alte datei.
dies kann man umgehen, indem man das file nicht loescht, sondern einfach mit null bytes laenge ueberschreibt. dies wirkt sofort und gilt auch fuer prozesse, die das file noch in der mache haben. manche programme moegen das allerdings nicht und beschweren sich dann (ausprobieren), syslogd allerdings iirc nicht.

das obige elaborate wenn auch nicht falsche scriplet haelt erst den prozess, der auf /var/adm/lastlog haengt (syslogd) an, ueberschreibt dann mit null bytes (sogar mit superkorrekter syntax) und started den syslog wieder.

die neue zeile ueberschreibt im laufenden betrieb mit null bytes, was normalerweise auch reicht.

joachim