一、情景描述
節(jié)點磁盤空間告警,使用df -h查看發(fā)現(xiàn)是/var盤滿了,cd進(jìn)入/var目錄下,du -sch log/ 發(fā)現(xiàn)是log目錄占用空間大,cd切換到log目錄下,du -dh *查看是因為maillog日志太大導(dǎo)致的,故需要清理maillog日志。
二、處理過程
我是想將maillog分割成幾個小文件,再刪除很久之前的數(shù)據(jù),但是/var空間滿了,我就將maillog移動到/tmp目錄下進(jìn)行分割。
①mv /var/log/maillog /tmp
②split -b 500M /tmp/maillog
分割完成后我就將/var/log/maillog文件和/tmp/maillog刪除了,想要將分割好的小文件移動到/var/log下,但是還是提示沒有空間,使用df -h查看發(fā)現(xiàn)/var使用率100%了,但是在/var下的各個目錄都很小,然后查看delete進(jìn)程。
③lsof | grep delete 找到了刪除/var/log/maillog的進(jìn)程。
④kill -9 PID 刪除對應(yīng)的進(jìn)程。
至此空間告警恢復(fù),再將之前分割好的小文件移動到/var/log下即可。
三、補(bǔ)充清空日志方法
查詢打開/var/log/messages文件的進(jìn)程的進(jìn)程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
結(jié)束生成messages的進(jìn)程:
kill -9 1455
kill -9 1932
清空日志并重啟:
cat /dev/null > /var/log/messages
reboot
不需要郵件系統(tǒng),直接卸載干凈。如下。
1. 查看是否安裝了郵件服務(wù)
直接查安裝的軟件包:
如果輸出有 postfix
或 sendmail
,說明安裝了郵件系統(tǒng)。
2. 查看郵件服務(wù)是否在運(yùn)行
查一下系統(tǒng)服務(wù)狀態(tài):
如果是
active (running)
,就說明郵件服務(wù)正在運(yùn)行。如果是
inactive
或not found
,說明沒在跑,甚至可能沒安裝。
3. 檢查端口監(jiān)聽
郵件服務(wù)器一般監(jiān)聽端口 25(SMTP端口)。
你可以用:
或者:
如果看到有程序(比如 master
是 postfix 的主進(jìn)程)監(jiān)聽 25端口,那就是有郵件服務(wù)在運(yùn)行。
4. 直接測試 sendmail
命令
在終端輸入:
或者:
如果有返回路徑或版本號,說明系統(tǒng)上有
sendmail
(可能是 Postfix 的 sendmail 兼容接口)。
總結(jié)一下:
檢查方法 | 結(jié)果含義 |
---|---|
rpm -qa 查軟件包 | 判斷是否安裝 |
systemctl status 查服務(wù) | 判斷是否運(yùn)行 |
ss / netstat 查端口 | 判斷是否監(jiān)聽 SMTP |
sendmail 命令 | 檢查郵件發(fā)送接口 |
不過,有沒有運(yùn)行還得繼續(xù)確認(rèn)一下。
你可以馬上查一下 Postfix 的服務(wù)狀態(tài):
如果你看到是 active (running),那就是在運(yùn)行;如果是 inactive 或 dead,說明雖然安裝了,但沒啟用。
如果你不需要郵件服務(wù),有兩種選擇:
方案一:僅禁用 + 停止 Postfix(保留安裝)
命令如下:
這樣做的效果是:
Postfix 停止運(yùn)行
以后開機(jī)也不會自動啟動
但系統(tǒng)上還保留了 postfix 軟件包(占用一點磁盤空間)
方案二:徹底卸載掉 Postfix
如果你完全不需要郵件系統(tǒng),可以卸載:
然后它就從你的系統(tǒng)上徹底干凈地消失了。
小提醒
卸載 postfix 后,系統(tǒng)有些通知(比如 cron
計劃任務(wù)失敗通知郵件)可能會丟失掉,如果完全是自己用的服務(wù)器,基本沒事。
評論