linux磁盤空間查看inode


服務器一般是要求長期連續運行的,自動執行任務生成的各種文件及日志,可能使空間占滿,從而造成業務故障,所以要定時清理。

一般來說,Linux空間占滿有如兩種情況:

1、空間被占滿了

用df -k 可以看到使用100%,這種 情況下,滿的分區無法新建文件,也無法輸出日志,需要輸日志的進程一般都會停止工作

Linux自動清理硬盤空間,也許對你有用

2、inode占滿了

inode如何理解呢,就是一個文件 對應一個inode,而linux各個分區可用的inode一般是有限的,使用df -i 可以查看使用情況。一般經常出現硬盤空間沒占滿,但inode占滿了,這種一般是因為有大量的小文件生成,要刪掉

Linux自動清理硬盤空間,也許對你有用

要定時清理空間,我們需要了解一個命令,find 命令,這個命令可以查詢目錄下特定文件名,生成日期的文件

舉例如下:

find /slvi/apache/htdocs/nos/netflow/netflow/View/Report/Day/R-NF-543* -type f -mtime +10

上面的就是查詢 /slvi/apache/htdocs/nos/netflow/netflow/View/Report/Day/目錄下文件名開的R-NF-543的文件

-type f 指明是文件,如是-d 剛是目錄, -mtime +10是超過現在10天的,如是10天內,則是-10

上面只是查詢,我們需要查到了,再刪掉,則要加 “ -exec rm -rf {} \; ” ,結果如下:

find /slvi/apache/htdocs/nos/netflow/netflow/View/Report/Day/R-NF-541* -type f -mtime +10 -exec rm {} \;

對於通用的linux來說,/var是各種系統日志輸出分區,建議不要和根分區一起,而是單獨划分區,一般我們划20G(一般夠用,除非你熱衷分析日志),一般我們要清理/var/下面的一些文件及目錄:

/bin/echo '' > /var/spool/mail/root 如果你/var空間經常不夠,可以清一下,當然你應用程序的用戶也要清:

/bin/echo '' > /var/spool/mail/XXXX XXXX代表你普通用戶

下面這兩個一般是郵件隊列里發的,需要清理,不然可能造成/var/滿,或inode占滿,因為很多小文件:

/bin/find /var/spool/clientmqueue/* -type f -mtime +7 -exec rm -rf {} \;

/bin/find /var/spool/mqueue/* -type f -mtime +7 -exec rm -rf {} \;

上面說是7天清一次

/var/log/下面很多日志是循環的,一般保存4個文件,對系統分析很重要,所以可以根據自己情況,決定清與不清,或保存多長時間:

echo ''>/var/log/maillog.3 清第三個文件,離最近時間最長

/var/log/messages.3 清第三個文件,離最近時間最長

上面這個命令,可以放在一個統一的shell里,然后把shell再放入crontab里自動運行。當然需要你長期觀察,發現有其它要清的,也放入shell,包括你自己的應用程序輸出的日志及文件。

還要提醒,要用find時,先不加后面的刪除命令,先看找出來是否正確,是否是你需要刪,再加上刪除,免得你在根目錄執行rm -rf *


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM