docker python容器添加cron定时任务
docker python容器添加定时任务
准备工作
1.创建一个文件夹"logs"
2.创建一个python文件"test.python" ,内容如下:
import logging
# 配置日志
logging.basicConfig(
filename=“logs/cron.log”, # 日志文件名
level=logging.DEBUG, # 日志级别
format='%(asctime)s - %(levelname)s - %(message)s' # 日志格式
)
# 示例日志写入
logging.debug('这是一个调试级别的日志')
logging.info('这是一个信息级别的日志')
进入docker容器中
docker exec -it {{容器名}} /bin/bash
1. 在容器中安装cron
~: apt install cron
~: apt-get install vim -y
## 如果上面这个命令报错,则执行sudo apt update,再执行上面这个命令
~: crontab -e
## new crontab file is missing newline before EOF, can't install问题
## 在所在目录下创建一个cron-file.txt,文件名自定
2.编辑一个python测试文件cronTest.py
import os
import logging
from dotenv import load_dotenv
from datetime import datetime
# 加载.env文件中的配置信息
load_dotenv()
# 配置日志
logging.basicConfig(
filename='logs/test.log', # 日志文件名
level=logging.DEBUG, # 日志级别
format='%(asctime)s - %(levelname)s - %(message)s' # 日志格式
)
print("Current date and time:", datetime.now())
logging.debug(f"Current date and time:{datetime.now()}")
# 示例日志写入
logging.debug('这是一个调试级别的日志')
logging.info('这是一个信息级别的日志')
3.编辑一个定时任务cron-file.txt文件
## 每两分钟输出一个日志,执行cronTest.py
## 分 时 日 月 周(* * * * *)
*/2 * * * * cd /tf && python cronTest.py
4.crontab的操作
更新读取一下定时任务文件
crontab cron-file.txt
重启一下服务
service cron restart