最近服务器经历了几次宕机,让我感觉应该多关注一下服务器的运行状况。我首先想到的就是要经常查看系统发给root的一些邮件信息,这些信息都是报告服务器上一些程序的运行状况,每次root登录时,系统都会提示我们有新的邮件。
使用mail命令就可以查看这些信息。问题是这样很不方便,你需要登录服务器。另外一种方法就是将这些消息邮件转发到外部邮箱里。
方法并不困难,就是添加一个别名,加入你的邮箱地址。
我使用的服务器是CentOS 6,需要编辑/etc/aliases这个文件,添加如下的代码:
root: yourexternalemailaddress@gmail.com
root后面跟的是你想要转发的邮箱地址。
然后运行下面的命令:
newaliases
重启 Postfix:-
service postfix restart
你可以测试一下,执行下面的命令:
echo test | mail -s "test message" root
如果没错的话,你很快就能从外部邮箱里收到一封信邮件。
进行了这样的设置后,查看服务器系统root邮件信息变得非常方便。但我也遇到了另外一个问题。因为在这个服务器上设定了大量的Corn Job,这些Job执行完成时都会给root发一封邮件,这些信息对于我来说没有多少价值。如何想让Corn Job在执行任务后不发送邮件?方法是在设定Job时尾部追加> /dev/null:
0 * * * * python /etc/example.py > /dev/null
在这篇文章里也提到了另外一种方法,就是去掉文件头上的MAILTO, 你可以读一下。
最后一点,如果你很久没有整理过root邮件,那可能会在服务器上积攒了成千上万封。如何一次将这些邮件清空删除?执行这样的命令:
#cat /dev/null > /var/spool/mail/root
这样会把所有发给root的邮件全部删除。谨慎使用。