zoukankan      html  css  js  c++  java
  • 九、Shell脚本高级编程实战第九部

    一、监控mysql主从同步是否异常,如果异常,发送短信给管理员

    1)开发一个守护进程脚本每30秒实现检测一次。

    2)如果错误号是:1158、1159、1008、1007、1062,请跳过

    3)请使用数组实现上述要求

    #!/bin/sh
    errorno=(1158 1159 1008 1007 1062)
    mysql_cmd=" mysql -uroot -poldboy124 -S /data/3307/mysql.sock"
    while true
    do
    flag=0
    array=($($mysql_cmd -e "show slave statusG"v|egrep '_Running|Behind_Master|SQL_Errno" |awk '{print $NF}'))
       if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" =="0" ]
         then    
           echo "Mysql slave is ok"
       else
           for((i=0;i<${#errorno[*]};i++))
           do
              if [ "${array[3]}" -eq "${errorno[$i]}" ];then
                  $mysql_cmd -e "stop slave &&set global sql_slave_skip_count=1;start slave;"
              fi
           done
                char="Mysql slave is not ok"
                echo "$char"
                echo "$char"|mail -s "$char" 828882@qq.com
             fi
    sleep 5
    done

    二、for循环打印下面这句话字母不大于6的单词

    #!/bin/sh
    arr=(I am oldboy teacher welcome to oldboy training class)
    for word in ${arr[*]}
    do
       if [ ${#word} -le 6 ]
       then
         echo $word
      fi
    done

    三、监控web站点下目录/var/html/www下所有文件是否被恶意篡改,如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次

    #!/bin/sh
    n=`cat check_site.log|wc -l`
    while true
    do
    f= md5sum -c md5sum.db 2>/dev/null|grep FAILED|wc -l
    find1=`find  ./apache2.2.27/  -type f|wc -l`
    log=/tmp/check.log
    if [ $f -ne 0 ] || [ `cat $path/new_site.log|wc -l` -ne $n ]
      then
        echo "md5sum -c md5sum.db 2>/dev/null|grep FAILED" >$log
        diff $path/check_site.log $path/new_site.log>>$log
        mail -s "site is cuangai  $(date)"<$log
    fi
    sleep 3
    done

    四、对于脚本的调试,要查看报错信息,保持好的开发脚本的习惯,思路要清晰。复杂脚本要简单化分段式实现脚本。

    1)使用dos2unix处理window下写的脚本

         dos2unix  xx.sh脚本进行文件格式化

    2)使用echo 在命令中进行调试

    3)sh -x :将脚本执行的内容和参数显示在屏幕上

    4)set -x(set +x):  可以进行调试脚本的范围

     最后:

    推荐书籍:  Unix shell 范例精解(第4版)

  • 相关阅读:
    存储过程VMMS—审核
    简单之美—软件开发实践者的思考—故事场景3
    win8 去除快捷方式小箭头
    windows 下版本控制系统 安装与 配置
    win8 开机项的 删除
    Fedora18 KDE 的安装
    new FileOutputStream(fileName)时出现 FileNotFoundException
    eclipse的一些优化知识
    阿里
    常见算法题
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/11620510.html
Copyright © 2011-2022 走看看