le fichier / proc kcore est énorme

après avoir subi une attaque DDOS, /proc/kcore est en quelque sorte très énorme, j'utilise une petite classe php pour vérifier l'espace disque actuel, et combien a été utilisé.

il montre ce qui suit:

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

ma question Est, est-il sécuritaire de supprimer le fichier /proc/kcore ? Ou est-il une solution pour arriver à une taille normale.

la taille de fichier de /proc/kcore est 140.737.486.266.368 octets

j'ai hébergé mon serveur à DigitalOcean.

Si besoin de plus d'information pour le savoir, veuillez demander ;)

Merci beaucoup!

Edit...

df -h retourne:

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 retourne:

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

résultats de 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)
25
demandé sur WinEunuuchs2Unix 2014-01-16 23:14:14

4 réponses

en réponse à votre question initiale:

"Est-il sauver à supprimer le /proc/kcore fichier? Ou est-il une solution sur l'obtention d'une taille normale."

non, ce n'est pas sûr. Eh bien, je ne voudrais pas parier ce qui se passerait si vous le supprimiez de toute façon!

le répertoire /proc est le point de montage de procfs (exécuter mount et voir la sortie comme ci-dessous: )

proc on /proc type proc (rw)

procfs est un peu de magie noire; aucun fichier n'y est réel. Il ressemble à un système de fichiers, agit comme un système de fichiers, et est un système de fichiers. Mais pas celui qui est stocké sur disque (ou ailleurs).

/proc/kcore est spécifiquement un fichier qui correspond directement à chaque octet disponible dans votre mémoire virtuelle ... Je ne suis pas tout à fait clair sur les détails; le 128TB vient de Linux allouant 47 bits des 64 bits disponibles pour la mémoire virtuelle.

(il y a une discussion sur la limite de 128TB ici: /q/low-java-single-process-thread-limit-in-red-hat-linux-24843/"https://en.wikipedia.org/wiki/Everything_is_a_file" rel= "noreferrer">tout est un fichier qui donne un petit fond. Si vous êtes vraiment curieux-jetez un oeil sur le Plan9 OS.

J'espère que ma réponse initiale explique suffisamment kcore elle-même. Je suppose que les gens qui lisent cette réponse peuvent être curieux. A propos d'autres fichiers dans /proc aussi - donc voici quelques autres exemples "intéressants".

  • /proc/sys/* est un mécanisme pour l'utilisateur (vous) de lire/écrire des détails à partir du cœur de Linux (le noyau et les pilotes associés, etc.). Un exemple mignon d'un élément de R / w est " IP forwarding ":

    Lire: cat /proc/sys/net/ipv4/ip_forward ( 0 est éteint, 1 est sur)

    Ecrire: echo 1 > /proc/sys/net/ipv4/ip_forward

    Comme avec kcore , ce n'est pas un vrai fichier. Mais il agit comme un. Ainsi, lorsque vous écrivez à elle, vous changez en fait les paramètres du logiciel par opposition aux octets sur un disque.

  • /proc/meminfo et /proc/cpuinfo sont en lecture seule. Vous pouvez cat ou less eux, ou fopen() de votre propre application. Ils vous montrent des détails sur votre matériel (mémoire et CPU).

  • /proc/[0-9]+ sont en fait des Id de processus en cours d'exécution sur votre machine! Ce sont (IMHO) de loin la caractéristique la plus cool de /proc . À l'intérieur d'eux, vous trouverez plus de faux fichiers comme cmdline qui vous disent quelle commande a été utilisée pour démarrer le processus.

enfin il y a d'autres exemples de "systèmes de fichiers intéressants", comme /proc . Il y a purement en mémoire et " espace utilisateur pour n'en nommer que deux. Encore une fois, ceux-ci (en général) ne consomment pas d'espace disque réel, bien que des outils comme df et ls puissent rapporter des tailles de fichier réelles.

40
répondu wally 2017-04-13 12:36:31

la commande sudo rm /proc/kcore peut être exécutée en toute sécurité . Il dira juste rm: cannot remove '/proc/kcore': Operation not permitted .

tous les fichiers de /proc n'existent pas sur votre disque dur, ils ne peuvent donc pas être supprimés. Ces fichiers représentent des informations sur le système. Par exemple, quand vous faites ls /proc , vous demandez au noyau pour une liste des processus du système. Si vous lancez ls -l /proc/22/exe , vous demandez au noyau le chemin du fichier de l'exécutable du processus numéro 22. Et ainsi de suite.

4
répondu tbodt 2018-07-09 15:01:45

ressemble à vous devez nettoyer le disque des fichiers qui sont supprimés mais sont réservés. Vous pouvez utiliser la commande 'tune2fs' avec quelque chose comme:

tune2fs -m 0 /dev/<drive>

cela devrait libérer l'espace et vous donner accès à l'espace disque réservé.

NOTE: vous ne gagnerez jamais d'espace disque en retirant des fichiers de '/proc'. C'est un système de fichiers virtuel qui n'a absolument rien à voir avec l'espace sur votre disque dur.

0
répondu Atari911 2014-03-18 02:20:02

veuillez vérifier l'espace dans votre fichier journal. J'ai supprimé tous les fichiers journaux d'erreurs et d'accès et mon site web est en cours d'exécution.

en utilisant cette commande quel dossier prend plus d'espace.

cd /
sudo du -sh * 2>/dev/null | sort -h
0
répondu Dinesh Gurjar 2018-08-21 08:52:50