如何查找 删除 linux不断增加的垃圾日志文件?

时间:2023-01-26 19:49:45
其实之前发了个贴( http://topic.csdn.net/u/20100520/16/90faf148-0113-4d41-8c40-9fd43bd91aa1.html),然后 大致认定出问题那台linux服务器是因为不断增加的日志文件所以被撑满,但是我除了df发现磁盘空间被不断占用之外,不知道是什么位置的什么文件在不断增加,各位有什么好的经验可以教授一下啊。

25 个解决方案

#1


上次那个看了 今天看了  我突然记得我好像也遇到过
好像是/var下的某个目录(/var/spool/mqueue) 不停的变大 记不太清了
你执行命令
du -skh /var/*
看看 /var下哪个文件夹的数据最大。

#2


按照《Linux程序设计 第三版》4.7节中的说法,日志可能在:
/usr/adm 或 /var/log中。

对一个典型的Linux安装来说:
/var/log/message包含所有系统信息
/var/log/debug可能包含调试信息。

可以通过查看/etc/syslog.conf来检查系统配置。

#3


尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

#4


用find,du都可以
1.如果确定是文件的话,find查找超过比如100M的文件
2.如果是很多小文件加起来占用空间过大的话,用du查看,然后sort排序一下,就可看到哪个目录占用多

#5


今天没有时间实践大家提供的方法,明后天实践了再来给大伙汇报一下。
先谢了!

#6


今天检查了服务器
好像/var 下没有什么文件可疑 所有 log message 这类文件都不是很多 十几m到百来M之间
反正我就用du 命令到处看 倒是发现/usr/local/mysql/var/web.err 这个文件最可疑,有2.3g那么大 而其他数据库的文件才几m或是几十m 最大才30m大概

所以我现在最主要怀疑是 web.err在不断增大
哪位高人有什么解决方法指教么?

#7


引用 3 楼 liucy1983 的回复:
尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

find /tmp -size +100000000c执行任何结果都没有 怎么回事?

#8


汗 我把回复回到你那个已经结的帖子上了 你看看

#9


引用 7 楼 ycnxz 的回复:
引用 3 楼 liucy1983 的回复:

尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

find /tmp -size +100000000c执行任何结果都没有 怎么回事?

他这个命令是在/tmp目录下找大于100M的文件 如果没有 就不会有结果输出

#10


引用 8 楼 steptodream 的回复:
汗 我把回复回到你那个已经结的帖子上了 你看看

看了    
忘记说明了 
/var 大概有55g大
有个/var/……/down 文件夹 大概就占46g 
还有个 /var/……/doc 5.7g
还有个 /var/……/html 2.0g
因为这个服务器是用来提供文件下载的
所以我不太怀疑/var 文件夹了

你说:
如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的


可现在问题是 
1.我还是 不确定知道哪些是日志文件
2.那些 可能有日志文件的文件夹都不大 也就最大几十m,上百m而已。
3.刚才通过ll命令看了那个web.err:
-rwxr-x---  1 mysql mysql 2464272384   6月 10 16:39 web.err
好像这个文件一直在被修改还是什么的 所以我更怀疑是这个文件在一直增大,直到撑满硬盘。

#11


如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的
-----------
我就说的是你说的那个web.err!

另外我看你的硬盘本来就不大  /var就有55g  剩下也没多少了

另外 我不是让你du -skh /*
看看根目录下各目录的大小情况啊

#12


引用 11 楼 steptodream 的回复:
如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的
-----------
我就说的是你说的那个web.err!

另外我看你的硬盘本来就不大  /var就有55g  剩下也没多少了

另外 我不是让你du -skh /*
看看根目录下各目录的大小情况啊


du -skh /*
用过了 看了个文件夹大小 没什么其他文件夹可怀疑的啊
现在没连ssh 不能贴结果上来

#13


引用 12 楼 ycnxz 的回复:
du -skh /*
用过了 看了个文件夹大小 没什么其他文件夹可怀疑的啊
现在没连ssh 不能贴结果上来

那你把这些文件的大小加起来看看是不是有68G?

#14


好像基本有吧

# du -skh /*
6.8M    /bin
8.8M    /boot
44K     /config.guess
36K     /config.sub
4.0K    /db2.sh
152K    /dev
54M     /etc
80K     /home
8.0K    /initrd
101M    /lib
20M     /lib64
16K     /lost+found
8.0K    /media
8.0K    /misc
8.0K    /mnt
8.0K    /opt
1.1G    /proc
5.8G    /root
19M     /sbin
8.0K    /selinux
8.0K    /srv
0       /sys
276K    /tmp
5.4G    /usr
55G     /var

#15


你主要的使用:
55G  /var
5.4G /usr
5.8G /root
1.1G /proc
55+5.4+5.8+1.1=67.3G

你的df结果显示你的根目录也大约就68G
[root@web ~]# df -l
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
  68507184 68507184 0 100% /
/dev/sda1 101086 14614 81253 16% /boot
none 511800 0 511800 0% /dev/shm


我就不明白了  到底哪儿不正常!
我的结论是  你的系统正常  问题是你本来空间不够用了!/var目录就占用了55G  可是你说是提供下载 不算异常
还有你说/usr/local/mysql/var/web.err 这个文件2.3G那么大  也不算太大  即便是你把整个web.err删除 你的系统也就是多出2.3G的空间而已!

#16


引用 15 楼 steptodream 的回复:
你主要的使用:
55G  /var
5.4G /usr
5.8G /root
1.1G /proc
55+5.4+5.8+1.1=67.3G

你的df结果显示你的根目录也大约就68G
[root@web ~]# df -l
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
  68507184 68……

这是硬盘被塞满了就这样啊
本来硬盘所剩的空间不多 但是也有1~2g的

现在基本上确定是那个web.err的问题了 
我刚才删除了硬盘上一个1g多的文件 留出新的空间 然后再用ll查看web.err文件
相隔一两分钟的结果如下:

…… 2464399774  6月 11 12:43 web.err

…… 2464734364  6月 11 12:46 web.err


#17


我就只需要那1~2G 传点图片什么的而已

#18


引用 17 楼 ycnxz 的回复:
我就只需要那1~2G 传点图片什么的而已

那你就把web.err清空把

不过你这样的系统我第一次看到  把硬盘塞的慢慢的

我在想 难道不会影响你的系统效率么

#19


引用 18 楼 steptodream 的回复:
引用 17 楼 ycnxz 的回复:

我就只需要那1~2G 传点图片什么的而已

那你就把web.err清空把

不过你这样的系统我第一次看到  把硬盘塞的慢慢的

我在想 难道不会影响你的系统效率么

我昨天另发了一个贴( http://topic.csdn.net/u/20100610/17/70fc829f-f0a0-45d1-a792-09595261f60d.html)
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54  mysqld restarted
100611 12:59:54  InnoDB: Started; log sequence number 0 46523
100611 12:59:54 [ERROR] /usr/local/mysql/libexec/mysqld: Error writing file '/usr/local/mysql/var/web.pid' (Errcode: 28)
100611 12:59:54 [ERROR] Can't start server: can't create PID file: No space left on device

#20


其实我就一写php的,公司以前管这方面的人走了,我不得已接手处理一下。
嘿嘿,多谢大家!

#21


引用 20 楼 ycnxz 的回复:
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54 mysqld restarted
100611 12:59:54 InnoDB: Started; log sequence number 0 46523
100611 12:59:54 [ERROR] /usr/local/mysql/libexec/mysqld: Error writing file '/usr/local/mysql/var/web.pid' (Errcode: 28)
100611 12:59:54 [ERROR] Can't start server: can't create PID file: No space left on device

正常  因为你的机器运行相关服务  所以日志肯定还会往web.err里写
你定时把他清空就可以了  可以添加到crontab 每天清空一次
不过不是长久之计  我认为你还是追加个外设硬盘得了

#22


引用 21 楼 steptodream 的回复:
引用 20 楼 ycnxz 的回复:
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54 mysqld restarted
100611 12:59:54 InnoDB: Started; log sequence number 0 4……

这句什么意思
Can't start server: can't create PID file: No space left on device
我刚刚清空了web.err,硬盘上有2g多空间呢。

#23


用find查找最近出现或者修改过的文件。

#24


不用再分析啥了
你的系统剩余的空间 就那么一点 2G的周转空间能干什么?
你把web.err里清空了  万一/var那边有人下载东西 或者/var下的各种日志文件也慢慢变多
你要么把var下下载的没用的东西删除 要么追加硬盘
你自己想想 你把你自己用的windows电脑整个电脑都塞的只剩下2G 你再使用 你看你是是什么感觉!

#25


引用 24 楼 steptodream 的回复:
不用再分析啥了
你的系统剩余的空间 就那么一点 2G的周转空间能干什么?
你把web.err里清空了  万一/var那边有人下载东西 或者/var下的各种日志文件也慢慢变多
你要么把var下下载的没用的东西删除 要么追加硬盘
你自己想想 你把你自己用的windows电脑整个电脑都塞的只剩下2G 你再使用 你看你是是什么感觉!

ok 结贴

#1


上次那个看了 今天看了  我突然记得我好像也遇到过
好像是/var下的某个目录(/var/spool/mqueue) 不停的变大 记不太清了
你执行命令
du -skh /var/*
看看 /var下哪个文件夹的数据最大。

#2


按照《Linux程序设计 第三版》4.7节中的说法,日志可能在:
/usr/adm 或 /var/log中。

对一个典型的Linux安装来说:
/var/log/message包含所有系统信息
/var/log/debug可能包含调试信息。

可以通过查看/etc/syslog.conf来检查系统配置。

#3


尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

#4


用find,du都可以
1.如果确定是文件的话,find查找超过比如100M的文件
2.如果是很多小文件加起来占用空间过大的话,用du查看,然后sort排序一下,就可看到哪个目录占用多

#5


今天没有时间实践大家提供的方法,明后天实践了再来给大伙汇报一下。
先谢了!

#6


今天检查了服务器
好像/var 下没有什么文件可疑 所有 log message 这类文件都不是很多 十几m到百来M之间
反正我就用du 命令到处看 倒是发现/usr/local/mysql/var/web.err 这个文件最可疑,有2.3g那么大 而其他数据库的文件才几m或是几十m 最大才30m大概

所以我现在最主要怀疑是 web.err在不断增大
哪位高人有什么解决方法指教么?

#7


引用 3 楼 liucy1983 的回复:
尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

find /tmp -size +100000000c执行任何结果都没有 怎么回事?

#8


汗 我把回复回到你那个已经结的帖子上了 你看看

#9


引用 7 楼 ycnxz 的回复:
引用 3 楼 liucy1983 的回复:

尝试使用find /tmp -size +100000000c命令查找一下你磁盘中大于100M的文件

find /tmp -size +100000000c执行任何结果都没有 怎么回事?

他这个命令是在/tmp目录下找大于100M的文件 如果没有 就不会有结果输出

#10


引用 8 楼 steptodream 的回复:
汗 我把回复回到你那个已经结的帖子上了 你看看

看了    
忘记说明了 
/var 大概有55g大
有个/var/……/down 文件夹 大概就占46g 
还有个 /var/……/doc 5.7g
还有个 /var/……/html 2.0g
因为这个服务器是用来提供文件下载的
所以我不太怀疑/var 文件夹了

你说:
如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的


可现在问题是 
1.我还是 不确定知道哪些是日志文件
2.那些 可能有日志文件的文件夹都不大 也就最大几十m,上百m而已。
3.刚才通过ll命令看了那个web.err:
-rwxr-x---  1 mysql mysql 2464272384   6月 10 16:39 web.err
好像这个文件一直在被修改还是什么的 所以我更怀疑是这个文件在一直增大,直到撑满硬盘。

#11


如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的
-----------
我就说的是你说的那个web.err!

另外我看你的硬盘本来就不大  /var就有55g  剩下也没多少了

另外 我不是让你du -skh /*
看看根目录下各目录的大小情况啊

#12


引用 11 楼 steptodream 的回复:
如果那个日志你不需要的话 你可以定时清空
或者通过logrotate每天更新一个世代 只保留7天的
-----------
我就说的是你说的那个web.err!

另外我看你的硬盘本来就不大  /var就有55g  剩下也没多少了

另外 我不是让你du -skh /*
看看根目录下各目录的大小情况啊


du -skh /*
用过了 看了个文件夹大小 没什么其他文件夹可怀疑的啊
现在没连ssh 不能贴结果上来

#13


引用 12 楼 ycnxz 的回复:
du -skh /*
用过了 看了个文件夹大小 没什么其他文件夹可怀疑的啊
现在没连ssh 不能贴结果上来

那你把这些文件的大小加起来看看是不是有68G?

#14


好像基本有吧

# du -skh /*
6.8M    /bin
8.8M    /boot
44K     /config.guess
36K     /config.sub
4.0K    /db2.sh
152K    /dev
54M     /etc
80K     /home
8.0K    /initrd
101M    /lib
20M     /lib64
16K     /lost+found
8.0K    /media
8.0K    /misc
8.0K    /mnt
8.0K    /opt
1.1G    /proc
5.8G    /root
19M     /sbin
8.0K    /selinux
8.0K    /srv
0       /sys
276K    /tmp
5.4G    /usr
55G     /var

#15


你主要的使用:
55G  /var
5.4G /usr
5.8G /root
1.1G /proc
55+5.4+5.8+1.1=67.3G

你的df结果显示你的根目录也大约就68G
[root@web ~]# df -l
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
  68507184 68507184 0 100% /
/dev/sda1 101086 14614 81253 16% /boot
none 511800 0 511800 0% /dev/shm


我就不明白了  到底哪儿不正常!
我的结论是  你的系统正常  问题是你本来空间不够用了!/var目录就占用了55G  可是你说是提供下载 不算异常
还有你说/usr/local/mysql/var/web.err 这个文件2.3G那么大  也不算太大  即便是你把整个web.err删除 你的系统也就是多出2.3G的空间而已!

#16


引用 15 楼 steptodream 的回复:
你主要的使用:
55G  /var
5.4G /usr
5.8G /root
1.1G /proc
55+5.4+5.8+1.1=67.3G

你的df结果显示你的根目录也大约就68G
[root@web ~]# df -l
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
  68507184 68……

这是硬盘被塞满了就这样啊
本来硬盘所剩的空间不多 但是也有1~2g的

现在基本上确定是那个web.err的问题了 
我刚才删除了硬盘上一个1g多的文件 留出新的空间 然后再用ll查看web.err文件
相隔一两分钟的结果如下:

…… 2464399774  6月 11 12:43 web.err

…… 2464734364  6月 11 12:46 web.err


#17


我就只需要那1~2G 传点图片什么的而已

#18


引用 17 楼 ycnxz 的回复:
我就只需要那1~2G 传点图片什么的而已

那你就把web.err清空把

不过你这样的系统我第一次看到  把硬盘塞的慢慢的

我在想 难道不会影响你的系统效率么

#19


引用 18 楼 steptodream 的回复:
引用 17 楼 ycnxz 的回复:

我就只需要那1~2G 传点图片什么的而已

那你就把web.err清空把

不过你这样的系统我第一次看到  把硬盘塞的慢慢的

我在想 难道不会影响你的系统效率么

我昨天另发了一个贴( http://topic.csdn.net/u/20100610/17/70fc829f-f0a0-45d1-a792-09595261f60d.html)
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54  mysqld restarted
100611 12:59:54  InnoDB: Started; log sequence number 0 46523
100611 12:59:54 [ERROR] /usr/local/mysql/libexec/mysqld: Error writing file '/usr/local/mysql/var/web.pid' (Errcode: 28)
100611 12:59:54 [ERROR] Can't start server: can't create PID file: No space left on device

#20


其实我就一写php的,公司以前管这方面的人走了,我不得已接手处理一下。
嘿嘿,多谢大家!

#21


引用 20 楼 ycnxz 的回复:
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54 mysqld restarted
100611 12:59:54 InnoDB: Started; log sequence number 0 46523
100611 12:59:54 [ERROR] /usr/local/mysql/libexec/mysqld: Error writing file '/usr/local/mysql/var/web.pid' (Errcode: 28)
100611 12:59:54 [ERROR] Can't start server: can't create PID file: No space left on device

正常  因为你的机器运行相关服务  所以日志肯定还会往web.err里写
你定时把他清空就可以了  可以添加到crontab 每天清空一次
不过不是长久之计  我认为你还是追加个外设硬盘得了

#22


引用 21 楼 steptodream 的回复:
引用 20 楼 ycnxz 的回复:
用里面网友教我的方法清空了web.err,然后下载最新的web.err,里面被重复写入了以下内容:

Number of processes running now: 0
100611 12:59:54 mysqld restarted
100611 12:59:54 InnoDB: Started; log sequence number 0 4……

这句什么意思
Can't start server: can't create PID file: No space left on device
我刚刚清空了web.err,硬盘上有2g多空间呢。

#23


用find查找最近出现或者修改过的文件。

#24


不用再分析啥了
你的系统剩余的空间 就那么一点 2G的周转空间能干什么?
你把web.err里清空了  万一/var那边有人下载东西 或者/var下的各种日志文件也慢慢变多
你要么把var下下载的没用的东西删除 要么追加硬盘
你自己想想 你把你自己用的windows电脑整个电脑都塞的只剩下2G 你再使用 你看你是是什么感觉!

#25


引用 24 楼 steptodream 的回复:
不用再分析啥了
你的系统剩余的空间 就那么一点 2G的周转空间能干什么?
你把web.err里清空了  万一/var那边有人下载东西 或者/var下的各种日志文件也慢慢变多
你要么把var下下载的没用的东西删除 要么追加硬盘
你自己想想 你把你自己用的windows电脑整个电脑都塞的只剩下2G 你再使用 你看你是是什么感觉!

ok 结贴