加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

简单的进程、磁盘、日志监测shell脚本

发布时间:2020-12-15 07:08:36 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bas################################################################################## process status monitor config##################

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/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
#

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读