crontab 在docker容器和脚本中的用法

1.crontab 语法

* * * * * cd ~/reconciliation && python3.6 reconcile.py

分 时 日 月 周

手动配置,crontab -e 进入编辑页面,直接编辑即可。

2.通过脚本配置定时任务

方法一:编辑 /var/spool/cron/用户名 文件,如:

echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root

优点:简单

缺点:需要root权限

方法二:编辑 /etc/crontab 文件,

echo "* * * * * root hostname >> /tmp/tmp.txt" >> /etc/crontab
需要注意的是,与常用的crontab 有点不同,/etc/crontab 需指定用名。而且该文件定义为系统级定时任务 不建议添加非系统类定时任务,编辑该文件也需要root权限

 

方法三:利用crontab -l 加 crontab file 两个命令实现自动添加

crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
由于crontab file会覆盖原有定时任务,所以使用 crontab -l 先导出原有任务到临时文件 “conf” 再追加新定时任务

优点:不限用户,任何有crontab权限的用户都能执行

缺点:稍微复杂

原文:https://blog.youkuaiyun.com/mzc11/article/details/81842534 

3.crontab 在docker中的应用

dockerfile中#配置crontab定时任务

ubuntu系统:
RUN apt-get install cron && touch /etc/cron.d/crontab && echo "*/15 * * * * cd ~/reconciliation && python3.6 reconcile.py" >> /etc/cron.d/crontab

#CMD ["/bin/bash"]
CMD cron && crontab /etc/cron.d/crontab && tail -f /dev/null

centos7系统:

RUN  yum install -y vixie-cron crontabs && service crond start && echo "*/15 * * * * cd ~/reconciliation && python3.6 reconcile.py" >> /etc/cron.d/crontab

CMD crontab /etc/cron.d/crontab && tail -f /dev/null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值