运维记录 - 业务日志清理功能
生活随笔
收集整理的這篇文章主要介紹了
运维记录 - 业务日志清理功能
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
線上某些系統(tǒng)業(yè)務(wù)跑一段時(shí)間后,日志就會(huì)越來越多,考慮到業(yè)務(wù)機(jī)器磁盤有限,需要添加業(yè)務(wù)日志清理功能。根據(jù)日志所在分區(qū)磁盤使用情況來判斷是否清理日志,比如當(dāng)日志分區(qū)磁盤空間使用超過90%時(shí),將一周前的日志打包轉(zhuǎn)移到別處 (別的分區(qū)下或遠(yuǎn)程存儲(chǔ)設(shè)備上)。腳本 (/opt/script/log_clear.sh) 如下:
#!/bin/bash#定義日志所在分區(qū)當(dāng)前空間所占比例數(shù)(去掉%)。grep -w表示精準(zhǔn)匹配,只匹配"/"這個(gè)分區(qū) LOG_PARTITION=$(`which df` -h|awk '{print $5,$6}'|grep -w "/"|cut -d" " -f1|awk -F"%" '{print $1}') #定義一周前的日期,用于日志分區(qū)空間超過設(shè)定的閾值后保留的份數(shù)(這里保留一周的日志) KEEP_DATE=`date -d '-7 days' +%Y%m%d` #定義日志路徑 LOG_DIR=/opt/log/kevin #定義日志備份路徑(即當(dāng)日志分區(qū)空間超過閾值后,將日志轉(zhuǎn)移到該處。這里就轉(zhuǎn)移到了本地home分區(qū)下,也可以轉(zhuǎn)移到別的機(jī)器或遠(yuǎn)程存儲(chǔ)設(shè)備上) LOG_BACK_DIR=/home/log/kevin#確保日志備份路徑存在,如果不存在,則創(chuàng)建該路徑。 if [ ! -d ${LOG_BACK_DIR} ];then`which mkdir` -p ${LOG_BACK_DIR} elseecho "${LOG_BACK_DIR} is exist" >/dev/null 2>&1 fi#當(dāng)日志分區(qū)當(dāng)前空間超過90%時(shí)執(zhí)行的動(dòng)作 if [ ${LOG_PARTITION} -ge 90 ];then#切換到日志路徑下cd ${LOG_DIR}#截取日志文件中的日期,比如stepweb_20190915.log日志文件,則截取20190915for LOG_DATE in $(ls -l ${LOG_DIR}|awk '{print $9}'|cut -d"_" -f2|awk -F"." '{print $1}')do#當(dāng)日志文件中截取的日期是一周之前的日志時(shí)執(zhí)行的動(dòng)作if [ ${LOG_DATE} -lt ${KEEP_DATE} ];then#打包,轉(zhuǎn)移,刪除#注意這里tar使用-P參數(shù),因?yàn)閠ar默認(rèn)為相對路徑,使用絕對路徑的話會(huì)報(bào)錯(cuò)"Removing leading `/’ from member names",使用-P參數(shù)就解決了該問題`which tar` -zvPcf ${LOG_DIR}/stepweb_${LOG_DATE}.log.tar.gz ${LOG_DIR}/stepweb_${LOG_DATE}.logmv ${LOG_DIR}/stepweb_${LOG_DATE}.log.tar.gz ${LOG_BACK_DIR}/rm -rf ${LOG_DIR}/stepweb_${LOG_DATE}.logelseecho "keep stepweb_${LOG_DATE}.log" >/dev/null 2>&1fidone elseecho "${LOG_PARTITION} is available" >/dev/null 2>&1 fi根據(jù)上面腳本驗(yàn)證下:
查看本機(jī)磁盤使用情況,日志所在分區(qū)磁盤當(dāng)前使用率達(dá)到92%了 [root@yyweb kevin]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 46G 4G 92% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 34M 3.8G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 1014M 183M 832M 19% /boot /dev/mapper/centos-home 142G 33M 142G 1% /home日志所在路徑 [root@yyweb kevin]# pwd /opt/log/kevin日志情況 [root@yyweb kevin]# ls stepweb_20190810.log stepweb_20190817.log stepweb_20190824.log stepweb_20190901.log stepweb_20190908.log stepweb_20190915.log stepweb_20190811.log stepweb_20190818.log stepweb_20190825.log stepweb_20190902.log stepweb_20190909.log stepweb_20190916.log stepweb_20190812.log stepweb_20190819.log stepweb_20190826.log stepweb_20190903.log stepweb_20190910.log stepweb_20190917.log stepweb_20190813.log stepweb_20190820.log stepweb_20190827.log stepweb_20190904.log stepweb_20190911.log stepweb_20190918.log stepweb_20190814.log stepweb_20190821.log stepweb_20190828.log stepweb_20190905.log stepweb_20190912.log stepweb_20190919.log stepweb_20190815.log stepweb_20190822.log stepweb_20190829.log stepweb_20190906.log stepweb_20190913.log stepweb_20190816.log stepweb_20190823.log stepweb_20190830.log stepweb_20190907.log stepweb_20190914.log[root@yyweb kevin]# ls /home/ [root@yyweb kevin]# 執(zhí)行日志清理腳本 [root@yyweb kevin]# sh /opt/script/log_clear.sh /opt/log/kevin/stepweb_20190810.log /opt/log/kevin/stepweb_20190811.log /opt/log/kevin/stepweb_20190812.log /opt/log/kevin/stepweb_20190813.log /opt/log/kevin/stepweb_20190814.log /opt/log/kevin/stepweb_20190815.log /opt/log/kevin/stepweb_20190816.log /opt/log/kevin/stepweb_20190817.log /opt/log/kevin/stepweb_20190818.log /opt/log/kevin/stepweb_20190819.log /opt/log/kevin/stepweb_20190820.log /opt/log/kevin/stepweb_20190821.log /opt/log/kevin/stepweb_20190822.log /opt/log/kevin/stepweb_20190823.log /opt/log/kevin/stepweb_20190824.log /opt/log/kevin/stepweb_20190825.log /opt/log/kevin/stepweb_20190826.log /opt/log/kevin/stepweb_20190827.log /opt/log/kevin/stepweb_20190828.log /opt/log/kevin/stepweb_20190829.log /opt/log/kevin/stepweb_20190830.log /opt/log/kevin/stepweb_20190901.log /opt/log/kevin/stepweb_20190902.log /opt/log/kevin/stepweb_20190903.log /opt/log/kevin/stepweb_20190904.log /opt/log/kevin/stepweb_20190905.log /opt/log/kevin/stepweb_20190906.log /opt/log/kevin/stepweb_20190907.log /opt/log/kevin/stepweb_20190908.log /opt/log/kevin/stepweb_20190909.log /opt/log/kevin/stepweb_20190910.log /opt/log/kevin/stepweb_20190911.log /opt/log/kevin/stepweb_20190912.log日志清理后,日志路徑下只保留了最近一周的日志 [root@yyweb kevin]# ls stepweb_20190913.log stepweb_20190915.log stepweb_20190917.log stepweb_20190919.log stepweb_20190914.log stepweb_20190916.log stepweb_20190918.log一周之前的日志被打包轉(zhuǎn)移到/home/log/kevin下了 [root@yyweb kevin]# ls /home/log/kevin/ stepweb_20190810.log.tar.gz stepweb_20190817.log.tar.gz stepweb_20190824.log.tar.gz stepweb_20190901.log.tar.gz stepweb_20190908.log.tar.gz stepweb_20190811.log.tar.gz stepweb_20190818.log.tar.gz stepweb_20190825.log.tar.gz stepweb_20190902.log.tar.gz stepweb_20190909.log.tar.gz stepweb_20190812.log.tar.gz stepweb_20190819.log.tar.gz stepweb_20190826.log.tar.gz stepweb_20190903.log.tar.gz stepweb_20190910.log.tar.gz stepweb_20190813.log.tar.gz stepweb_20190820.log.tar.gz stepweb_20190827.log.tar.gz stepweb_20190904.log.tar.gz stepweb_20190911.log.tar.gz stepweb_20190814.log.tar.gz stepweb_20190821.log.tar.gz stepweb_20190828.log.tar.gz stepweb_20190905.log.tar.gz stepweb_20190912.log.tar.gz stepweb_20190815.log.tar.gz stepweb_20190822.log.tar.gz stepweb_20190829.log.tar.gz stepweb_20190906.log.tar.gz stepweb_20190816.log.tar.gz stepweb_20190823.log.tar.gz stepweb_20190830.log.tar.gz stepweb_20190907.log.tar.gz? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
再貼一個(gè)簡單的日志處理腳本
轉(zhuǎn)載于:https://www.cnblogs.com/kevingrace/p/11556219.html
總結(jié)
以上是生活随笔為你收集整理的运维记录 - 业务日志清理功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以前的项目今日打开突然报错了!
- 下一篇: Phoenix连接安全模式下的HBase