/var/log/maillog日志太大占满/var空间如何清理

网站建设 百科知道/var/log/maillog日志太大占满/var空间如何清理已关闭评论9阅读模式

一、情景描述

节点磁盘空间告警,使用df -h查看发现是/var盘满了,cd进入/var目录下,du -sch log/ 发现是log目录占用空间大,cd切换到log目录下,du -dh *查看是因为maillog日志太大导致的,故需要清理maillog日志。

二、处理过程

我是想将maillog分割成几个小文件,再删除很久之前的数据,但是/var空间满了,我就将maillog移动到/tmp目录下进行分割。

①mv /var/log/maillog /tmp

②split -b 500M /tmp/maillog

分割完成后我就将/var/log/maillog文件和/tmp/maillog删除了,想要将分割好的小文件移动到/var/log下,但是还是提示没有空间,使用df -h查看发现/var使用率100%了,但是在/var下的各个目录都很小,然后查看delete进程。

③lsof | grep delete 找到了删除/var/log/maillog的进程。

④kill -9 PID 删除对应的进程。

至此空间告警恢复,再将之前分割好的小文件移动到/var/log下即可。

三、补充清空日志方法

查询打开/var/log/messages文件的进程的进程ID(PID):

lsof | grep messages

得到输出:

COMMAND    PID USER   FD   TYPE DEVICE   SIZE/OFF NODE NAME

rsyslogd  1455 root    4w   REG    8,6 1299113404 2686 messages

abrt-dump 1932 root    4r   REG    8,6 1299113404 2686 messages

结束生成messages的进程:

kill -9 1455

kill -9 1932

清空日志并重启:

cat /dev/null > /var/log/messages

reboot


不需要邮件系统,直接卸载干净。如下。

1. 查看是否安装了邮件服务

直接查安装的软件包:

bash
rpm -qa | grep -E 'postfix|sendmail'

如果输出有 postfixsendmail,说明安装了邮件系统。


2. 查看邮件服务是否在运行

查一下系统服务状态:

bash
systemctl status postfix
systemctl status sendmail
  • 如果是 active (running),就说明邮件服务正在运行。

  • 如果是 inactivenot found,说明没在跑,甚至可能没安装。


3. 检查端口监听

邮件服务器一般监听端口 25(SMTP端口)。

你可以用:

bash
ss -ltnp | grep :25

或者:

bash
netstat -ltnp | grep :25

如果看到有程序(比如 master 是 postfix 的主进程)监听 25端口,那就是有邮件服务在运行。


4. 直接测试 sendmail 命令

在终端输入:

bash
which sendmail

或者:

bash
sendmail -V
  • 如果有返回路径或版本号,说明系统上有 sendmail (可能是 Postfix 的 sendmail 兼容接口)。


总结一下:

 

检查方法结果含义
rpm -qa 查软件包判断是否安装
systemctl status 查服务判断是否运行
ss / netstat 查端口判断是否监听 SMTP
sendmail 命令检查邮件发送接口

不过,有没有运行还得继续确认一下。

你可以马上查一下 Postfix 的服务状态:

bash
systemctl status postfix

如果你看到是 active (running),那就是在运行;如果是 inactivedead,说明虽然安装了,但没启用。

如果你不需要邮件服务,有两种选择:


方案一:仅禁用 + 停止 Postfix(保留安装)

命令如下:

bash
# 停止 postfix 服务
systemctl stop postfix

# 禁止开机自启
systemctl disable postfix

这样做的效果是:

  • Postfix 停止运行

  • 以后开机也不会自动启动

  • 但系统上还保留了 postfix 软件包(占用一点磁盘空间)


方案二:彻底卸载掉 Postfix

如果你完全不需要邮件系统,可以卸载:

bash
# 卸载 postfix 软件包
yum remove postfix

然后它就从你的系统上彻底干净地消失了。


小提醒

卸载 postfix 后,系统有些通知(比如 cron 计划任务失败通知邮件)可能会丢失掉,如果完全是自己用的服务器,基本没事。

 
  • 本文由 米粒在线 发表于 2025年4月27日10:52:39
  • 转载请务必保留本文链接:https://www.miliol.org/129273.html
实用软件

winsxs太大了怎么清理

win系统盘空间越来越少,发现winsxs超大。winsxs太大了,怎么清理呢?显然直接删除这个winsxs文件夹是不行的,这是系统文件夹,直接删除会造成系统损坏。那怎么办,总不能看着...