128t - / proc kcore archivo es enorme
/proc/kcore que es (4)
Después de experimentar un ataque DDOS, de alguna manera /proc/kcore
es muy grande, uso una pequeña clase de PHP para verificar el espacio en disco actual, y cuántos se han utilizado.
Muestra lo siguiente:
Total Disk Space: 39.2 GB
Used Disk Space: 98 GB
Free Disk Space: 811.6 MB
Mi pregunta es, ¿es seguro eliminar el archivo /proc/kcore
? ¿O hay una solución para conseguirlo a un tamaño normal?
El tamaño del archivo de /proc/kcore
es 140.737.486.266.368 bytes
He alojado mi servidor en DigitalOcean.
Si necesita más información para saber, por favor pregunte;)
¡Muchas gracias!
Editar...
df -h
devuelve:
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
devuelve:
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
Resultados de lsof | grep deleted
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)
En respuesta a su pregunta original:
"¿Se guarda para eliminar el archivo
/proc/kcore
? ¿O existe una solución para obtener un tamaño normal?"
No, no es seguro. Bueno, ¡no me gustaría apostar qué pasaría si lo eliminaras de todos modos!
El /proc
es el punto de montaje para procfs (ejecute mount
y vea la salida como se muestra a continuación)
proc on /proc type proc (rw)
Procfs es un poco de magia oscura; No hay archivos en él son reales. Parece un sistema de archivos, actúa como un sistema de archivos y es un sistema de archivos. Pero no uno que se almacena en el disco (o en otro lugar).
/proc/kcore
específicamente es un archivo que se asigna directamente a cada byte disponible en su memoria virtual ... No tengo absolutamente claro los detalles; El 128TB proviene de Linux que asigna 47 bits de los 64 bits disponibles para la memoria virtual.
(Hay una discusión sobre el límite de 128TB aquí: https://unix.stackexchange.com/questions/116640/what-is-maximum-ram-supportable-by-linux )
De todos modos, dejando de lado los límites de la memoria virtual codificada de Linux, lo que entendemos en el contexto de su pregunta es esto: /proc/kcore
es un archivo del sistema, proporcionado por el sistema de archivos procfs virtual, y no es un archivo real.
No lo borres ;-)
Actualización: 2016-06-03
Mi respuesta aquí sigue siendo votada periódicamente, por lo que asumo que la gente todavía está buscando una explicación de qué es /proc/kcore
.
Hay un artículo útil de Wikipedia titulado Todo es un archivo que da un poco de historia. Si realmente tienes curiosidad, echa un vistazo al sistema operativo Plan9.
Espero que mi respuesta original explique suficientemente kcore
. Estoy especulando que las personas que leen esta respuesta también pueden tener curiosidad acerca de otros archivos en /proc
, así que aquí hay otros ejemplos "interesantes".
/proc/sys/*
es un mecanismo para que el usuario (usted) lea / escriba detalles desde el corazón de Linux (el kernel y los controladores asociados, etc.). Un lindo ejemplo de artículo ar / w es " reenvío de IP ":Lee:
cat /proc/sys/net/ipv4/ip_forward
(0
está desactivado,1
está activado)Escribe:
echo 1 > /proc/sys/net/ipv4/ip_forward
Al igual que con
kcore
, este no es un archivo real. Pero actúa como uno. Por lo tanto, cuando escribe en él, en realidad está cambiando la configuración del software en lugar de los bytes en un disco./proc/meminfo
y/proc/cpuinfo
son de solo lectura. Puedescat
oless
, ofopen()
desde tu propia aplicación. Te muestran detalles sobre tu hardware (memoria y CPU)./proc/[0-9]+
son en realidad identificaciones de proceso que se ejecutan en su máquina. Estos son (IMHO) por mucho la característica más genial de/proc
. Dentro de ellos encontrarás más archivos falsos comocmdline
que te dirán qué comando se utilizó para iniciar el proceso.
Finalmente hay otros ejemplos de "sistemas de archivos interesantes", como /proc
. Hay puramente en memoria y "user-space" para nombrar solo dos. Nuevamente, estos (en términos generales) no consumen ningún espacio de disco real, aunque herramientas como df
y ls
pueden reportar tamaños de archivos reales.
Es completamente seguro ejecutar el comando sudo rm /proc/kcore
. Simplemente dirá que rm: cannot remove ''/proc/kcore'': Operation not permitted
.
Todos los archivos en /proc
no existen realmente en su disco duro, por lo que no se pueden eliminar. Esos archivos representan información sobre el sistema. Por ejemplo, cuando hace ls /proc
, le pide al kernel una lista de los procesos en el sistema. Si ejecuta ls -l /proc/22/exe
, le está pidiendo al núcleo la ruta del archivo ejecutable del proceso número 22. Y así sucesivamente.
Parece que necesita limpiar el disco de los archivos que se eliminan pero que están reservados. Puedes usar el comando ''tune2fs'' con algo como:
tune2fs -m 0 /dev/<drive>
Esto debería liberar espacio y darle acceso al espacio de disco reservado.
NOTA: nunca obtendrá espacio en el disco eliminando archivos de ''/ proc''. Ese es un sistema de archivos virtual que no tiene nada que ver con el espacio en su disco duro.
por favor revise su espacio de archivo de registro. Eliminé todos los archivos de registro de errores y de acceso y mi sitio web se está ejecutando.
Usando este comando, qué carpeta ocupa más espacio.
cd /
sudo du -sh * 2>/dev/null | sort -h