昨天在服务器上配置了kettle的转换,准备用linux自带的crontab执行定时任务
今天早上一看数据库更新时间,还是没有更新,crontab没执行kettle的转换脚本,怀疑是脚本的问题,所以手动执行了一下daily_run.sh脚本,脚本是能运行的,并且数据库中的数据也更新了
网上有一种说法,脚本能单独执行,但是在crontab中不行可能是由于脚本中引用了相对路径,但是我的脚本中路径都是绝对路径,所以应该不是脚本的问题。
不是脚本问题,那就是crontab的问题,所以我打算生成一个最简单的文件来看看定时任务到底执行了没有
最后在19分的时候生成了test文件,里面也有相应的内容,所以定时任务也是生效的.....???????
折腾很久之后,看到了crontab日志上的时间不对........
我的系统时区是Asia/Shanghai,可以看到当前时间是2020年4月2日14点,但是crontab最新的日志时间是2020年4月2日6点,差了8个小时,系统时区好像和crontab时区不一样
网上搜了一下关于crontab时区的问题,需要在/etc/crontab文件中添加如下配置
配置好之后,重启了crontab,再看了眼日志,时间和系统时间一样了,并且定时任务也能按时执行
crontab在配置定时任务时需要配置时区,否则会导致执行时间差