精华内容
下载资源
问答
  • linux shell 监控进程脚本

    千次阅读 2021-01-26 09:54:52
    进程可能会崩溃导致停掉,现在用sh脚本进行监控,停掉自动重启. 脚本命名:monitor.sh 隐藏启动命令:nohup ./monitor.sh > monitor.file 2>&1 & 如下: #!/bin/sh # 函数: CheckProcess # 功能: ...

    进程可能会崩溃导致停掉,现在用sh脚本进行监控,停掉自动重启.

    脚本命名:monitor.sh

    隐藏启动命令:nohup ./monitor.sh  > monitor.file 2>&1 &

    代码如下:

    #!/bin/sh
    
    # 函数: CheckProcess
    # 功能: 检查一个进程是否存在
    # 参数: $1 --- 要检查的进程名称
    # 返回: 如果存在返回0, 否则返回1.
    #------------------------------------------------------------------------------
    CheckProcess()
    {
      # 检查输入的参数是否有效
      if [ "$1" = "" ];
      then
        return 1
      fi
     
      #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
      PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l` 
      if [ $PROCESS_NUM -eq 1 ];
      then
        return 0
      else
        return 1
      fi
    }
     
     
    # 检查test实例是否已经存在
    while [ 1 ] ; do
         CheckProcess "test"
         Check_RET=$?
         if [ $Check_RET -eq 1 ];
         then
            echo "服务不正常"
            # 隐藏启动test 
             nohup ./test  > nohuptest.file 2>&1 &
        else
            echo "服务正常"
        fi
     sleep 60
    done

     

    展开全文
  • /bin/bash#监控系统状态,建议每分钟执行一次,一天一个文件,监控以下信息#登陆用户、平均负载、占用内存,CPU,SWAP百分比、磁盘写入状态、网络流量与硬盘空间#每5分钟检测一次,发现异常,写入邮件告警 ...

    #!/bin/bash

    #监控系统状态,建议每分钟执行一次,一天一个文件,监控以下信息

    #登陆用户、平均负载、占用内存,CPU,SWAP百分比、磁盘写入状态、网络流量与硬盘空间

    #每5分钟检测一次,发现异常,写入邮件告警 www.jquerycn.cn

    #需要安装包sysstat-9.0.5.tar.gz、ifstat-1.1.tar.gz

    #20091210:更改配置文件方式,便于维护

    #for pengl 20091116

    #for wanggy 20130608 去掉邮件告警,可配置模块监控

    #for wanggy 20130816 增加程序事件处理

    #============================================================

    InvalidDatetime=`date -d "+6 hours" "+%Y-%m-%d %H:%M:%S"`

    curr_date=`date "+%Y-%m-%d %H:%M:%S"`

    echo $curr_date

    #============================================================

    readcfg()

    {

    cat /home/oracle/monitor/cfg/monitor.cfg|sed -e '/^;/d;/^$/d'|awk -F= '$1=="'$1'" {print $2}'

    }

    run_env()

    {

    #通过readcfg函数 读取monitor.cfg 相应的配置值

    HomeDir="`readcfg HomeDir`"

    WorkDir="$HomeDir/bin"

    LogDir="$HomeDir/log"

    PoleCpu=`readcfg PoleCpu`

    PoleMem=`readcfg PoleMem`

    PoleLad=`readcfg PoleLad`

    PoleIde=`readcfg PoleIde`

    PoleHOI=`readcfg PoleHOI`

    EXE="`readcfg EXE`"

    TELNO="`readcfg TELNO`"

    #取系统相应的变量值

    cd $WorkDir

    echo $WorkDir

    DATE=$(date +%Y%m%d)

    TIME=$(date +"%H:%M:%S")

    IP=$(/sbin/ifconfig eth0|sed -n "2p"|awk -F "[ ]+|:" '{print $4}')

    USER=$(/usr/bin/who|awk '{print $1}'|xargs)

    LOAD=$(uptime|awk -F"load average:" '{print $2}'|awk -F, '{print $3}'|sed 's/ *//')

    Memtotal=$(free |sed -n "2p"|awk '{print $2}')

    Memuser=$(free |sed -n "3p"|awk '{print $3}')

    MEM=$(awk 'BEGIN {x='$Memuser';y='$Memtotal';printf "%.2f\n",(x/y)*100}')

    Swaptotal=$(free |sed -n "4p"|awk '{print $2}')

    Swapuser=$(free |sed -n "4p"|awk '{print $3}')

    SWAP=$(awk 'BEGIN {x='$Swapuser';y='$Swaptotal';printf "%.2f\n",(x/y)*100}')

    Cpud=$(/usr/local/bin/iostat -c 1 2|awk 'NR==7 {print $6}')

    CPUD=$(awk 'BEGIN {i='$Cpud';printf "%.2f\n",100-i}')

    IOSTATE=`/usr/local/bin/iostat -x 1 1|awk '{if ($1 ~/^sd/) print $1,$2"%"}'|xargs`

    DISK=$(df|sed -e '1d;s/\/dev\///g'|awk '{printf "%s:%s\n",$1,$5}'|xargs)

    OUTFILE=$LogDir/capstats$DATE.log

    #将相关信息保存至OUTFILE中

    echo ">>>>[$IP] $TIME

    用户:$USER

    负载:$LOAD

    使用内存:$MEM%

    使用Swap:$SWAP%

    使用 CPU:$CPUD%

    硬盘IO:$IOSTATE

    硬盘空间:$DISK

    -----------------------<<<> $OUTFILE

    }

    #检测CPU

    TEST_CPU()

    {

    CpuTest=$(echo "$CPUD>=$PoleCpu"|bc)

    if [ $CpuTest -eq 1 ];then

    message="当前CPU使用率达$CPUD%,超过指标$PoleCpu%--$curr_date"

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    fi

    }

    #检测内存

    TEST_MEM()

    {

    MemTest=$(echo "$MEM>=$PoleMem"|bc)

    if [ $MemTest -eq 1 ];then

    message="当前内存使用率达$MEM%,超过指标$PoleMem%--$curr_date"

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    fi

    }

    #检测负载

    TEST_LOAD()

    {

    LadTest=$(echo "$LOAD>=$PoleLad"|bc)

    if [ $LadTest -eq 1 ];then

    message="15分钟平均负载为$LOAD,超过指标$PoleLad--$curr_date"

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    fi

    }

    #检测硬盘空间

    TEST_DISK()

    {

    DiskUse=$(df|sed -e '1d;s/%//g'|awk '{print $5}'|xargs)

    for Dfree in $DiskUse ; do

    if [ "$Dfree" -ge "$PoleIde" ];then

    message="硬盘使用空间超过指标$PoleIde%--$curr_date"

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    break

    fi

    done

    }

    #检测硬盘IO状态

    TEST_IO()

    {

    DiskUseIO=`/usr/local/bin/iostat -x 1 1|awk '{if ($1 ~/^sd/) print $2}'`

    for DiskIO in $DiskUseIO ; do

    echo $DiskIO

    DiskIoTest=$(echo "$DiskIO>=$PoleHOI"|bc)

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    break

    fi

    done

    }

    #检查程序状态

    TEST_EXE()

    {

    for exe in $EXE ; do

    echo "开始检测$exe进程"

    exetest=$(ps -ef|grep $exe|grep -v grep|awk '{print$NF}')

    #echo $exetest

    echo "$exetest 进程当前心跳正常$curr_date" >>$LogDir/oracle.log

    if [ -z "$exetest" ] ; then

    message="$exe进程不存在!--$curr_date"

    echo $message >> $LogDir/errlog

    echo $message

    SEND_SMS

    #重启oracle

    sleep 3

    sh /home/oracle/startdb.sh

    sleep 60

    #TEST_EXE

    fi

    done

    }

    SEND_SMS()

    {

    message1="24服务器告警:"

    Message2=$message1$message

    echo $message2

    for Tel in $TELNO ; do

    mysql -h10.116.21.27 -uinfosms -pinfosms -Dinfosms <

    INSERT INTO smssend02

    (ServerCode,SmsServerCode,GroupID,PRIORITY,Calling,Called,Payer,OrderDatetime,

    SendDatetime,EffectStartTime,effectendtime,InvalidDatetime,FeeValue,ifFee,Message,

    hideflag,MsgType,SmsFeeType,IfsmsReport,ServiceType,MorelatetoMTFlag,Reserve,

    optempid,optuserid,clientProgramtype,optcode,OPTIP,remark)

    VALUES

    (2,1,NULL,1,'106558****','$Tel','$Tel',Now(),Now(),'00:00:00','23:59:59','$InvalidDatetime',0,1,'$Message2',NULL,0,1,0,'MYJQF',0,NULL,900005,NULL,5,NULL,'75228999',NULL);

    AgentSms

    done

    }

    main()

    {

    echo "主程序"

    run_env

    TEST_CPU

    TEST_MEM

    TEST_LOAD

    TEST_DISK

    TEST_IO

    TEST_EXE

    }

    main

    exit 0

    展开全文
  • 10个经典Linux Shell脚本

    2021-05-11 09:48:45
    Linux Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序...

    Linux Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(也就是我们所说的shell脚本)。

    Shell脚本出现至今,出现了许多的Linux Shell脚本案例,本文我们为大家介绍10个经典的Linux Shell脚本。

    1.定义一个颜色输出字符串函数

    方法1:

    function echo_color() {

    if [ $1 == "green" ]; then

    echo -e "\033[32;40m$2\033[0m"

    elif [ $1 == "red" ]; then

    echo -e "\033[31;40m$2\033[0m"

    fi

    }

    方法2:

    function echo_color() {

    case $1 in

    green)

    echo -e "[32;40m$2[0m"

    ;;

    red)

    echo -e "[31;40m$2[0m"

    ;;

    *)

    echo "Example: echo_color red string"

    esac

    }

    使用方法:echo_color green "test" function关键字定义一个函数,可加或不加。

    2.批量创建用户

    #!/bin/bash

    DATE=$(date +%F_%T)

    USER_FILE=user.txt

    echo_color(){

    if [ $1 == 'green' ]; then

    echo -e "[32;40m$2[0m"

    elif [ $1 == 'red' ]; then

    echo -e "[31;40m$2[0m"

    fi

    }

    # 如果用户文件存在并且大小大于0就备份

    if [ -s $USER_FILE ]; then

    mv $USER_FILE $USER_FILE-$DATE.bak

    echo_color green "$USER_FILE exist, rename ${USER_FILE}-${DATE}.bak"

    fi

    echo -e "User Password" >> $USER_FILE

    echo "-------------------">> $USER_FILE

    for USER in user{1..10}; do

    if ! id $USER &>/dev/null; then

    PASS=$(echo $RANDOM |md5sum |cut -c 1-8)

    useradd $USER

    echo $PASS |passwd --stdin $USER &> /dev/dell

    echo -e "$USER  $PASS" >> $USER_FILE

    echo "$USER User create successful."

    else

    echo_color red "$USER User already exists!"

    fi

    done

    3.获取随机字符串或数字

    获取随机8位字符串:

    方法1:

    # echo $RANDOM |md5sum |cut -c 1-8

    471b94f2

    方法2:

    # openssl rand -base64 4

    vg3BEg==

    方法3:

    # cat /proc/sys/kernel/random/uuid |cut -c 1-8

    ed9e032c

    4.获取随机8位数字:

    方法1:

    # echo $RANDOM |cksum |cut -c 1-8

    23648321

    方法2:

    # openssl rand -base64 4 |cksum |cut -c 1-8

    38571131

    方法3:

    # date +%N |cut -c 1-8

    69024815

    5.检查软件包是否安装

    #!/bin/bash

    if rpm -q sysstat &>/dev/null; then

    echo "sysstat is already installed."

    else

    echo "sysstat is not installed!"

    Fi

    6.检查MySQL主从同步状态

    #!/bin/bash

    USER=bak

    PASSWD=123456

    IO_SQL_STATUS=$(mysql -u$USER -p$PASSWD -e  show slave statusG  |awk -F:  /Slave_.*_Running/{gsub(": ",":");print $0} )  #gsub去除冒号后面的空格

    for i in $IO_SQL_STATUS; do

    THREAD_STATUS_NAME=${i%:*}

    THREAD_STATUS=${i#*:}

    if [ "$THREAD_STATUS" != "Yes" ]; then

    echo "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!"

    fi

    done

    7.批量主机磁盘利用率监控

    前提监控端和被监控端SSH免交互登录或者密钥登录。 写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port

    #!/bin/bash

    HOST_INFO=host.info

    for IP in $(awk '/^[^#]/ {print $1}' $HOST_INFO); do

    USER=$(awk -v ip=$IP 'ip==$1 {print $2}' $HOST_INFO)

    PORT=$(awk -v ip=$IP 'ip==$1 {print $3}' $HOST_INFO)

    TMP_FILE=/tmp/disk.tmp

    ssh -p $PORT $USER@$IP df -h > $TMP_FILE

    USE_RATE_LIST=$(awk 'BEGIN{OFS="="} /^\/dev/ {print $NF,int($5)}' $TMP_FILE)

    for USE_RATE in $USE_RATE_LIST; do

    PART_NAME=${USE_RATE%=*} ##从右到左,非贪婪匹配,匹配到的删除

    USE_RATE=${USE_RATE#*=} ##从左到右,非贪婪匹配,匹配到的删除

    if [ $USE_RATE -ge 10 ];then

    echo "Warning: $IP $PART_NAME Partition usage $USE_RATE%!"

    fi

    done

    done

    8.检查主机存活状态

    方法1:将错误IP放到数组里面判断是否ping失败三次

    #!/bin/bash

    for IP in $IP_LIST; do

    NUM=1

    while [ $NUM -le 3 ]; do

    if ping -c 1 $IP &> /dev/null; then

    echo "$IP Ping is successful."

    break

    else

    FAIL_COUNT[$NUM]=$IP

    let NUM++

    fi

    done

    if [ ${#FAIL_COUNT[*]} -eq 3 ]; then

    echo "${FAIL_COUNT[1]} Ping is failure!"

    unset FAIL_COUNT[*]

    fi

    done

    方法2:将错误次数放到FAIL_COUNT变量里面判断是否ping失败三次

    #!/bin/bash

    for IP in $IP_LIST; do

    FAIL_COUNT=0

    for (( i=1;i<=3;i++)); do

    if ping -c 1 $IP &>/dev/null; then

    echo "$IP Ping is successful."

    break

    else

    let FAIL_COUNT++

    fi

    done

    if [ $FAIL_COUNT -eq 3 ]; then

    echo "$IP Ping is failure!"

    fi

    done

    方法3:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败

    #!/bin/bash

    ping_success_status() {

    if ping -c 1 $IP &>/dev/null; then

    echo "$IP Ping is successful."

    continue

    fi

    }

    for IP in $IP_LIST; do

    ping_success_status

    ping_success_status

    ping_success_status

    echo "$IP Ping is failure!"

    done

    9.5.检查服务状态

    #!/bin/bash

    PORT_C=$(ss -ant |grep -c 6443)

    PS_C=$(ps -ef |grep kube-apiserver |grep -vc grep)

    if [ $PORT_C -eq 0 -o $PS_C -eq 0 ]; then

    echo "kube-apiserver service dowmped"

    else

    echo "kube-apiserver service running!"

    fi

    10.检查网站可用性

    #!/bin/bash

    #--------------------

    #1)检查URL可用性

    #方法1:

    check_url() {

    HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $1)

    if [ $HTTP_CODE -ne 200 ]; then

    echo "Warning: $1 Access failure!"

    fi

    }

    #方法2:

    check_url_2() {

    if ! wget -T 10 --tries=1 --spider $1 &>/dev/null; then

    #-T超时时间,--tries尝试1次,--spider爬虫模式

    echo "Warning: $1 Access failure!"

    fi

    }

    #check_url www.baidu.com

    #check_url_2 www.aaaa.com

    #2)判断三次URL可用性

    #思路与上面检查主机存活状态一样。

    #---------------------------------

    URL_LIST="www.baidu.com www.agasgf.com"

    #------

    #方法1:利用循环技巧,如果成功就跳出当前循环,否则执行到最后一行

    check_url_3() {

    HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $1)

    if [ $HTTP_CODE -eq 200 ]; then

    continue

    fi

    }

    for URL in $URL_LIST; do

    check_url_3 $URL

    check_url_3 $URL

    check_url_3 $URL

    echo "Warning: $URL Access failure!"

    done

    #------

    #方法2:错误次数保存到变量

    for URL in $URL_LIST; do

    FAIL_COUNT=0

    for ((i=1;i<=3;i++)); do

    HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)

    if [ $HTTP_CODE -ne 200 ]; then

    let FAIL_COUNT++

    else

    break

    fi

    done

    if [ $FAIL_COUNT -eq 3 ]; then

    echo "Warning: $URL Access failure!"

    fi

    done

    #------

    #方法3:错误次数保存到数组

    for URL in $URL_LIST;do

    NUM=1

    unset FAIL_COUNT

    while [ $NUM -le 3 ]; do

    HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)

    if [ $HTTP_CODE -ne 200 ]; then

    FAIL_COUNT[$NUM]=$URL

    let NUM++

    else

    break

    fi

    done

    if [ ${#FAIL_COUNT[@]} -eq 3 ];then

    echo "Warning: $URL Access failure!"

    fi

    done

    以上就是为大家介绍的10个经典Linux Shell脚本,对我们自己使用Linux系统编写shell脚本有很大的启发和参考的意义。包括一些简单的命名规则,shell语句的语法等等,在本站的Linux教程中都有详细的讲解,可以作为小伙伴们学习shell语句,编写shell脚本的依据。

    展开全文
  • shell脚本监控进程

    2021-05-11 23:40:45
    直接以实例示范如何使用shell脚本实现对待监测进程的监测:背景:服务器需要确保sendFlowMail.py脚本的运行。思路:故编写一个shell脚本,按周期(60秒)判断该进程是否在运行,若未运行则确保其运行。#!/bin/shPWD=`...

    直接以实例示范如何使用shell脚本实现对待监测进程的监测:

    背景:服务器需要确保sendFlowMail.py脚本的运行。

    思路:故编写一个shell脚本,按周期(60秒)判断该进程是否在运行,若未运行则确保其运行。

    #!/bin/sh

    PWD=`pwd`

    while true;do

    ps -fe|grep sendFlowMail.py |grep -v grep

    if [ $? -ne 0 ]

    then

    echo "start process....."

    cd /opt/sendFlowInfo/

    python sendFlowMail.py

    cd ${PWD}

    else

    echo "sendFlowMail.py is running....."

    fi

    sleep 60

    done

    #####

    总结

    以上是编程之家为你收集整理的shell脚本监控进程全部内容,希望文章能够帮你解决shell脚本监控进程所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • 使用cron定时执行一个简单的shell监控脚本,将结果重定向到一个文本文件中。 cron 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 使用 crontab 命令 –编辑计划任务:crontab -e [-u 用户名] –...
  • 方法1:设置重启restart.sh脚本,crontab 设置定时任务,定时重启。 restart.sh #!/bin/sh ps -ef | grep pictureTiming | awk '{print $2}'|xargs kill -9 ps -ef | grep kilnheadRecognition | awk '{print $2}'|...
  • cron定时任务优点:系统进程,不易被回收缺点:频率最低为一分钟执行一次脚本注意:监控其他服务只需要替换java为对应的进程即可,如替换为进程中包含mongod-shardsvr1.conf字符的进程。#!/bin/bashcount=`ps aux | ...
  • 编写SHELL脚本监控主机1、用vi命令在/root目录是新建一个脚本文件sysmon.sh:内容如下:#!/bin/bashdug=$(df-h|grep"/$"|awk'{print$4}'|awk-F%'{print$1}')cug=$(expr100-$(mpstat|tail-1|awk'{print$10}'|awk-F.'{...
  • #!/bin/bash usage() { echo "Useage : $0" echo "eg.... sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk '{print $9 }'... 2,此脚本使用了sed、awk命令,不了解的朋友,建议好好掌握下,这二个命令在linux中那是相当值得深究的。
  • Linux实用监控脚本——使用 Shell 检测进程 CPU 利用率,在对应用服务进行维护时,我们经常遇到由于 CPU 过高导致业务阻塞,造成业务中断的情况。CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对...
  • 利用shell脚本实现每隔60秒磁盘内存数据监控#!/bin/bash#Author:GaoHongYu#QQ:1061767621#Time:2019-12-24 18:43:22#Name:ncjk.sh#Version:V1.0clearxtip=$(hostname -I)cprl=$(df -Th |head -2|tail -1|cut -d " " ...
  • [root@master shell]# cat monitoring_host.sh #!/bin/bash ip=ifconfig ens33 | awk '/inet/{print $2}' echo “本机的IP是:” $ip cpu=uptime |awk '{print "CPU的负载情况\t1分钟负载情况:"$8"\t5分钟负载情况:...
  • LINUX服务器存储监控SHELL脚本 #!/bin/bash echo "需监控目录:" echo "/data" echo "data目录存储写入test.txt文件" du -s data > /data/test.txt echo "对文件赋权" chmod 777 /data/test.txt echo "查看...
  • 但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我们下面就写个小小的shell例子,来完成这个对执行过程中条件语句中的...
  • #!/bin/bash#############################################检查配置文件中的进程是否存在,并且根据配 ##置文件中进程的CPU占用率阕值 内存占用率阕 ##值来确定是否需要记录 #####################################...
  • 脚本1:编写SHELL脚本监控主机1、用vi命令在/root目录是新建一个脚本文件sysmon.sh,内容如下:附:a:使用df命令提取根分区的磁盘占用率:如下图所示:使用df -h命令查看磁盘分区的使用情况,其中根分区的已用空间...
  • 经常需要对服务器各种资源进行监控,例如:CPU的负载监控,内存利用率监控,磁盘的使用率监控等等,以在系统出现异常时及时报警,通知系统管理员,本文就是个人根据自己的需求以shell脚本实现对系统资源的监控报警...
  • 1,shell脚本:check_app.sh功能:检测站点进程是否运行,若没运行则执行程序启动进程,然后检测站点是否能正常访问,若不能访问则kill掉站点相关进程,然后重新启动程序。代码:复制代码 代码示例:#!/bin/sh#设置...
  • 为确保php页面在后台运行,写了一个监控脚本,假设程序异常退出,那么可以自动重启。shell脚本/usr/local/scripts/receve.sh内容:#!/bin/bash#funtion:keep receve....
  • 一个用于监控网站运行情况的shell脚本,实现了监控的自动化运行。原理:按固定频率不停访问给出的URL,当网站不可访问时自动给设定邮箱发送告警邮件以通知用户。例子:复制代码 代码示例:#!/bin/sh# Edit: ...
  • 今天分享一个Linux网卡实时流量查看的shell脚本.以下是脚本:#!/bin/bashif [ -z "$1" ]; thenechoecho usage: $0 network-interfaceechoecho e.g. $0 eth0echoexitfiIF=$1while truedoR1=`cat /sys/class/net/$1/...
  • /bin/bashif [ "$#" -lt 2 ] # $# 传递给脚本或函数的参数个数thenecho "Usage: $0 program" # $0 脚本名称exit -1;fiSLEEP_TIME=$1LOG=$2while truedo#线程数thread_num=`sar -q 1 1 | awk ‘/^Average:/{print $3...
  • 以tomcat为例,监控并启动应用服务的端口shell脚本命令如下 #/bin/bash time=`date +%Y-%m-%d-%H:%M` echo "app-Script start time" $time >> /home/listen_port/listen_port.log app=`netstat -pltun |grep 8080 |...
  • linux环境使用ping命令+时间戳记录到文件里面生产环境中, 网络是否稳定(网络时延)是一个很重要的指标. 为了方便检查网络时延的大小, 我们可以通过ping命令实现长时间的网络监控。一、ping命令的使用1、 常用参数-i:...
  • Linux监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少。下面是给出的一个监控磁盘空间空间shell脚本的样本.robin@SZDB:~/dba_scripts/custom/bin> more ck_fs_space.sh#!/bin/bash# -------...
  • 分享一个Linux下,监控MySQL主从状态及配合企业微信机器人报警的Shell脚本SLAVE_IP:为监控的主机IPUSER:为msyql用户PASSWORD:为mysql密码WHEREIS_MYSQL:为mysql命令路径WEBHOOK:为企业微信机器人Webhook地址wx...
  • 在服务器较多的系统环境...这里主要提供了CPU、内存、磁盘利用率监控SHELL脚本。可以根据自己的系统环境做简单的修改即可使用。附CPU压力测试SHELL脚本(网上找到的,经测试可用)执行脚本时后面添加CPU数量,如:./...
  • zabbix shell监控脚本

    2020-12-24 19:27:53
    大规模应用性能监控,工业物联网设备监控 边缘计算,立即前往 最新产品和实时动态重磅发布 ,立即查看","btn1":"立即开通","link2":"https://help.aliyun.com/product/54825.html","title":"时间序列数据库 TSDB"}],...
  • 最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建...创建监控脚本svnmonit.sh#! /bin/sh#进程名字可修改PRO_NAME=svnservePORT=58652REP_DIR=/www/svndatawhile true ; d...
  • 思路java程序获取linux进程信息可以通过shell脚本获取进程信息、通过读取proc文件系统获取进程信息。 但是为了系统的安全性、方便维护等角度出发,更多的是java通过shell获取和linux交互能力。java程序中要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,086
精华内容 17,234
关键字:

linuxshell监控脚本

linux 订阅