Gelöscht und nicht freigegeben ...
Einer der grossen Stolpersteine, die Nutzern im Weg liegen, sind Dateien, die sie gelöscht haben, deren Speicherplatz aber nicht freigegeben wurde.
Um das Problem zu verdeutlichen, erzeuge ich einmal eine 1 GB Datei:
$ dd if=/dev/zero of=/tmp/GB-Datei bs=1024 count=1048576
$ df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 118G 17G 88% /
In einem zweiten Fenster lese ich jetzt die Datei mit less
less /tmp/GB-Datei
Jetzt lösche ich die Datei im ersten Fenster:
rm /tmp/GB-Datei
df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 118G 17G 88% /
Der Speicherplatz wurde nicht freigegeben, weil noch ein Prozess die Datei benutzt. Um herauszufinden wer noch offene Dateien hat, hilft der Befehl lsof (list open files, Lektüre der man-page lohnt sich!).
lsof | grep deleted
less 2204 dirk 4r REG 8,1 1073741824 2621637 /tmp/GB-Datei (deleted)
ps -fp 2204
UID PID PPID C STIME TTY TIME CMD
dirk 2204 1807 7 17:26 pts/0 00:00:25 less /tmp/GB-Datei
Wenn jetzt das less-Kommando verlassen wird, ergibt sich:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 117G 18G 87% /
Einen Hinweis noch am Ende. Sehr häufig gibt es die Herausforderung, dass das Log eines Serverdienstes zu gross wird und man kein Wartungsfenster bekommt, um die Logdateien wegzuräumen.
Wenn wirklich dringend Platz geschaffen werden muss, kann man mit
cat /dev/null > logdatei
oder
> logdatei
Die Datei auf null Bytes verkleinern. dabei wird das Dateihandle nicht verändert, der Serverdienst logged also weiter in die gleiche Datei.
Um das Problem zu verdeutlichen, erzeuge ich einmal eine 1 GB Datei:
$ dd if=/dev/zero of=/tmp/GB-Datei bs=1024 count=1048576
$ df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 118G 17G 88% /
In einem zweiten Fenster lese ich jetzt die Datei mit less
less /tmp/GB-Datei
Jetzt lösche ich die Datei im ersten Fenster:
rm /tmp/GB-Datei
df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 118G 17G 88% /
Der Speicherplatz wurde nicht freigegeben, weil noch ein Prozess die Datei benutzt. Um herauszufinden wer noch offene Dateien hat, hilft der Befehl lsof (list open files, Lektüre der man-page lohnt sich!).
lsof | grep deleted
less 2204 dirk 4r REG 8,1 1073741824 2621637 /tmp/GB-Datei (deleted)
ps -fp 2204
UID PID PPID C STIME TTY TIME CMD
dirk 2204 1807 7 17:26 pts/0 00:00:25 less /tmp/GB-Datei
Wenn jetzt das less-Kommando verlassen wird, ergibt sich:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 142G 117G 18G 87% /
Einen Hinweis noch am Ende. Sehr häufig gibt es die Herausforderung, dass das Log eines Serverdienstes zu gross wird und man kein Wartungsfenster bekommt, um die Logdateien wegzuräumen.
Wenn wirklich dringend Platz geschaffen werden muss, kann man mit
cat /dev/null > logdatei
oder
> logdatei
Die Datei auf null Bytes verkleinern. dabei wird das Dateihandle nicht verändert, der Serverdienst logged also weiter in die gleiche Datei.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt