crontab无法运行ubuntu 16.04
我已经提到了10+链接类似的问题,但没有一个工作。我在ubuntu 16.04 docker容器中工作。我正在尝试设置cron作业。我将其提交给安装cron 为了制作演示,请在crontab无法运行ubuntu 16.04,ubuntu,docker,cron,crontab,ubuntu-16.04,Ubuntu,Docker,Cron,Crontab,Ubuntu 16.04,我已经提到了10+链接类似的问题,但没有一个工作。我在ubuntu 16.04 docker容器中工作。我正在尝试设置cron作业。我将其提交给安装cron 为了制作演示,请在crontab-e中的下一行添加(作为root用户) 保存文件时,它将通知crontab:安装新的crontab,但不会通知在指定位置创建的任何文件 以下步骤是我试图解决的问题,但没有一个有效 将crontabSHELL=/bin/sh更改为SHELL=/bin/bash 在crontab-e中追加2>&1 ***echo
crontab-e
中的下一行添加(作为root用户)
保存文件时,它将通知crontab:安装新的crontab
,但不会通知在指定位置创建的任何文件
以下步骤是我试图解决的问题,但没有一个有效
SHELL=/bin/sh
更改为SHELL=/bin/bash
***echo“每分钟运行一次此命令”>/var/www/public/cronfile.log 2>&1
/etc/crontab
(root用户我也作为root用户运行crontab-e
)find/-type f-name'*.log'
更新 我尝试了@BMitch answer的相同复制,但这也会产生相同的问题。我等待了五分钟多,但是
/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:/#
Docker是一个应用程序隔离工具,不同于虚拟机是一个操作系统隔离工具。这意味着您在Docker容器中运行应用程序,默认情况下,在该容器中没有其他OS服务组件在运行。因此,如果配置crontab,就不会运行cron守护进程来处理该文件并启动作业。要为您运行此程序,需要运行
cron-f
,以便在前台启动守护程序。如果您的容器运行另一个应用程序(最有可能),那么您需要像supervisord这样的工具来启动多个应用程序以同时运行cron
编辑:这是我尝试在启动cron后在我的实验室中重现您的错误。如您所见,该文件是为我创建的:
$ docker run -it --rm ubuntu
root@f2e78e1bacde:/# ( apt-get update && apt-get install cron ) >/install.log 2>&1
root@f2e78e1bacde:/# service cron start
* Starting periodic command scheduler
root@f2e78e1bacde:/# mkdir -p /var/www/public
root@f2e78e1bacde:/# crontab - <<EOF
> * * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
> EOF
root@f2e78e1bacde:/# crontab -l
* * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
root@f2e78e1bacde:/# ls -al /var/www/public
total 12
drwxr-xr-x 2 root root 4096 Sep 7 11:54 .
drwxr-xr-x 3 root root 4096 Sep 7 11:53 ..
-rw-r--r-- 1 root root 30 Sep 7 11:54 cronfile.log
root@f2e78e1bacde:/# date
Wed Sep 7 11:54:18 UTC 2016
root@f2e78e1bacde:/# ls -l /var/spool/cron/crontabs/
total 4
-rw------- 1 root crontab 255 Sep 7 11:53 root
root@f2e78e1bacde:/#
$docker run-it--rm ubuntu
root@f2e78e1bacde:/#(apt get update和apt get install cron)>/install.log 2>&1
root@f2e78e1bacde:/#服务cron启动
*启动定期命令计划程序
root@f2e78e1bacde:/#mkdir-p/var/www/public
root@f2e78e1bacde:/#crontab->/var/www/public/cronfile.log
>EOF
root@f2e78e1bacde:/#crontab-l
******echo“每分钟运行一次此命令”>>/var/www/public/cronfile.log
root@f2e78e1bacde:/#ls-al/var/www/public
总数12
drwxr-xr-x 2根根目录4096年9月7日11:54。
drwxr-xr-x 3根根目录4096年9月7日11:53。。
-rw-r--r--1根根目录9月30日7日11:54 cronfile.log
root@f2e78e1bacde:/#日期
2016年9月7日星期三11:54:18 UTC
root@f2e78e1bacde:/#ls-l/var/spool/cron/crontab/
总数4
-rw------1根crontab 255 Sep 7 11:53根
root@f2e78e1bacde:/#
我100%确信cron已经在运行。“docker exec-it ubuntu/bin/bash”。这个命令把我带到ubuntu终端,在这里我可以安装cron,然后在检查运行状态时运行“servicecornstart”。在那之后,只有我尝试了上述所有。顺便说一句,我也尝试了您的解决方案cron-f,但它抛出“无法为指定会话生成/删除条目”。在这一点上我错了吗?请在评论中提及。由于cron正在运行,我无法重现您的问题。我的根crontab按预期在/var/spool/cron/crontab/root中创建,在创建/var/www/public目录后,将创建/var/www/public/cronfile.log,其中的日期戳每分钟都会更改。当cron停止并且我使用cron-f
启动它时,我也没有看到任何错误。既然您在问题中没有提到要启动cron,那么可能还有其他没有提到的东西使您无法实现这一点。谢谢您的努力!我已经做了你更新的,请看我更新的问题。我从昨天开始做了30多次同样的事情:-)cron有任何错误日志(如/var/log/httpd/error.log中的apache错误日志)我注意到您没有使用docker run
命令从干净的容器启动更新。请包括重现您的问题所需的一切。请查看我的更新问题,我所做的正是您所做的。此外,我也尝试在我的运行容器,但问题仍然存在。请复习,我不知道这个问题出了什么问题。请说明否决投票的原因,否则错误仍然存在。
root@660f8f6d128e:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ docker run -it --rm ubuntu
root@f2e78e1bacde:/# ( apt-get update && apt-get install cron ) >/install.log 2>&1
root@f2e78e1bacde:/# service cron start
* Starting periodic command scheduler
root@f2e78e1bacde:/# mkdir -p /var/www/public
root@f2e78e1bacde:/# crontab - <<EOF
> * * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
> EOF
root@f2e78e1bacde:/# crontab -l
* * * * * echo "Run this command every minute" >> /var/www/public/cronfile.log
root@f2e78e1bacde:/# ls -al /var/www/public
total 12
drwxr-xr-x 2 root root 4096 Sep 7 11:54 .
drwxr-xr-x 3 root root 4096 Sep 7 11:53 ..
-rw-r--r-- 1 root root 30 Sep 7 11:54 cronfile.log
root@f2e78e1bacde:/# date
Wed Sep 7 11:54:18 UTC 2016
root@f2e78e1bacde:/# ls -l /var/spool/cron/crontabs/
total 4
-rw------- 1 root crontab 255 Sep 7 11:53 root
root@f2e78e1bacde:/#