Python 基础教程十之设置cron作业在bash sh文件中执行python脚本

简介
在上一节中,我们介绍了使用cron作业定时执行python脚本。这一节我们介绍使用bash sh文件执行批量python脚本。先回顾一下cron内容:
设置cron作业是一种在Linux系统中定时执行任务的方法。cron是一个用于在预定时间执行命令或脚本的工具。下面是完善且全面的答案:
概念:
cron是一个在Linux和类Unix系统中用于执行预定任务的工具。它允许用户在指定的时间间隔内自动执行命令或脚本。cron作业可以设置为每分钟、每小时、每天、每周或每月执行。
分类:
cron作业可以分为系统级别的和用户级别的。系统级别的cron作业由系统管理员设置,而用户级别的cron作业由普通用户设置。
优势:
- 自动化任务:cron作业可以自动执行,无需人工干预,提高工作效率。
- 灵活性:可以根据需求设置不同的时间间隔和执行频率。
- 可靠性:cron作业在系统后台运行,即使用户不登录系统也能正常执行。
- 轻量级:cron是系统自带的工具,占用系统资源较少。
应用场景:
- 定时备份:可以使用cron作业定时执行备份脚本,保护重要数据。
- 数据清理:可以定期清理过期的日志文件、临时文件等。
- 定时任务调度:可以定时执行一些重复性的任务,如数据同步、数据导入等。
- 系统监控:可以定时执行监控脚本,检查系统状态并发送报警信息。
常见的时间格式示例
- 每天的午夜(00:00)执行:0 0 * * * command
- 每小时的第30分钟执行:30 * * * * command
- 每天下午3点执行:0 15 * * * command
- 每周一的上午9点执行:0 9 * 1 * command
- 每月1号和15号的午夜执行:0 0 1,15 * * command。
场景介绍
我们有几个定时执行的任务,需要每隔3分钟 或 5分钟执行。
每隔3分钟执行的任务如:task3_1.py、task3_2.py
每隔5分钟执行的任务如:task5_1.py、task5_2.py
创建3分钟 和 5分钟执行的bash sh:cron_3m.sh、cron_5m.sh。
task3_1.py 代码
#!/usr/bin/python3
print("Hello world ,task3_1 !")
cron_3m.sh 代码
#!/bin/bash
echo "开始执行3m任务"
/usr/bin/python3 /home/test/task3_1.py
echo "==> run task3_1-3m at `date '+%H:%M:%S'` "
/usr/bin/python3 /home/test/task3_2.py
echo "==> run task3_2-3m at `date '+%H:%M:%S'` "
cron_5m.sh 代码
#!/bin/bash
echo "开始执行5m任务"
/usr/bin/python3 /home/test/task5_1.py
echo "==> run task5_1-5m at `date '+%H:%M:%S'` "
/usr/bin/python3 /home/test/task5_2.py
echo "==> run task5_2-5m at `date '+%H:%M:%S'` "
配置cron
使用crontab -e命令编辑当前用户的Cron作业。对于系统级别的作业,可以使用sudo crontab -u username -e
[root@VM-0-196-tencentos www]# crontab -e
*/3 * * * * /home/test/cron_3m.sh >> /home/test/logfile.log 2>&1
*/5 * * * * /home/test/cron_5m.sh >> /home/test/logfile.log 2>&1