crontab常被用来执行周期性的命令,配置简单高效。近期在docker环境下使用crontab出现任务无法执行的问题。解决问题后特此记录,以示警醒。
crontab有两部分组成:crond和crontab
crond是服务部分,不启动,任务无法被执行。执行方式:
```
service crond restart/start/stop/status
crond -n &
```
上述两种方式都可启动。
crontab是任务管理部分,负责任务发布、查询等。
默认配置文件是/etc/crontab。我这里出现等问题是,我将任务写在配置文件中,但执行`crontab -u root -l`时,现实root无任务。
好像未使用默认配置文件。
因此需要手动指定配置文件,命令如下:
```
crontab /etc/crontab
```
docker中不识别默认配置文件,还有一种该法,打开/etc/pam.d/crond文件,然后注释掉“session required pam_loginuid.so”部分重启crond也可以。