【发布时间】:2014-02-05 21:24:22
【问题描述】:
经历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)
【问题讨论】:
-
/proc应该是虚拟文件系统吗?如果你在那里删除某些东西,你不应该得到任何实际的磁盘空间...运行df -h以查看实际使用的磁盘空间。 -
@Wrikken 我已经更新了帖子,还剩 755 mb。
-
是的,似乎是个问题,但在删除
proc中的内容时无法解决(请参阅mount的输出,它只是procfs)。它也比您在kcore中声称拥有的 127TB 小得多。似乎有一些清理工作要做,但不是在/proc。我通常使用du -shx *从根目录向下钻取,查看大目录是什么,然后再深入到其他du -shx *等目录,以找到真正的 源。顺便说一句:在 DDOS 之后,将日志转走可能不是一个坏主意,通过运行logrotate -f /etc/logrotate.conf可能会充满废话 -
好的,这意味着有很多实际删除的文件,但仍然没有从文件系统中清除,因为某些进程使它们保持打开状态(它们的 inode 仍然存在/尚未解除分配)。你能看看
lsof | grep deleted吗?它会告诉你哪些已删除的文件仍然存在,以及哪个进程 id 仍然有对它的引用。通常,停止或重新启动该进程会清理 inode。 -
我知道这有点老了,但解决巨大的
/proc/kcore的一种解决方案是重新启动机器,这会立即将“文件”的大小减小到更小的大小。
标签: proc