2

Недавно у меня была проблема с файлом .xsession-errors - он стал очень большим (> 90 ГБ) и занял все дисковое пространство: Как я могу проверить, что занимает дисковое пространство в /tmp? , Я очистил его командой > .xsession-errors но через час он снова стал большим. Поэтому я удалил его (rm .xsession-errors) - это помогло, потому что оно не было воссоздано, но снова через час исчезло дисковое пространство - теперь больше нет .xsession-errors , но я не знаю, где находится память:

 df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      106640456 101223392         4 100% /
udev             8166744         8   8166736   1% /dev
tmpfs            3270224       972   3269252   1% /run
none                5120         0      5120   0% /run/lock
none             8175552       152   8175400   1% /run/shm

du -sc * .[^.]* | sort -n
0       initrd.img
0       initrd.img.old
0       proc
0       sys
0       vmlinuz
0       vmlinuz.old
4       cdrom
4       lib64
4       media
4       mnt
4       selinux
8       dev
12      srv
16      lost+found
68      tmp
1124    run
3396    lib32
5164    .rpmdb
5540    root
8888    sbin
9120    bin
17132   etc
106080  opt
116956  boot
861908  lib
3530584 usr
3821836 var
13371260        home
21859112        total

Таким образом, используется около 100 ГБ, но выполняется du -sc * .[^.]* | sort -n в корневом каталоге находит только ~ 21 ГБ - так, что занимает 80 ГБ ?? Как это проверить? Я подозреваю, что когда я удалил файл .xsession-errors, ошибки были перенаправлены куда-то еще, но куда?

lsof | ( grep -n 1 '.' ; grep '.xsession-errors' )
    gnome-ses  2748    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-set  2797    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    compiz     2825    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    vino-serv  2836    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    nm-applet  2837    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    bluetooth  2838    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-fal  2839    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    polkit-gn  2844    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    nautilus   2851    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    sh         2901    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gtk-windo  2902    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-ter  3169    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gdu-notif  3235    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    telepathy  3253    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    gnome-scr  3276    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    update-no  3508    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    deja-dup-  3964    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)
    update-ma 25719    someuser    2w      REG                8,1 80997797888    4194313 /home/someuser/.xsession-errors (deleted)

Вы были правы - этот файл (.xsession-errors) по-прежнему занимает 80 ГБ! Проблема в том, что многие программы используют его - я смотрел в интернете, и у многих людей была эта проблема (ошибка), но лучшее решение, которое я нашел, - это установить задание cron для усечения этого файла, когда он слишком большой ... Но я не могу получить доступ к файлу сейчас, потому что он удален - я попытался создать еще один файл .xsession-errors (очень наивно;), но это уже не ТО ЖЕ файл ... Теперь мой вопрос заключается в том, как я не могу удалить этот удаленный файл или хотя бы восстановить его, чтобы обрезать его ...

1 ответ1

8

Если вы удалите открытый файл, сам файл не будет удален, только его имя. Пространство освобождается только тогда, когда файл закрыт тем процессом, который пишет в него, поэтому удаленный файл продолжает существовать и расти.

Если процесс все еще имеет файл, открытый после того, как вы «удалили» его, вы можете узнать, какой процесс его использует:

lsof | ( grep -n 1 '.' ; grep '.xsessions-errors' )

Вывод будет примерно таким:

COMMAND                PID   USER  FD   TYPE  DEVICE  SIZE/OFF     NODE  NAME
problematic-program   1234  auser   4u   REG   252,2         0  1967438  /home/auser/.xsession-errors (deleted)

Чтобы увидеть, сколько места занимает «удаленный» файл:

ls -l /proc/1234/fd/4

Где 1234 - PID, показанный выше, а 4 - FD. После того, как вы знаете проблемную программу, вы можете устранить неполадки оттуда.


Используя lsof для определения списка программ, в которых есть .xsession-errors открытые для записи, вам необходимо закрыть и перезапустить каждую из этих программ. При необходимости вы можете выключить и перезагрузить систему, хотя в этом нет особой необходимости.

Если файл журнала быстро растет, идеальным решением будет выяснить, почему и решить эту проблему (например, отсутствуют некоторые ресурсы). Однако, если вы предпочитаете, вы можете перенаправить ошибки в /dev /null, используя метод, описанный на https://askubuntu.com/questions/93718/how-do-i-prevent-xsession-errors-from-eating-disk-space

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .