如何清除linux日志?

磁盘已满,如何调查哪些文件占用了大部分空间?

编辑

我发现大部分空间都是由mysql bin日志所取的:

/var/lib/mysql/jiaoyou-slow.log: 53M /var/lib/mysql/mysql-bin.000005: 68M /var/lib/mysql/mysql-bin.000003: 1.1G /var/lib/mysql/mysql-bin.000007: 34M /var/lib/mysql/mysql-bin.000004: 225M 

这些文件是否安全删除?

像这样的东西应该为你做的伎俩:

 find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' 

这将查找大小超过20mbs的/ (root)下的任何文件。 您可能需要调整$ 9 / $ 5variables,但在大多数情况下您不需要。 如果你只是想看看你的默认日志文件夹,我还build议更改//var/log/

如果你使用的是graphics化环境,你可以使用像磁盘使用分析器(也叫猴面包树) ,可以产生一个很好的戒指图,如下所示:

替代文字http://www.marzocca.net/linux/baobab/figures/baobab_fullscan.png

命令行仍然是你最好的武器,但我觉得非常方便。 这里有一些替代品。

使用logrotate(8)压缩和删除旧的日志文件是一个好主意,所以一些chatty守护进程不会填满整个磁盘。

编辑:另外,大多数日志将位于/ var / log。 一个简单的ls -lh会列出哪些变得太大了。

du命令,在命令行,会告诉你哪些目录/文件夹占据最多的空间。 你可以从中推断出最大的文件。

 $ du -h / 

-h告诉du以“人类可读的术语”列出大小:kb,Mb,Gb等等。

如果您以普通用户的身份尝试这种方式,则会看到有关您无权查看的目录的错误消息。

如果以root身份执行,则不应该有错误消息。

 # du -h / 

通过sort -npipe道输出,以便最后一行显示最大的目录(或反向sorting和使用头)。

 # du -h | sort -n 

另一种方法是使用find来指定“查找大于特定大小的文件”,但是这种方法需要一些练习来使其正确。

 # find / -size +10M 

将列出大于10M字节的文件

如果您有合理大小的分区,则应该在日志目录之外search大文件。 日志不太可能成为你的问题,平均系统很less达到200MB以上。

只要您不确定实际执行的操作,您应该避免删除日志。 如果日志文件突然消失,许多守护进程的反应会变得不稳定 – 结果可能是从无法运行的服务直到无法重新启动特殊的服务。

如果删除/ var / log / *下的文件(例如,以.gz结尾),则应该保存。 再一次,我怀疑这实际上是解决你的主要问题(例如硬盘太满)

前25个目录和/或文件:

 du -m / | sort -rn | head -25 

好吧,我骗了,看了一下DBA …. 🙂

https://dba.stackexchange.com/questions/41050/is-it-safe-to-delete-mysql-bin-files

(来自“RolandoMySQLDBA”和“Derek Downey”的前两个答案是相关且有见地的。)

这里有两种types的“日志文件”,不幸的是。 一个是应用到你的MySQL数据库的事务日志。 这些文件可以用来将MySQL从服务器同步到MySQL主服务器,或者还原数据库。 正如上面链接的顶部答案所示,您应该只使用MySQL命令(或元工具,如Percona Toolkit)来“清除”这些日志。

另一个文件'jaioyou-slow.log'可能只是一个慢查询日志,logging的查询花费的时间比定义的时间要长。 这是一个与典型的* NIX日志文件最为相似的日志文件,因此,如果需要可以截断(尽pipe显然会丢失该文件中的性能统计信息)。

您可以使用像“logrotate”这样的有用工具来处理这个(也是唯一的)文件,或者在紧急情况下,只需要:

 $ echo "" > /var/log/jaioyou-slow.log 

一些观察:

  • 你的mysqlconfiguration应该把MySQL慢查询日志放到一个更合适的* NIX日志位置,比如/ var / log / mysql /,而不是/ var / lib树,以避免混淆,或者提高性能目录在不同的磁盘上。
  • 你需要有一些自动化来清除MySQL(或第三方工具)中的二进制日志。 我不推荐使用操作系统命令删除它们。

参考文献: