最近开发项目的时刻发现公司服务器用root账号登录的时刻 一直会提醒有新的信件,一直提醒一直提醒。
联想到另一台服务器上 的dead.letter文件天天都不停的变大 而且在 root家目录里 ,系统硬盘里。过十天半个月就会收到
服务器的磁盘使用率超90%的报警短信, 我突然感受是时刻去除了一下这个问题了。之前就四处搜索dead.letter 问题。然则一直没有
靠谱的跟我这个问题一样的。
行了不空话了 。
直入主题,经由不停的搜索。终于在一个外文网站上找到了谜底,主要原因我的服务器上有大量的准时义务 crontab ,而crontab中curl下令
执行有输出返回的信息后 ,linux会给对的crontab执行者 返回信息。而这个返回的信息就是通过邮件发给你的,通过邮件你可以查看你的准时义务
执行的情形 。而在这个执行义务的剧本中,有不少的开发小童鞋为了调整输出了不少内容 ,同时这个内容就返回到里你的邮箱里。这个执行一两次没有
什么问题。然则若是他几分钟就执行一次 或者是一分钟执行一次 ,那输出到你邮箱的内容就会很多了 。就像你的邮箱被垃圾流氓骚扰广告邮箱不停的
轰炸一样。
如何在Vim中更改颜色和主题
而谁人 dead.letter 死信也是一样 ,不知道linux对应用户的邮箱没有了 ,被删除掉了。投递信件的时刻没有信箱了,这个时刻就会天生 dead.letter 。知道这个也就知道若何解决了,
进入 /var/spool/mail/ 目录这里是每个用户的信箱 找到缺少的用户 touch 新建一个就可以了 。之后就不会再有死信问题了 。以后再有信件的话就会投入对应的用户文件名中。
说了半天照样没说,怎么去除发送邮件的问题。
照样整理一下英文的谁人QA吧,我看明了了 相信你也没问题。
问:
我有一些cron作业在Linux系统上隔夜运行。若是需要查看,这些作业中的每一个都会将信息输出到文本文件中。有些被编写为通过mail下令发送电子邮件。
然则,由于我将这些剧本放在了新系统上并添加到了crontab中,因此我收到了有关运行的每个作业的电子邮件。根目录发送的电子邮件过多。有没有设施住手这种行为?
答:
Crond通常在执行cron作业时发送电子邮件。它使用/ etc / crontab中的MAILTO变量来确定谁吸收电子邮件,默认情形下该用户是root。有几种方式可以住手此行为。
1.将MAILTO变量更改为空缺。
您可以编辑/ etc / crontab文件,并将MAILTO变量更改为以下内容: MAILTO=””
这将有效地禁用来自cron守护程序的所有电子邮件。然后,您可以在剧本中决议使用mailx下令或您选择的下令发送邮件。
这不是我的首选方式,由于当cronjob泛起错误时,我希望吸收电子邮件。
2.将STDOUT和STDERR重定向为null以抑制输出。
通过抑制剧本的输出,crond可以发送任何内容。
将以下内容添加到crontab条目中,以将所有输出(STDERR和STDOUT)发送到/ dev / null。例如: >/dev/null 2>&1 0 5 * * * /example/script >/dev/null 2>&1
这也有缺点,由于您将抑制所有可能有助于调试剧本问题的错误。
3.设置crond将剧本输出发送到系统日志,并禁用发送输出邮件。
您可以通过编辑/ etc / sysconfig / crond文件并更改CRONDARGS行来设置crond。添加“ -s”参数会将输出发送到系统日志,添加“ -m off”参数将克制crond发送作业输出的电子邮件。
例如:您将必须重新启动crond服务以读取新的参数: [root@centos7 ~]# cat /etc/sysconfig/crond # Settings for the CRON daemon. # CRONDARGS= : any extra command-line startup arguments for crond CRONDARGS=-s -m off systemctl restart crond.service
当作业运行时,以上任何一种方式都可以完全抑制来自cron守护程序的电子邮件。这在我看来并不理想,由于若是我的cron作业泛起错误,我想得到通知。我更喜欢写我的剧本以不发生任何输出(没有尺度输出,但仍然输出错误),或者只将STDOUT重定向到/ dev / null。若是发生错误,这将导致crond仅发送电子邮件。
仅仅重定向STDOUT的示例: 0 5 * * * /example/script > /dev/null
这就是我看到的解决方案
改写一下设置就可以了 固然你也可以在每行义务中添加。
看到这个的时刻 我也是才明了 fastadmin中推荐的 准时义务的花样 为什么是
* * * * * /usr/bin/php /www/yoursite/public/index.php /addons/crontab/autotask/index > /dev/null 2>&1 &
原创文章,作者:2d28新闻网,如若转载,请注明出处:https://www.2d28.com/archives/19515.html