2016-09-16 103 views
0

如下所示,我有一個centos7容器,並且我配置了一個cron作業。但它似乎並沒有執行。我錯過了什麼?crontab不能在centos7容器上執行

主機:centos的:在Mac運行7搬運工容器

[[email protected] /]# 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) 
[[email protected] /]# 
[[email protected] /]# date 
Fri Sep 16 06:27:49 UTC 2016 

[[email protected] /]# crontab -l 
no crontab for root 

[[email protected] /]# cat mycron  
* * * * * echo "hello" >> /var/log/cron1.log 2>&1 

[[email protected] /]# touch /var/log/cron1.log 

[[email protected] /]# crontab -u root mycron 

[[email protected] /]# crontab -l 
* * * * * echo "hello" >> /var/log/cron1.log 2>&1 

[[email protected] /]# date 
Fri Sep 16 06:27:55 UTC 2016 
[[email protected] /]# cat /var/log/cron1.log 

[[email protected] /]# date 
Fri Sep 16 06:32:03 UTC 2016 
[[email protected] /]# cat /var/log/cron1.log 
[[email protected] /]# 

回答

0

Docker容器(通常)僅運行一個過程,而在一個典型的VM/OS設置有在執行事後臺運行多個服務像Cron執行等。 Cron服務可能不在您的容器中運行,因此不會觸發任何Cron作業。

您可以使用ps或類似命令檢查Cron服務是否正在運行。 http://www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/也提供有關啓動和停止Cron服務的信息。

最「類似Docker」的方法是使容器只運行Cron進程,因爲它是在前臺模式下運行的單個作業,並顯示進程的輸出而不是寫入日誌文件。 https://github.com/aptible/docker-cron-example做了類似於此的事情,雖然它在後臺運行Cron,然後在前臺運行tail日誌。