linux和wsl执行方法相同,windows也可以通过这种方法在linux中依照如下方法完成。
crontab -e 后添加如下命令,每分钟执行
* * * * * /usr/bin/python3 /home/lighthouse/python/get_cpu_usage.py
先用如下脚本测试
import psutil
import datetime
import osdef get_cpu_usage():# 获取CPU的总使用率,interval参数设置为1,表示计算过去1秒内的平均CPU使用率usage = psutil.cpu_percent(interval=1)return usagedef write_to_file(cpu_usage):# 获取当前时间current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')# 写入到文件,如果文件不存在则创建current_file_path = os.path.abspath(__file__)current_directory = os.path.dirname(current_file_path)write_file_path = os.path.join(current_directory, "cpu_usage_log.txt")with open(write_file_path, 'a') as file:file.write(f"{current_time} - CPU Usage: {cpu_usage}%\n")if __name__ == "__main__":# 获取CPU占用率cpu_usage = get_cpu_usage()# 写入到文件write_to_file(cpu_usage)
执行结果如下:
2024-05-28 11:59:02 - CPU Usage: 2.6%
2024-05-28 12:00:02 - CPU Usage: 5.7%
2024-05-28 12:01:02 - CPU Usage: 2.6%
2024-05-28 13:59:56 - CPU Usage: 13.4%
2024-05-28 14:00:05 - CPU Usage: 6.4%
2024-05-28 14:01:01 - CPU Usage: 7.4%
上面标蓝是我中午吃饭电脑休眠的结果,任务直接停止了,这要是我电脑休眠了任务岂不是错过了,注意要将windows的休眠任务关掉才行,包括盖盖子休眠和长时间不操作休眠都要关。
也可以借助如下shell脚本一步构建:
#!/bin/bashecho "环境变量=待填写" >> ~/.bashrc
source ~/.bashrcpip install -r requirements.txt# 获取当前脚本的绝对路径
SCRIPT_PATH="$(readlink -f "$0")"
# 获取脚本所在的目录
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"# 检查python脚本是否存在
PY_SCRIPT="$SCRIPT_DIR/script.py"echo $PY_SCRIPTif [ -f "$PY_SCRIPT" ]; then# 获取当前crontab内容,并追加新作业echo "0 9 * * * /usr/bin/python3 $PY_SCRIPT" | crontab -echo "Cron job for $PY_SCRIPT has been set."
elseecho "Error: $PY_SCRIPT does not exist."exit 1ficrontab -l
如果你有更复杂的软件依赖,环境设置等,建议通过ubuntu的基础镜像构建本地镜像并打包发布,这样给别人的时候可以一键运行。dockerfile如下
# 使用Ubuntu最新LTS版本作为基础镜像
FROM ubuntu:24.04# 安装Python 3和必要的工具
RUN apt-get update && apt-get install -y \python3 \python3-pip \cron \vim \&& rm -rf /var/lib/apt/lists/*# 设置Python 3为默认的Python版本
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1
RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1## 设置环境变量
ENV LANG C.UTF-8
ENV PYTHONUNBUFFERED=1# 拷贝宿主机文件到镜像中
COPY *.py /app
COPY requirements.txt /app
WORKDIR /app# 安装requirements.txt中指定的Python依赖
RUN python -m pip install -r /app/requirements.txt --break-system-packages# 设置每天12点的定时任务
RUN (crontab -l ; echo "0 12 * * * /usr/bin/python3 /app/your_script.py") | crontab
上述dockerfile可在目录下cmd中通过如下命令构建并运行:
docker build -t you_image_name .
docker run -it you_contaner_name you_image_name
使用以下命令将构建的镜像保存为 tar 文件(假设镜像名称为 "my-python-app"):
docker save -o my-python-app.tar my-python-app
接收者收到 tar 文件后,可以使用以下命令加载镜像:
docker load -i my-python-app.tar