日志清理脚本
newalanhost:[/home/newalan/bin]crontab -l?
0 2 * * * /home/newalan/bin/cleanlog.sh?
用crontab來定時調這個腳本,以上設置每日的凌晨2點0分執行?
newalanhost:[/home/newalan/bin]cat /home/newalan/bin/cleanlog.sh?
#!/bin/sh?
#find $HOME/log -mtime +3 -type f ?-exec rm -rf {} \;?
rm -rf $HOME/log/.tmpblog/*?
#把2天之外的日志del?
cd $HOME/log?
for i in `ls -lr|grep ^d|awk '{print $9}'|grep ^2[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$|sed '1,2d'`?
do?
?rm -rf $i?
done?
舉例來說?
newalanhost:[/home/newalan/log]ls -al?
drwxrwxrwx ? ?2 newalan ? ? cics ? ? ? ? ? 4096 Jun 21 08:56 .tmpblog?
drwxrwxrwx ? ?2 newalan ? ? cics ? ? ? ? ? 4096 Jun 20 15:34 20180620?
drwxrwxrwx ? ?2 newalan ? ? cics ? ? ? ? ? 4096 Jun 21 08:27 20180621?
-rw-r--r-- ? ?1 newalan ? ? cics ? ? ? ? ? ?904 Jun 14 13:52 ARECFG.log.14?
-rw-r--r-- ? ?1 newalan? ? ?cics ? ? ?985822658 Jun 21 08:56 sbl.log?
該目錄/home/newalan/log是日志目錄,不過有一些創建規則
其中紅色的以日期命名的目錄(20180620、20180621)每天創建一個,記錄當天發生的交易的日志?
? ? 紫色的的目錄(.tmpblog)是隱藏目錄,記錄交易的中間臨時信息,只有交易錯誤時才記錄,一般不用看?
? ? 日志文件夾下的其他藍色文件(ARECFG.log.14、?sbl.log)有些是公共的操作記錄的日志,或者是不規范的日志,本來應該記錄在紅色的以日期命令的目錄里?
這三種日志的清理對應腳本中的三種顏色?
一般 ?find $HOME/log -mtime +3 -type f ?-exec rm -rf {} \;??可以清理大部分日志(語句中設定超過3天前的日志)?
不過這個語句對于紅色的以日期命令的目錄,只會刪除目錄中的文件,不刪除目錄,導致會遺留很多內空的日期命名的目錄,因此這種方式被廢棄了,但如果你的日志目錄里?
不存在以日期命名的目錄,這個命令還是很好用的。?
我們代替的方式是用下面的紫色命令和紅色命令,紫色很簡單,刪除隱藏目錄(.tmpblog)下的文件,?
紅色的命令的邏輯是,在該目錄下按時間逆序(ls -lr)排列的目錄(grep ^d,目錄名位于第九列$9)中,搜索日期命名的文件夾,并去掉最新的兩個(1,2d),即實現了保留最近的?
兩天的日志,其他的全部刪除。
轉載于:https://www.cnblogs.com/newalan/p/9299729.html
總結
- 上一篇: 动态随机存储器的刷新(集中刷新、分散刷新
- 下一篇: 网络安全概念是什么?互联网时代它为何如此