Подтвердить что ты не робот

/proc kcore файл огромен

После того, как вы столкнулись с DDOS-атакой, как-то /proc/kcore очень сильно, я использую небольшой класс php для проверки текущего дискового пространства и количества используемых.

Отображается следующее:

Total Disk Space: 39.2 GB
Used Disk Space: 98 GB
Free Disk Space: 811.6 MB

Мой вопрос: безопасно ли удалить файл /proc/kcore? Или есть решение по его нормальному размеру.

Размер файла /proc/kcore равен 140.737.486.266.368 байт

Я разместил свой сервер на DigitalOcean.

Если вам нужна дополнительная информация, пожалуйста, спросите;)

Большое спасибо!

Изменить...

df -h возвращает:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         40G   37G  755M  99% /
udev            993M   12K  993M   1% /dev
tmpfs           401M  224K  401M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none           1002M     0 1002M   0% /run/shm

du -shx возвращает:

du -shx *
8.7M    bin
27M     boot
12K     dev
6.3M    etc
4.8M    home
0       initrd.img
229M    lib
4.0K    lib64
16K     lost+found
8.0K    media
4.0K    mnt
4.0K    opt
du: cannot access `proc/3765/task/3765/fd/3': No such file or directory
du: cannot access `proc/3765/task/3765/fdinfo/3': No such file or directory
du: cannot access `proc/3765/fd/3': No such file or directory
du: cannot access `proc/3765/fdinfo/3': No such file or directory
0       proc
40K     root
224K    run
8.0M    sbin
4.0K    selinux
4.0K    srv
0       sys
4.0K    tmp
608M    usr
506M    var
0       vmlinuz

Результаты lsof | grep deleted:

mysqld     1356      mysql    4u      REG              253,0           0    1835011 /tmp/ib4jBFkc (deleted)
    mysqld     1356      mysql    5u      REG              253,0           0    1835012 /tmp/ibcE99rr (deleted)
    mysqld     1356      mysql    6u      REG              253,0           0    1835013 /tmp/ibrxYEzG (deleted)
    mysqld     1356      mysql    7u      REG              253,0           0    1835014 /tmp/ibK95UJV (deleted)
    mysqld     1356      mysql   11u      REG              253,0           0    1835015 /tmp/iboOi8Ua (deleted)
    nginx     30057       root    2w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
    nginx     30057       root    5w      REG              253,0 37730323404     268273 /etc/nginx/off (deleted)
    nginx     30057       root    6w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
    nginx     30058   www-data    2w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
    nginx     30058   www-data    5w      REG              253,0 37730323404     268273 /etc/nginx/off (deleted)
    nginx     30058   www-data    6w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
    nginx     30059   www-data    2w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
    nginx     30059   www-data    5w      REG              253,0 37730323404     268273 /etc/nginx/off (deleted)
    nginx     30059   www-data    6w      REG              253,0           0     789548 /var/log/nginx/error.log (deleted)
4b9b3361

Ответ 1

В ответ на ваш оригинальный вопрос:

"Сохраняется ли удаление файла /proc/kcore? Или есть решение? на получение его до нормального размера."

Нет, это не безопасно. Ну, я не хотел бы делать ставки, что бы произошло, если бы вы все равно удалили его!

Каталог /proc - это точка монтирования для procfs (запустите mount и посмотрите вывод, как показано ниже:)

proc on /proc type proc (rw)

procfs - это немного темной магии; никакие файлы в нем не являются реальными. Он выглядит как файловая система, действует как файловая система и является файловой системой. Но не тот, который хранится на диске (или в другом месте).

/proc/kcore В частности, это файл, который отображается непосредственно на каждый доступный байт в вашей виртуальной памяти... Я не совсем понимаю подробности; 128TB поставляется из Linux, выделяющего 47 бит бит из 64 бит, доступных для виртуальной памяти.

(Здесь обсуждается ограничение 128TB: https://unix.stackexchange.com/questions/116640/what-is-maximum-ram-supportable-by-linux)

В любом случае, откладывая ограничения Linux на жестком диске Linux, мы понимаем в контексте вашего вопроса следующее: /proc/kcore - это системный файл, предоставляемый файловой системой виртуальных файлов procfs, и не является реальным файлом.

Не удалять его; -)


Обновление: 2016-06-03

Мой ответ здесь периодически повторяется, поэтому я предполагаю, что люди все еще ищут объяснение того, что /proc/kcore.

Там есть полезная статья в Википедии под названием Все это файл, который дает немного фона. Если вам действительно интересно - загляните в Plan9 OS.

Надеюсь, мой оригинальный ответ достаточно объясняет сам kcore. Я предполагаю, что людям, читающим этот ответ, может быть интересно узнать о других файлах в /proc тоже - вот некоторые другие "интересные" примеры.

  • /proc/sys/* - это механизм для пользователя (вас) для чтения/записи деталей из ядра Linux (ядро и связанные с ним драйверы и т.д.). Симпатичным примером элемента r/w является " пересылка IP":

    Чтение: cat /proc/sys/net/ipv4/ip_forward (0 выключено, 1 включено)

    Пишите: echo 1 > /proc/sys/net/ipv4/ip_forward

    Как и в случае с kcore, это не настоящий файл. Но он действует как один. Поэтому, когда вы пишете на него, вы фактически меняете настройки программного обеспечения, а не байты на диске.

  • /proc/meminfo и /proc/cpuinfo доступны только для чтения. Вы можете cat или less их, или fopen() из своего собственного приложения. Они показывают вам детали вашего оборудования (память и процессор).

  • /proc/[0-9]+ - это фактически идентификаторы процессов на вашем компьютере! Это (IMHO), безусловно, самая крутая особенность /proc. Внутри них вы найдете больше поддельных файлов, таких как cmdline, которые расскажут вам, какая команда была использована для запуска процесса.

Наконец, есть еще несколько примеров "интересных файловых систем", например /proc. Есть чисто в памяти и "user-space" чтобы назвать только два. Опять же, эти (вообще говоря) не потребляют никакого реального дискового пространства, хотя такие инструменты, как df и ls, могут сообщать о реальных размерах файлов.

Ответ 2

Полностью безопасно запускать команду sudo rm/proc/kcore. Он просто скажет rm: cannot remove '/proc/kcore': Operation not permitted.

Все файлы в /proc самом деле не существуют на вашем жестком диске, поэтому их нельзя удалить. Эти файлы представляют информацию о системе. Например, когда вы выполняете ls/proc, вы запрашиваете ядро для списка процессов в системе. Если вы запустите ls -l/proc/22/exe, вы запрашиваете ядро путь к файлу исполняемого файла процесса 22. И так далее.

Ответ 3

Похоже, вам нужно очистить диск от файлов, которые удалены, но зарезервированы. Вы можете использовать команду 'tune2fs' с чем-то вроде:

tune2fs -m 1 /dev/<drive>

Это должно освободить зарезервированное пространство блока и предоставить вам доступ к зарезервированному дисковому пространству привилегированных процессов. Обратите внимание, что 1 - это процент, который впоследствии будет выделен привилегированным процессам, делайте это только в том случае, если у вас достаточно дискового пространства для критических процессов, таких как syslog или ssh.

ПРИМЕЧАНИЕ. Вы никогда не получите свободного места на диске, удалив файлы из /proc. Это виртуальная файловая система, которая не имеет ничего общего с пространством на жестком диске.

Ответ 4

пожалуйста, проверьте ваше пространство файла журнала. Я удалил все журналы ошибок и получил доступ к файлам журналов, и мой сайт работает.

Используйте эту команду, чтобы проверить, какая папка занимает больше места.

cd /
sudo du -sh * 2>/dev/null | sort -h