#! /bin/bash #This script can be used to monitoring the increased size of a file automatically by using Crontab to run it routinely. #If you need to monitor the result of it, you can add monitor to this log-file by using Watchdog.
#Use log rotate to rotate this "logSizeMonitor.log"
time_now=`date "+%Y-%m-%d %H:%M:%S"` time_bef=$(date --date="1 hour ago" +"%Y-%m-%d %H:%M:%S") logfile=./logSizeMonitor.log #the log the you need to monitor hca_server_logs="/home/shirley/hca-server.log" size=`ls -l $hca_server_logs`; size=${size#*'r '}; size=${size%% *}; lastN=`cat $logfile | tail -1`; if [ "$lastN" = "" ]; then lastN=0 fi add_h=$[($size-$lastN)/1048576]; size_h=$[$size/1048576]; note="From ${time_bef} to ${time_now}, log has increased: $add_h M, and the log size now is : $size_h M;"; echo $note >> $logfile #If the log size has increased more than 100 M during the last one hour, then write log as KO! if [ $add_h -gt 100 ]; then echo "KO" >> $logfile else echo "OK" >> $logfile fi echo $size >> $logfile &
使用说明:
这一脚本可用以监控单个文件在特定时间区间的增长情况,需要配合crontab使用。
关于logRotate的方案,可根据实际情况自行调整。
待开发:发现单个文件大小增长异常时,发送邮件告警!
logSizeMonitor.log