清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/bin/bas # ################################################################################ # process status monitor config ################################################################################ # process num ProcNum=2 # ProcUser[0]=sybase ProcName[0]=dataserver # ProcUser[1]=sybiq ProcName[1]=iqsrv15 # # ################################################################################ # filesystem space monitor config ################################################################################ # filesystem space num FsNum=1 # # FsName: filesystem name # MaxPercent: maximum filesystem space used FsName[0]=/home/roo/ MaxPercent[0]=90 # # ################################################################################ # program log monitor config ################################################################################ # LogNum:log num LogNum=1 # # LogDir: log file directory # LogName: log file name # MaxHoldMin: warning if log file doesn't increase in appointed minutes LogDir[0]=/home/roo/ LogName[0]=$(date +%Y%m%d).log MaxHoldMin[0]=10 # # ################################################################################ # function declaration ################################################################################ # function get process id function GetPID #User #Name { PsUser=$1 PsName=$2 pid=$(ps -u $PsUser|grep $PsName|grep -v grep|grep -v vi|grep -v dbx \ |grep -v tail|grep -v start|grep -v stop |sed -n 1p |awk '{print $1}') echo $pid } # # function get filesystem space function GetDiskSpc #FileSystem { if [ $# -ne 1 ]; then return 1 fi # FsDir=$1 DiskSpace=$(df -P $FsDir |tail -1 |awk '{print $5}' |awk -F% '{print $1}') echo $DiskSpace } # # function GetLogHold #LogPath { LogTime=$(ls --full-time $LogPath | awk '{print $6" "$7}' | cut -d"." -f1) SYSTime=$(date +%F" "%T) echo | \ awk -v T1=LogTime -v T2=SYSTime '{ t1=mktime(T1); t2=mktime(T2); dif=(t2-t1)/60; print dif}' } # ################################################################################ # process check ################################################################################ echo echo "-- PROCESS STATUS CHECK BEGIN." i=0 while [ $i -lt $ProcNum ] do echo -n "Check process ${ProcName[$i]}: " PID=$(GetPID ${ProcUser[$i]} ${ProcName[$i]}) # if [ "-$PID" == "-" ]; then echo "Warning: process ${ProcName[$i]} does not exist!" else echo "Process ${ProcName[i]} is normal." fi # echo i=$[ $i + 1 ] done # echo "-- PROCESS STATUS CHECK END." echo echo # ################################################################################ # file system spaces check ################################################################################ echo echo "-- FILESYSTEM SPACE CHECK BEGIN." i=0 while [ $i -lt $FsNum ] do echo -n "Check filesystem ${FsName[$i]}: " DiskSpace=$(GetDiskSpc ${FsName[$i]}) # if [ $DiskSpace -gt ${MaxPercent[$i]} ]; then echo "Warning: filesystem (${FsName[$i]}) used $DiskSpace% more than ${MaxPercent[$i]}%!" else echo "Filesystem [${FsName[$i]}] used $DiskSpace%." fi # echo i=$[ $i + 1 ] done # echo "-- FILESYSTEM SPACE CHECK END." echo echo # ################################################################################ # program log check ################################################################################ echo echo "-- LOG STATUS CHECK BEGIN." i=0 while [ $i -lt $LogNum ] do echo -n "Check log ${LogDir[i]}${LogName[i]} : " LogHoldMin=$(GetLogHold ${LogDir[i]}${LogName[i]}) # if [ $LogHoldMin -gt ${MaxHoldMin[0]} ]; then echo "Warning: log [${LogDir[i]}${LogName[i]}] hold $LogHoldMin minutes more than ${MaxHoldMin[0]}!" else echo "Log [${LogDir[i]}${LogName[i]}] hold $LogHoldMin minutes." fi # echo i=$[ $i + 1 ] done # echo "-- LOG STATUS CHECK END." echo echo #