linux硬盘满了,不知道删哪些东西好!

2024-11-07 12:44:31
有5个网友回答
网友(1):

linux硬盘满了,需要查询一下是哪些文件占用了硬盘空间:
1、如果是大文件占用了,那么查询大于某个值的文件的方法:
find / -size +100c -print
这是从根盘开始查找大于100字节的文件(至于字节数你当然可以自己设置)
你可以用
find / -size +100c -exec ls -l {}\;
来列出文件属性。
2、如果只是因为有些应用生成的日志文件较多,长时间没有清理后占用了,这种情况最明显的标志为系统空间使用量逐步递增,每天的增量基本相差不大。那么最快捷的方式莫过于询问应用厂商要到日志存放目录后进行清理。如果找不到厂商,那只好自己动手咯,写个脚本查:
#!/bin/ksh
#####用du命令输出所有目录所占的磁盘空间大小,以G为单位#########
du -h >fs_du.log
######判断各层目录大小,查到占用量大的目录######
cat fs_du.log|while read LINE FS_USED
do
if [ $LINE -ge 10 ]
then
echo $FS_USED >>result.log
else
exit
fi
done
####查看运行结果#######
more result.log
这样就能看到占用量比较大的目录,从而有针对性的到相应目录下检查,看到底是什么东西在占用硬盘空间了。(if [ $LINE -ge 10 ] ,这里是判断超过10G的目录,你可以修改)
3、因为人为的误操作,导致了某些进程在没有执行完成的时候被kill掉了,但是缓存中的程序没有释放,仍然在运行,这会产生一些临时文件占用大量的磁盘空间资源,这种现象的特点是爆发式的增长,在很短时间内就将磁盘空间占满。解决的方法:
i、如果是因为父进程被杀除,子进程还运行导致,那么最简单,kill子进程,就会释放。
ii、如果能用ipcs确认是哪个用户的进程,那么也不困难,顺着使用ipcrm就行(这个就不一一例举了,有了命令查使用方法还是很方便的)
iii、执行进程的用户是比较关键的用户如:root用户、有实例的oracle用户、在线的生产用户等。那么建议在确认是因为共享缓存的原因导致的问题后重启服务器。
4、你已经删除了一些占用量大的文件,或者在根盘下做du -h发现占用量远远的小于130G,df的结果仍然是100%的使用率。那么基本肯定你碰到了linux的一个bug,直接重启就能解决。(当然了也不一定是bug,我碰到过那种程序在写一个日志,但是删除日志后空间不释放的问题。这个是linux本身的机制引起的,只需要停止相关的程序空间就会释放的)

网友(2):

mysql的话,运行久了话,binlog,二进制日志会膨胀到很大,这些日志都是可以删除掉的,另外建议生产环境中要把/目录独立分出来,像MySQL这样的应用,可以独立化个lvm分区来存储数据和日志

网友(3):

如果不知道该删什么,也有解决办法。

1.格式化一个新的文件系统。
2.在维护模式下把“/var/”中的内容转移到新文件系统中。
3.把新文件系统挂在“/var/”下。

完事。

网友(4):

/tmp目录可以全删
/var/log/messages,最好使用tar -zcvf压缩一下,再清空就行了。
另外,看一下/home下有没有用户长时间不用的垃圾文件。
或使用du -sh |sort -rn 查看使用最大的目录是哪个,再分析一下是否可删。

网友(5):

你查找大文件的思路不对,你找到的都是大于1000000k的文件,如果是无数个小型垃圾文件沾满了你的磁盘,你要怎么作?用du -sh来查看/下面的目录,看看哪个太大,大得可疑,就进去,看看它里面哪个太大……最后你就知道是谁沾满了你的硬盘了。

.MYD的文件是mysql存放数据库的数据的文件,如果你不想跑mysql,你就删。

/tmp底下的都可以删(先断业务再删)
/var/log 里面的日志文件可以清空,但是最好别删