發現問題
最近在工作發現了一個錯誤,MySQL 報錯 Exception Message:SQLSTATE[08004][1040]Too many connections
,經查這次錯誤是硬盤空間滿了導致的,于是找一些可以刪除的文件騰出一些空間。
空間占用大的原因
發現 /var/spool/postfix/maildrop 這個目錄占用了 6G 多的空間,網上找到一樣的問題,原因是:
由于 Linux 在執行 cron 時,會將 cron 執行腳本中的 output 和 warning 信息,都會以郵件的形式發送 cron 所有者, 而由于客戶環境中的 sendmail 和 postfix 沒有正常運行,導致郵件發送不成功,全部小文件堆積在了 maildrop 目錄下面,而且沒有自動清理轉換的機制,所以長達一年的時間,此目錄已堆積了大量的文件。查看 man cron 的信息,可以知道會發送給 cron owner.
于是嘗試刪除這個目錄下的內容,但是執行 rm -rf ./*
竟然提示參數列表過長,后來使用如下命令刪除:
1
|
ls | xargs rm -f |
通過管道的方式刪除。
腳本重定向輸出
所以注意在 crontab 腳本輸出內容到日志,或者 /dev/null 2>&1,避免產生大量不必要的文件。
幾個 Linux 查找文件和空間的命令
find . -type f -size +1000000k
查找大文件和目錄
du -s * | sort -nr | head
顯示前十個占用空間最大的文件或目錄
du -sh *
遍歷目錄大小
df -hl
系統各掛載硬盤空間大小
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://blog.tanteng.me/2017/01/linux-postfix-maildrop/