计划任务没有执行,之前设置的都是ok的,但是这几天一直在查这个问题,为啥不执行,如下是计划任务的配置
0 4 find /home/golanger/log/ -type f -name "log$(date +%Y%m%d -d -1day)" -delete
疑点1:
是不是需要指定bash,将上述命令改为
0 4 /bin/bash find /home/golanger/log/ -type f -name "log$(date +%Y%m%d -d -1day)" -delete
但是这个好像没用,因为在crontab中默认指定的就是/bin/bash
经实验确实没有
疑点2:
是不是crond hang住了,之前就发生过这种事情,重启后测试无效
疑点3:
只能查日志了,看到如下报错
Feb 25 04:00:01 hd1-weiai-jd-go_weiai_project-004 CROND[22543]: (root) CMD (/bin/bash find /home/golanger/log/ -type f -name "log*$(date +)
Feb 25 04:00:01 hd1-weiai-jd-go_weiai_project-004 CROND[22541]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Feb 25 04:00:01 hd1-weiai-jd-go_weiai_project-004 CROND[22533]: (root) MAIL (mailed 125 bytes of output but got status 0x004b#012)
刚开始一直把关注点放到mailed这个上,还查看了maillog,如下
Feb 24 04:00:01 hd1-weiai-jd-go_weiai_project-004 postfix/sendmail[16345]: fatal: parameter inet_interfaces: no local interface found for ::1
Feb 25 04:00:01 hd1-weiai-jd-go_weiai_project-004 postfix/sendmail[22550]: fatal: parameter inet_interfaces: no local interface found for ::1
这个其实是postfix的配置问题,本次的问题不在这,是计划任务在执行完之后会通过postfix发邮件给执行完的用户邮箱,现在发不出去导致的,修改下配置就行了,但是与本次错误无关
[root@hd1-weiai-jd-go_weiai_project-004 log]# vim /etc/postfix/main.cf
inet_interfaces = all
inet_protocols = all
确保这两个都是all就可以了,然后重启postfix
疑点3:
上边的那个date为什么会没有后边的参数了,这个是正常的吗?是不是需要转义呢,然后我加了转义符号,成功
之前的日志:
之后的日志: