Ich bin heute auf einer FreeBSD-Box auf dieses Problem gestoßen. Das Problem war, dass es ein Artefakt von war vi(nicht vim, nicht sicher, ob vimdieses Problem entstehen würde). Die Datei beanspruchte Speicherplatz, wurde jedoch noch nicht vollständig auf die Festplatte geschrieben.
Sie können das überprüfen mit:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
Hier werden alle geöffneten Dateien angezeigt und (numerisch über -n) nach der achten Spalte (Taste, -k8) sortiert , wobei die letzten zehn Elemente angezeigt werden.
In meinem Fall sah der letzte (größte) Eintrag so aus:
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
Dies bedeutete, dass der Prozess (PID) 12345 1,46 G (die achte Spalte geteilt durch 1024³) der Festplatte verbrauchte, obwohl dies nicht dubemerkt wurde. viEs ist schrecklich, extrem große Dateien anzuzeigen. sogar 100 MB sind dafür groß. 1,5G (oder wie groß diese Datei auch war) ist lächerlich.
Die Lösung war sudo kill -HUP 12345(wenn das nicht sudo kill 12345klappen kill -9würde, würde ich und wenn das auch scheitern würde, würde das gefürchtete ins Spiel kommen).
Vermeiden Sie Texteditoren für große Dateien. Beispielumgehungen für schnelles Überfliegen:
Angenommene angemessene Leitungslängen:
{ head -n1000 big.log; tail -n1000 big.log } |vim -R -
wc -l big.log |awk -v n=2000 'NR==FNR{L=$1;next}FNR%int(L/n)==1' - big.log |vim -R -
Unangemessen große Leitung (en) annehmen:
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -
Diese verwenden, vim -Ranstatt viewweil vimes fast immer besser ist ... wenn es installiert ist. Fühlen Sie sich frei, sie in viewoder vi -Rstattdessen zu leiten.
Wenn Sie eine solche große Datei sind Öffnen es tatsächlich zu bearbeiten, betrachten sedoder awkoder einem anderen programmatischen Ansatz.