日志问题和bash脚本

我有11台运行在rackspace云托pipe上的Debian服务器。 所有运行VHCS2主机pipe理。 1服务器用于应用程序和10只用于smtp。 我的问题是关于SMTP服务器。 每台服务器托pipe1个域。 我的问题是当我的客户端使用smtp有这个目录中创build一个日志

/var/log/ 

但在24小时内驱动器已满,服务器拒绝所有smtp连接。 然后我删除了日志并运行以下命令来检查磁盘空间。

 df -h 

但它显示硬盘仍然满,服务器仍然拒绝smtp连接。 然后我跑下面的命令看到真相

 du --max-depth=1 -h 

它显示了事实。 使用的是真正的磁盘空间。 然后我重新启动服务器,现在服务器工作正常。 但几个小时后,情况就发生了。 然后我创build了以下脚本。

 #!/bin/sh rm -fr /var/log/* rm -fr /var/log/apache2/*.log rm -fr /var/log/apache2/*.log.* rm -fr /var/log/apache2/users/* rm -fr /var/log/apache2/backup/* reboot 

它工作了几天,但之后,日志再次填补了硬盘。

现在我想要以下解决scheme。 如果有人能帮助我。

  1. 当我从服务器删除文件硬盘将释放,而无需重新启动
  2. 日志应该在特定的范围内。 就像旧数据覆盖新数据的文件的特定大小一样

  1. 单独删除日志文件将无济于事。 您需要通知守护进程closures日志文件,通常通过发送一个SIGHUP。
  2. logrotate应该处理日志,并且可以使用各种标准来确定日志何时应该旋转。
  3. 你的日志填满了很快。 或者找出什么是洪水您的日志,将您的日志发送到另一台机器进行处理和存储,或者在/ var / log上挂载一个单独的卷,以使它成为唯一受影响的卷。

你真的需要计算出哪个日志正在填满磁盘。 一旦你知道哪些日志是问题,看看他们,看看他们为什么如此迅速增长。

是否有太多的信息被logging? 降低应用程序的日志logging级别。
是否有很多错误被logging? 调查并修复。

一旦你控制了日志,你可以使用logrotate来帮助pipe理它们。