/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)
Ответы
Ответ 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