經常遇到日志文件過多,占用大量磁盤空間,需要定期刪除過期日志。
問題涉及方面
- 刪除過期日志的腳本。
- 定時任務
刪除任務腳本
先查詢到過期的日志文件,然后刪除。
語法
find path -option [ -print ] [ -exec -ok command ] {} ;
參數說明 :
find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預設 expression。
-name name, -iname name : 文件名稱符合 name 的文件。iname 會忽略大小寫 -mtime n 按照文件的更改時間來找文件,n為整數。
- n 表示文件更改時間距離為n天
- -n 表示文件更改時間距離在n天以內
- +n 表示文件更改時間距離在n天以前
實例腳本
刪除超過7天的文件
#!/bin/sh
find /home/ant/druid/Apache-druid-0.13.0-incubating/logs -name "peon-*" -mtime +7 -exec rm -rf {} ;
定時任務
crontab -l
查看定時任務列表。
crontab -e
創建定時任務
50 23 * * * /home/ant/druid/delete-outofdate-logs.sh