zoukankan      html  css  js  c++  java
  • 使用shell做过时处理以及发送邮件的事例

    实现功能

    1.过时处理

    在shell脚本中调用执行php,如果php在300秒内不能结束,则结束执行

    2。邮件发送

    在报错等情况时发送邮件,并且邮件内容包含执行php时输出的错误日志内容

    #!/bin/bash
    TIMEOUT=300
    FROM_ADDR="ph0-sys@group.co.jp"
    TO_ADDRS=(
    	"ph0-sys@group.co.jp"
    )
    CC_ADDRS=(
    
    )
    MAIL_CONTENT_FILE="/var/www/project/fuel/app/tasks/mailcontent.php"
    
    function sync(){
    	php_command="php /var/www/project/oil refine sync diff"
    	res=$($php_command)
    	if (( $?!=0 ))
    	then
    		sendmail ""
    		return 0
    	fi
    	if [[ -n $res ]]
    	then
    		sendmail ""
    		return 0
    	fi
    }
    
    function sendmail(){
    	if [ $BORG_FUEL_BATCH_ENV = development ]
    	then
    		subject='[borg ph0][DEV]同期ファイル作成失敗'
    	elif [ $BORG_FUEL_BATCH_ENV = staging ]
    	then
    		subject='[borg ph0][STG]同期ファイル作成失敗'
    	else 
    		subject='[borg ph0][PRD]同期ファイル作成失敗'
    	fi
    
    	from=$FROM_ADDR
    	to="${TO_ADDRS[@]}"
    	cc=""
    	for cc_mail in ${CC_ADDRS[@]}
    	do
    		cc="$cc -c $cc_mail "
    	done
    	
    	log_file="/var/www/borg/fuel/app/tasks/logs/$(date "+%Y")/$(date "+%m")/$(date "+%d").log"
    	title="同期ファイル作成処理はエラーになりました。"
    	grep_msg="ERROR - $(date "+%Y-%m-%d %H:%M")"
    	echo $title > $MAIL_CONTENT_FILE
    	cat $log_file | grep "$grep_msg" >> $MAIL_CONTENT_FILE
    	echo $1 >> $MAIL_CONTENT_FILE
    	
    	cat  "$MAIL_CONTENT_FILE" | mail -s "$subject" -r $from $cc $to
    	if(( $?!=0 ))
    	then
    		echo "通知メールは送信失敗。"
    	fi
    }
    
    function timeout_custom()
    {
            waitfor=$TIMEOUT
            command=$*
            $command &
            commandpid=$!
    
            ( sleep $waitfor ;sendmail "同期ファイル作成処理は${waitfor}秒以上実行しました。" ; kill -9 $commandpid  >/dev/null 2>&1 )&
            sleeppid=$!
            wait $commandpid >/dev/null 2>&1
            kill $sleeppid >/dev/null 2>&1
    }
    
    timeout_custom sync
    

      

  • 相关阅读:
    管理上第一是用人
    意义只存在于关系中,由其定义
    苦与累在希望面前啥也不是
    人是一切,组织是一切
    UI设计
    以理服人需要什么?
    灵活性是原则性基础上的灵活
    软件行业深层的文化属性
    自然原始分工
    把一个系统维护好需要做哪些工作?
  • 原文地址:https://www.cnblogs.com/gaoBlog/p/11423624.html
Copyright © 2011-2022 走看看