一.定时任务总结
二.案例
①inode被写满
定时任务结尾不加&>/dev/null的以后就会导致/var/spool/clientmqueue满
大量的小文件【邮件】,邮件哪来的?
邮件系统服务没有开启的时候,同时定时任务不加&>/dev/null,定时任务的输出,排错,定时任务程序就会给root发邮件,导致inode满了。
防止大量小文件充满磁盘导致inode满的方法
- 尽量将cron任务里面的命令或脚本中的命令结尾加上>/dev/null或者2>&1,或者在写定时脚本时候,把输出定向到指定文件中(适合所有的情况)
- 当然也可以开启邮件服务,不过最好不要使用,因为邮件服务会带来安全隐患
- 加入定时清理任务,比如,将find /var/spool/clientmqueue/ -type f -mtime +30 | xargs rm -f 放入定时任务,每周处理一次,(centos5适用),如果是centos6/7,则处理的路径 /var/spool/postfix/maildrop/
②环境变量问题导致定时任务执行失败
手动执行脚本成功,放在定时任务执行失败。
解决方法
- 定时任务执行的脚本是非登录shell,所以脚本中使用的环境变量获取不到,所以定时任务执行了脚本执行的不正确
- 就是在脚本中,把调用/etc/profile中的环境在重新定义。
参考:oldboyedu