【发布时间】:2017-01-13 21:06:24
【问题描述】:
我已经参考了 10 多个类似问题的链接,但没有一个有效。我在 ubuntu 16.04 docker 容器 中工作。我正在尝试设置 cron 作业。我推荐了这个link 来安装cron。
为了制作演示,在crontab -e中添加以下行(作为root用户)
* * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
保存文件时会通知crontab: installing new crontab,但在指定位置没有创建文件。
以下步骤是我试图解决这些问题,但没有一个有效。
- 将 crontab
SHELL=/bin/sh更改为SHELL=/bin/bash -
在 crontab -e 中追加 2>&1
* * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log 2>&1 检查权限
/etc/crontab(root用户我也以root用户crontab -e运行)-
我在 /var/log/ 中找不到任何日志文件。也找不到 var/log/syslog。请注意,它是一个 ubuntu docker 容器。我已尝试使用以下命令,但找不到任何与 cron 相关的日志。
find / -type f -name '*.log'
注意: 其实问题的根源来自here。如果您需要任何其他信息,请在评论中提及。
任何人都可以帮助我在这里做错了什么吗?
更新
我尝试了@BMitch 答案的相同复制,但这也会产生相同的问题。我等了超过 5 分钟,但在 /var/www/public/cronfile.log 中没有生成 cron 日志文件,请看我的资料
[root@bu bu]# docker run -it --rm ubuntu
root@a256be07f23a:/# ( apt-get update && apt-get install cron ) >/install.log 2>&1
root@a256be07f23a:/# service cron start
* Starting periodic command scheduler cron [ OK ]
root@a256be07f23a:/# mkdir -p /var/www/public
root@a256be07f23a:/# crontab - <<EOF
> * * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
> EOF
root@a256be07f23a:/# crontab -l
* * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
root@a256be07f23a:/# date
Fri Sep 9 04:47:50 UTC 2016
root@a256be07f23a:/# date
Fri Sep 9 04:50:59 UTC 2016
root@a256be07f23a:/# ls -al /var/www/public
total 0
drwxr-xr-x 2 root root 6 Sep 9 04:47 .
drwxr-xr-x 3 root root 20 Sep 9 04:47 ..
root@a256be07f23a:/# date
Fri Sep 9 04:51:21 UTC 2016
root@a256be07f23a:/# ls -l /var/spool/cron/crontabs/
total 4
-rw------- 1 root crontab 254 Sep 9 04:47 root
root@a256be07f23a:/#
版本检查
root@660f8f6d128e:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
【问题讨论】:
-
我不知道这个问题有什么问题。请说明投反对票的原因,否则错误仍然存在。
标签: ubuntu docker cron crontab ubuntu-16.04