{"id":1550,"date":"2021-10-24T01:46:18","date_gmt":"2021-10-23T17:46:18","guid":{"rendered":"https:\/\/www.siediyer.cn\/?p=1550"},"modified":"2021-10-24T01:48:09","modified_gmt":"2021-10-23T17:48:09","slug":"%e7%9b%91%e6%8e%a7nginx%e9%94%99%e8%af%af%e6%97%a5%e5%bf%97%e5%b9%b6%e5%8f%91%e9%82%ae%e4%bb%b6%e6%8a%a5%e8%ad%a6%e7%9a%84shell","status":"publish","type":"post","link":"https:\/\/www.siediyer.cn\/?p=1550","title":{"rendered":"\u76d1\u63a7nginx\u9519\u8bef\u65e5\u5fd7\u5e76\u53d1\u90ae\u4ef6\u62a5\u8b66\u7684shell"},"content":{"rendered":"<p>1\u3001nginx \u9ed8\u8ba4\u7684error_log \u683c\u5f0f<br \/>\n2\u3001centos7 \u7cfb\u7edf<br \/>\n3\u3001\u901a\u8fc7\u8bbe\u7f6e \/etc\/mail.rc \u6765\u53d1\u62a5\u8b66\u90ae\u4ef6\uff0c\u8bbe\u7f6e\u793a\u4f8b<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Set smtp server of alert\r\nset bsdcompat\r\nset from=opsbot@example.com\r\nset smtp=smtp.example.com\r\nset smtp-auth-user=opsbot@example.com\r\nset smtp-auth-password=\"password\"\r\nset smtp-auth=login<\/pre>\n<p>\u4ee5\u4e0a\u53ef\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u66ff\u6362\u90ae\u7bb1\u548c\u5bc6\u7801<\/p>\n<p>4\u3001\u4ee3\u7801<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/bin\/sh\r\n## configuration\r\n## nginx error_log\r\nerror_log=\/var\/log\/nginx\/error.log\r\ntemp_file=\/tmp\/nginx.temp\r\nreciever=\"user@example.com  user2@example.com\"\r\ncheck_everything() {\r\nif [ ! -f \"$error_log\" ] ; then\r\necho \"error_log not exist.\" &amp;&amp; exit\r\nfi\r\nif [ ! -f \"$temp_file\" ] ; then\r\ntouch $temp_file\r\nfi\r\nif [ ! -n \"$reciever\" ] ; then\r\necho \"reviever not exist, please set.\" &amp;&amp; exit\r\nfi\r\n}\r\n## if $1 not exist,default minutes is from 00:00 to now\r\nget_minutes() {\r\ncur_time=`date +%H:%M:%S`\r\nif [ $1 ] ; then\r\nminute=$1\r\nif [ \"$minute\" -le \"9999\" -a \"$minute\" -ge \"1\" ] ; then\r\nago_time=`date -d \"$minute minutes ago\" +%H:%M:%S`\r\nfi\r\nelse\r\nhour_minutes=$(expr `date +%H` \\* 60)\r\nminutes=$(expr $hour_minutes + `date +%M`)\r\nago_time=`date -d \"$minutes minutes ago\" +%H:%M:%S`\r\nfi\r\n}\r\nget_error_upstream() {\r\nawk '{if(($2&gt;=start_time)&amp;&amp;($2&lt;=end_time)) print $0}' start_time=$ago_time end_time=$cur_time $error_log | \\\r\ngrep error | \\\r\nawk -F, '{print $5}'| \\\r\nawk -F':|\/' '{if($1 ~ \/upstream\/)printf \"%s:%s %s\\n\",$5,$6,$7}' |\\\r\nawk 'BEGIN{print \"host:port service_name error_count\"}{host_port[$1]=$1;service[$1]=$2;cnt[$1]+=1} \\\r\nEND{for(i in host_port) print host_port[i],service[i],cnt[i]}' &gt;$temp_file\r\n}\r\nsend_notification() {\r\nline=`wc -l $temp_file |awk '{print $1}'`\r\nif [ $line -gt 1 ] ; then\r\ncat $temp_file |mail -s \"Some Service Maybe down,Please check now!\" $reciever\r\nfi\r\n}\r\ncheck_everything &amp;&amp; \\\r\nget_minutes $@ &amp;&amp; \\\r\nget_error_upstream &amp;&amp;\\\r\nsend_notification &amp;&amp;\\\r\ncat $temp_file<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001nginx \u9ed8\u8ba4\u7684error_log \u683c\u5f0f 2\u3001centos7 \u7cfb\u7edf 3\u3001\u901a\u8fc7\u8bbe\u7f6e \/etc\/mail.r [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[111,112],"class_list":["post-1550","post","type-post","status-publish","format-standard","hentry","category-linux","tag-linux","tag-shell"],"_links":{"self":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1550"}],"version-history":[{"count":2,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1550\/revisions"}],"predecessor-version":[{"id":1554,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/1550\/revisions\/1554"}],"wp:attachment":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}