码迷,mamicode.com
首页 > 系统相关 > 详细

检查某个服务产生core文件只发送1次短信,相同的core不发送(shell)

时间:2015-04-28 02:02:18      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:function   message   online   短信   

#!/bin/bash
#--------------------------------------------------  
#Created:2015-04-27
#Author:jimmygong
#Mail:jimmygong@taomee.com
#Function:check core && send message
#Version:1.0
#--------------------------------------------------
set -o nounset
set -o errexit

onlinedir="/opt/online"
tellist=(12345678912
12345678913
)

function sendmessage () {
currdate="$(date +%Y/%m/%d)"
message=$@
ip=`ifconfig eth1|awk ‘/inet addr:/‘|awk -F: ‘{print $2}‘|awk -F" " ‘{print $1}‘`
for phone in ${tellist[@]}
do
    links -dump "http://192.168.1.1/22222?mobile=$phone&msg=$currdate:$message:$ip&sign=11111111111111111111111111111111" > /dev/null 2>&1
done
}

function checkcore() {
num=`ls -1 $onlinedir|grep "^online"|wc -l`
for ((k=1;k<=${num};k++))
do
    listdir=`ls -1 $onlinedir|grep "^online"|sed -n $k‘p‘`
    for j in $onlinedir/$listdir
    do
        cd $j
        touch corefile
        for m in core.*
        do
            if [[ -e $m ]]
            then
                    core=0
                for f in `cat $j/corefile`
                do
                    if [[ $m = $f ]]
                    then
                        core=1
                        break
                    fi
                done
                if [[ $core -eq 0 ]]
                then
                    message="core"
                    sendmessage $message            
                    echo $m >> $j/corefile
                fi
            fi
        done
    done
done
}

checkcore
exit 0

============================说明======================================
目录结构
ll /opt/online/
drwxr-xr-x 2 root root 4096 2015-04-27 18:20 online.11
drwxr-xr-x 2 root root 4096 2015-04-27 18:20 online.22
drwxr-xr-x 2 root root 4096 2015-04-27 18:20 online.33

touch /opt/online/online.11/core.111
执行第1次脚本后会
ll /opt/online/online.11/
-rw-rw-r--. 1 root root 0 Apr 27 22:05 core.111
-rw-rw-r--. 1 root root 9 Apr 27 23:27 corefile
cat /opt/online/online.11/corefile 
core.111
执行第2次时就不会再发送短信和写入到这个corefile文件里了。

message=$@也可以写成message=""
$@             #所有的位置参数(每个都作为独立的字符串) 等同于"$1" "$2"... "$N"。
set -o nounset #在扩展一个没有的设置的变量的时候,显示错误的信息 
set -o errexit #如果一个命令返回一个非0退出状态值(失败),就退出.
num=`ls -1`    # -1  list one file per line
效果
ls -1 /opt/online/
online.11
online.22
online.33
需要安装links(apt-get -y install links或yum -y install links)

本文出自 “7928217” 博客,请务必保留此出处http://7938217.blog.51cto.com/7928217/1639520

检查某个服务产生core文件只发送1次短信,相同的core不发送(shell)

标签:function   message   online   短信   

原文地址:http://7938217.blog.51cto.com/7928217/1639520

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!