《crontab定时运行docker内py文件》

参考文章如下:
https://zhuanlan.zhihu.com/p/231539300
https://blog.csdn.net/hzy459176895/article/details/107978979

目的:要定时运行docker内的ontime_es.py文件

1 编写ontime_es.py文件,在同一个文件夹创建ontime_es .sh文件,如下:

在这里插入图片描述

1.1 需要注意的是,py文件头部要有:

#!/usr/bin/env python

1.2 .sh文件内容:其中python后面的路径是docker里面的路径

#!/usr/bin/env python
python /app/app/instrument/ontime_es.py

2 进入容器内部,查看路径:

2.1 输入命令进入docker内部 :
docker exec -it docker_name bash。
其中 docker_name是你容器的名字,可通过docker ps命令查看。

2.2 进入容器里后cd到ontime_es.py目录下:
在这里插入图片描述
此时我的路径为app/app/instrument,就是上面ontime_es.sh里面放的路径

2.3 给ontime_es.sh赋予权限,参考了上面的文章:

chmod +x ontime_es.sh
chmod 777 ontime_es.sh

3 crontab 内容编写

3.1 查看crontab
命令:cat /etc/crontab
在这里插入图片描述
3.2 查看当前用户的定时任务:
命令:crontab -l
在这里插入图片描述
3.3 设定定时任务
编辑crontab 通过命令:crontab -e
写入:30 5 * * * docker exec dps /bin/bash /app/app/instrument/ontime_es.sh
意思为,每天5点半运行容器dps中的ontime_es.sh
docker exec dps /bin/bash为进入容器,后面是ontime_es.sh在容器中的路径

3.4 启动定时任务
命令: systemctl restart crond

3.5 查看刚配置的定时任务
命令:crontab -l

3.6 查看运行结果
命令:cat /var/spool/mail/root

4 遇到的问题

4.1 一开始没有用sh文件,只用了py文件,报如下错误:
在这里插入图片描述

搜索解决方案:
在py文件前加上:#!/usr/bin/env python,但还是同样的错误,后来加上了sh文件,任务成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值