docker里面使用crontab遇到的坑

业务需要在docker里面使用crontab,安装好crontab之后。我在想怎样不进入容器就能自己添加或者修改cron任务。因为我的docker环境都是通过docker-compose配置的,首先想到的方法是通过dokcer-compose里面的volumes映射cron任务文件则crontab -e的操作对象文件。路径是 /var/spool/cron/crontabs以用户名命名的文件。映射是成功的,这个没任何毛病。重启cron之后发现crontab任务没有执行成功。于是想看日志。特么找了很久都找不到日志(不知道为什么会没有日志文件,我在宿主机同样有装crontab,宿主机是有log日志文件的)。

      于是装了个vim,于是尝试直接通过crontab -e 新增一个新的任务文件,居然成功了,比对了映射进来的文件和crontab -e创建的文件,完全一模一样啊。于是猜测是不是crontab -e的过程中系统会做一些操作之类的。后来一番折腾发现并不是,crontab仅仅只是读取该任务文件而已。于是再认真比对了下。毅然发现两个文件权限是不一样的,容器里面创建的文件是600权限,宿主机映射过来的文件是644权限。简直坑爹,第一次遇到权限低的能执行成功,权限高的反而执行失败?为了验证这个问题,于是把宿主机映射的文件修改为600权限。果然就是这个问题。我猜测是不是crontab有做什么权限的判断之类的,如果不是600权限则不允许执行这样?先记录下来,有时间再研究下这个问题。了解的网友也可以评论告诉我。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值