Wiederherstellen gelöschter Dateien (squid-log)

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.

Tags :

About the Author

Uwe

Uwe beschäftigt sich seit vielen Jahren mit Linux und Webdesign, seit 2006 benutzt er WordPress zum schreiben eines 'Tagebuchs'. Tätig ist Uwe als Webmaster und Netzwerkadministrator, er arbeitet und lebt seit 2001 in Oberhausen. In seiner Freizeit ist er viel mit dem Mountainbike und dem Fotoapparat unterwegs.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.