[声明]
======================================================
1 文章是自己写的,但是内容好多来自网络。
======================================================
http://fr.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions
搞服务器开发,被要求干运维的工作,故做个笔记,
运维工作很多,但我要做的是监视服务器状态,所以如何发现问题,及发现问题及时通知相关人员是主要的。
一 发现问题:
1 本人自己写了个客户端去调用服务器的接口,发现一定时间内没有响应或网络连接失败就认为服务器出问题了。就调用发邮件。
2 程序写好后就放到crontab 里面,可以crontab -e 编辑crontab
二 发邮件
1 简单,直接写个sh文件,前提要安装mail程序,直接yum install -y mail 安装。
2 代码:
#!/bin/sh
TO="youremail@your.com"
FROM="root"
SUBJECT=" server status"
MSG=" 你要发送的报警消息"
cat <<EOF | /usr/sbin/sendmail -t
From: ${FROM}
To: ${TO}
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=frontier
Subject: ${SUBJECT}
Content-Type:
${MSG}
EOF
三 发报表,如果需要看每个接口访问时间等问题,需要发送一定格式的报表。
1 第一步写的程序吧数据插入到mysql,然后用php去读取数据并生产html格式的简单报表report.txt
2 把上面生产的报表发出去,这次用php的mail函数发送的邮件
3 代码:
<?php
$file = fopen("log/report.txt", "r");
$to = 'xx@xx.com';
$subject = 'Server info:' .date("y-m-d");
$msg = file_get_contents("log/report.txt");
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Aliyun Server <root@xx.com>' . "\r\n";
mail($to, $subject, $msg, $headers);
fclose($file);
?>
------------------------
[总结]
很简单吧,记录下来以防以后用得着自己却忘记了