0%

crontab 排错

问题描述

在用 crontab 定时备份 gitlab 时, 发现任务总是不成功. 😱😱😱

命令如下

1
0 0 * * * /root/docker/gitlab/backup-gitlab.sh >> /root/docker/gitlab/backup-gitlab.log 2>&1

测试后发现日志总是没有任何输出, 说明这个命令没有被执行. 🤔🤔🤔

随便写了条命令测试

1
* * * * * echo "`date`" > /root/crontest.log

发现有输出…. 😲😲😲

那么说明 crontab 确实工作了…. 😵😵😵

沉思…. 🤔🤔🤔

解决方案

虽然我不太清楚是什么原因, 但是当我把以下配置加入 crontab 后他开始工作了. 😄😄😄

1
2
3
4
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

也许是因为显式指定了 shell, 以及一些其他的一些参数, 导致可以正常工作, 因为我之前一直怀疑是权限的问题. 🤣🤣🤣

参考连接

https://my.oschina.net/leejun2005/blog/1788342