• 邮件报警(postfix)


    postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性

    系统:CentOS release 6.5 (Final)  x86_64

    由于centos6后系统就安装了postfix 因此只需启动即可:
    配置如下:

    service postfix start                    //启动服务
    chkconfig postfix on                   //设置开机自启
    

     安装mailx:

    yum install -y mailx 
    改修配置文件添加如下内容:
    vim /etc/mail.rc 
    
    set from=xxx@xxx.com smtp=smtp.xxx.com              //邮件服务器
    set smtp-auth-user=xxx smtp-auth-password=xxx     //用户及密码
    set smtp-auth=login
    

     测试:

    echo '123'|mail -s "123" xxxx@xx.com
    

     业务需要监控主机是否宕机及服务状态所有我通过配置单向ssh免秘钥登录运用ssh命令来监控服务。

    ssh批量分发脚本:

    #!/bin/bash
    User=root
    passWord=123
    port=2266
    function YumBuild(){
    echo "正在安装epel源yum仓库,请稍后..."
    cd /etc/yum.repos.d/ &&
    [ -d bak ] || mkdir bak
    [ `find ./*.* -type f | wc -l` -gt 0 ] && find ./*.* -type f |  xargs -i mv {} bak/
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/null
    yum -y clean all &>/dev/null
    yum makecache &>/dev/null
    }
    rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/null
    if [ $? -gt 0 ];then
        YumBuild
        yum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit)
    fi
    [ -d ~/.ssh ] || mkdir ~/.ssh;chmod 700 ~/.ssh
    echo "正在创建密钥对...."
    rm -rf ~/.ssh/id_dsa ~/.ssh/id_dsa.pub
    ssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" &>/dev/null
    for ip in `cat /root/Pingip.txt`
    do
        ping $ip -c1 &>/dev/null
        if [ $? -gt 0 ];then
            echo "$ip无法ping通请检查网络" 
            continue
        fi
        sshpass -p "$passWord" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p2266 ${User}@$ip" &>/dev/null
        echo "$ip 密钥分发成功"
    done
    

    fping与ping的对比

    fping与ping中的date数据不同

    1. 它们使用的协议相同都是ICMP。

    2. 探测机制和默认回显相同都是延迟延迟。

    3. fping可同时探测多个ip,ping只能手工输出不通ip段。

    4. fping的数据包大小为56字节,ping的数据包字节为48(ping全部默认字节为56)。

    5. fping默认ping间距为25毫秒,ping默认为1秒。

    邮件报警脚本:

    #!/bin/sh
    if [ `which fping |wc -l` -eq 0 ];then 
    wget --limit-rate 500k http://www.fping.org/dist/fping-3.8.tar.gz
    tar zxvf fping-3.8.tar.gz && cd fping-3.8
    ./configure && make && make install
    fi
    rm -f result.txt
    cat /root/baojing/Pingip.txt |fping -u >>result.txt         //Pingip.txt为监控主机ip -u只显示ping不通的机子
    while read line
    do
            echo "$line宕机"|mail -s "报警" xxx@qq.com
    done <result.txt
    for line in `cat /root/baojing/ATSip.txt`                 //ATSip.txt 为服务机子IP
    do
    wget -SO /dev/null "http://www.baidu.com" -e "http_proxy=$line" &> /dev/null                  //wget代理访问
    if [ `echo $?` -eq 0 ] && [ `ssh -p2266 root@$line ps aux|grep /usr/local/tcacheserver/bin/traffic_ |grep -v grep |wc -l` -eq 3 ]
            then
         echo "" >/dev/null
     else
            echo "$line ATS is down"|mail -s "报警" xxx@qq.com
    fi
    done
    

  • 相关阅读:
    C# 使用 Microsoft.Feeds 组件获取 RSS 全文
    使用 Jquery 做类似搜索引擎效果
    ASP.NET MVC 利用 IHttpModule 实现路由调试
    Python 爬虫类库 Selenium 的常用方法介绍
    C# 中 New 关键词的几种用法
    ASP.NET 使用 IIS URL Rewrite 模块实现伪静态
    Java 源码分析之 HashTable
    Java 类中代码块和构造方法的执行顺序
    C# 中使用 FFmpeg.NET
    C# 项目中使用 ServiceStack.Redis 操作 Redis
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/7834789.html
Copyright © 2020-2023  润新知