Die letzten Tage hatten sich der squid und logrotate nicht besonders lieb. ;-) Logrotate hatte es offensichtlich nicht geschafft den squid zu stoppen, mit dem Ergebnis, dass jetzt im log-Verzeichnis ein paar leere Dateien liegen. Das tatsächlich Logging des squid läuft zwar noch, aber die zugehörige Datei ist inzwischen gelöscht. – Schade eigentlich. :shock:
Da aber der (alte noch laufende) squid-Prozess seine log-Datei noch offen hat, ist auch die Inode noch vorhanden :-) und dadurch kann man das File auch wieder herstellen. :cool:
Dazu ermitteln wir zuerst den Handle der Inode. In meinem Listing unten hat der (noch laufende alte) squid die Prozess-ID 21813 und das log-File den Handle 7. Mit diesem Wissen können wir dann den Inhalt des log-Files zurück schreiben, den alten squid-Prozess endgültig killen und den Proxy-Dienst neu starten:
# lsof -n -P | grep /var/log/squid
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
…
squid 21813 proxy 5u REG 8,23 575646 13 /var/log/squid/cache.log.1 (deleted)
squid 21813 proxy 7w REG 8,23 2394472971 14 /var/log/squid/access.log.1 (deleted)
# ls -l /proc/21813/fd/7
l-wx—— 1 proxy proxy 64 18. Okt 19:44 /proc/21813/fd/7 -> /var/log/squid/access.log.1 (deleted)
# cp -fp /proc/21813/fd/7 /var/log/squid/access.log.1
# squid -k kill
# /etc/init.d/squid start
Damit haben wir den Inhalt des bisherigen Logs gesichert und das neue log-File sollte sich wieder wie gewohnt füllen.
Hinterlasse einen Kommentar