crontab没有在centos7容器上执行

时间:2016-09-16 06:38:18

标签: docker crontab centos7

如下所示,我有一个centos7容器,我配置了一个cron作业。但它似乎没有执行。我错过了什么?

主机:centos:在mac上运行7个docker容器

[root@a2118127510b /]# cat /etc/*-release
CentOS Linux release 7.2.1511 (Core) 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
BUG_REPORT_URL="https://bugs.centos.org/ 
CentOS Linux release 7.2.1511 (Core) 
CentOS Linux release 7.2.1511 (Core) 
[root@a2118127510b /]# 
[root@a2118127510b /]# date
Fri Sep 16 06:27:49 UTC 2016

[root@a2118127510b /]# crontab -l
no crontab for root

[root@a2118127510b /]# cat mycron      
* * * * * echo "hello" >> /var/log/cron1.log 2>&1

[root@a2118127510b /]# touch /var/log/cron1.log 

[root@a2118127510b /]# crontab -u root mycron 

[root@a2118127510b /]# crontab -l
* * * * * echo "hello" >> /var/log/cron1.log 2>&1

[root@a2118127510b /]# date
Fri Sep 16 06:27:55 UTC 2016
[root@a2118127510b /]# cat /var/log/cron1.log 

[root@a2118127510b /]# date
Fri Sep 16 06:32:03 UTC 2016
[root@a2118127510b /]# cat /var/log/cron1.log 
[root@a2118127510b /]# 

1 个答案:

答案 0 :(得分:0)

Docker容器(通常)只运行一个进程,而在典型的VM / OS设置中,有多个服务在后台运行,执行诸如Cron执行等操作。 Cron服务可能没有在您的容器中运行,因此不会触发任何Cron作业。

您可以使用ps或类似命令检查Cron服务是否正在运行。 http://www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/还提供有关启动和停止Cron服务的信息。

最“Dockerlike”的方法是拥有一个只运行Cron进程的容器,因为它是在前台模式下运行的单个作业,并显示进程的输出而不是写入日志文件。 https://github.com/aptible/docker-cron-example做了类似的事情,虽然它在后台运行Cron,然后tail在前台登录。