crontab踩坑总结

crontab部署没作用,但是命令行执行正常

一、发现crontab日志没有打开,打开crontab日志记录

cron的日志功能使用syslogd服务,不同版本linux可能装了不同的软件

  1. 修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉;
  2. 重启rsyslog服务service rsyslog restart
  3. 重启cron服务service cron restart

二、发现输出问题报错 (No MTA installed, discarding output)

因为没有指定output重定向到文件且不作任何输出,修改为重定向到文件 2>&1 &

三、还要考虑crontab与直接执行shell不共用环境变量

找了n种方案,最后还是觉得舍弃crontab的环境变量最靠谱,用绝对路径去找执行程序
但是还是出错了,因为找不到Go包含的package
最后尝试先在命令行echo $PATH echo $GOPATH,然后写死到脚本中
PATH=
export PATH
GOPATH=
export GOPATH
好使

至此,坑被我踩了个遍