linux中crontab定时任务导致磁盘满和云监控未报警的的坑

Posted 年少~年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中crontab定时任务导致磁盘满和云监控未报警的的坑相关的知识,希望对你有一定的参考价值。

一个后台开发者,兼职运维工作中,配置linux中crontab定时任务,导致磁盘满和云监控未报警的问题的坑。

1.磁盘满

使用命令

df -h

2.问题排查

2.1排查日志 命令

cat /var/log/messages

日志文件的默认路径是:/var/log

下面是几个重要的日志文件的路径及其包含的信息:

/var/log/syslog:它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息。

/var/log/messages:包括整体系统信息,其中也包含系统启动期间的日志。此外,还包括mail,cron,daemon,kern和auth等内容。

/var/log/cron 用来记录任务计划的运行日志,如下,分别表示:
任务运行的日期与时间 、在哪台主机上运行 、运行任务的程序[进程号] 、任务运行的具体信息

/var/log/user.log:记录所有等级用户信息的日志。

/var/log/auth.log:包含系统授权信息,包括用户登录和使用的权限机制等。

/var/log/daemon.log:包含各种系统后台守护进程日志信息。

/var/log/kern.log:包含内核产生的日志,有助于在定制内核时解决问题。

一直有提示错误提示:No configuration file found at /root/.esmtprc or /etc/esmtprc

2.2 进入根目录查看目录大小

cd /
du -sh *

使用这个命令,可以查看隐藏的  ls -la

2.3在进入磁盘大的目录

2.4结果

cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了root/.esmtp_queue/ 目录下的那些文件,日积月累可能撑破磁盘。

3.解决方法

3.1 删除不用的文件

可以参考已这个文档:Linux服务器清理磁盘

3.2 永久解决

设置MAILTO参数为空
方法一:

vim /etc/crontab
将 MAILTO=root 替换成  MAILTO=""

service crond restart

方法二:

crontab -e 
 第一行加上MAILTO=""(指定邮箱发送位置)

然后 重启 service crond restart

另外一个坑:开了磁盘报警功能,达到预警值了。结果没有消息通知。

后面阿里云排查,说需要主机监控这里要是运行中才行。

打工不易,业余时间捣鼓了一个小程序,欢迎访问和点评!

以上是关于linux中crontab定时任务导致磁盘满和云监控未报警的的坑的主要内容,如果未能解决你的问题,请参考以下文章

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Crontab定时任务教研笔记

crontab内环境变量问题(crontab定时任务执行脚本异常)

记一次Laravel定时任务导致日志没有写入权限的坑

Linux 初学篇定时任务调度和Linux 磁盘分区挂载

Linux定时任务-crontab

定时任务crontab在书写时的四大坑