Python 基础教程 九之cron定时执行python脚本

liftword2个月前 (03-05)技术文章14

前言

在Linux或Unix系统中,你可以使用cron任务来定时执行Python脚本。cron是一个基于时间的作业调度器,允许你安排命令或脚本在系统上自动执行。

安装cron

大多数Linux发行版默认安装了cron。如果没有安装,你可以通过包管理器安装它。例如,在基于Debian的系统(如Ubuntu)上,你可以使用以下命令安装:

sudo apt-get update
sudo apt-get install cron

在Red Hat或CentOS系统上,使用:

sudo yum install cronie
sudo systemctl start crond
sudo systemctl enable crond

创建Cron作业

  1. 打开终端
  2. 编辑crontab文件
  3. 使用crontab -e命令编辑当前用户的cron作业列表。如果这是你第一次运行此命令,它可能会让你选择一个文本编辑器(如nano, vi, vim等)。
[root@VM-0-196-tencentos ~]# crontab -e
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
  1. 添加Cron作业
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
*/2 * * * * /usr/bin/python3  /home/test/hello.py >> /home/test/logfile.log 2>&1

hello.py 脚本:

#!/usr/bin/python3

print("Hello world !")
  1. 在打开的编辑器中,你可以添加一个新的cron作业。Cron作业遵循以下格式:
* * * * * command to execute
这里有五个时间字段,分别代表:

分钟(0 - 59)

小时(0 - 23)

日期(1 - 31)

月份(1 - 12)

星期几(0 - 7,其中0和7都代表星期日)

例如,如果你想每天凌晨1点运行一个名为hello.py的Python脚本,你可以添加以下行:
0 1 * * * /usr/bin/python3 /path/to/your/hello.py
  1. 确保将/usr/bin/python3替换为你的Python解释器的实际路径,将/path/to/your/hello.py替换为你的Python脚本的实际路径。
  2. 保存并退出编辑器。如果你使用的是nano,可以通过按Ctrl + O保存更改,然后按Ctrl + X退出。如果你使用的是vivim,可以通过按:wq保存并退出。
  3. 检查Cron作业

查看hello.py脚本运行的日志文件logfile.log

   [root@VM-0-196-tencentos www]# vi logfile.log 
   Hello world !
   Hello world !
   Hello world !
  1. 使用crontab -l命令查看当前用户的cron作业列表,确认你的作业已正确添加。
[root@VM-0-196-tencentos ~]# crontab -l
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
*/2 * * * * /usr/bin/python3  /home/test/hello.py >> /home/test/logfile.log 2>&1

这样,你的Python脚本就会按照你设定的时间自动执行了。记得每次修改Python脚本后,都需要重新运行你的Python代码以确保使用的是最新版本的脚本。如果你使用的是虚拟环境,确保在cron作业中指定正确的Python解释器和环境变量。例如:

0 1 * * * /path/to/virtualenv/bin/python /path/to/your/my_script.py

确保替换
/path/to/virtualenv/bin/python为你的虚拟环境中的Python解释器的路径。

相关文章

Python 命令行工具 python 的常用参数执行命令

作为 Python 的初学者,最不缺见的就是命令行工具 python 的执行命令了,每每遇到就可能去查资料帮助,同样,自己也会不时的需要某些执行命令来完成自己的需求,鉴于此我对 python 工具的执...

python中执行shell命令的几个方法小结!很实用,帮助很大

最近有个需求就是页面上执行shell命令,第一想到的就是os.system,os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。...

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

简介在上一节中,我们介绍了使用cron作业定时执行python脚本。这一节我们介绍使用bash sh文件执行批量python脚本。先回顾一下cron内容:设置cron作业是一种在Linux系统中定时执...

Python 42个基本命令,开启编程新世界大门

一文带你吃透 Python 42 个基本命令,小白必看!作为一名编程界的 “老司机”,我深知 Python 在编程领域的重要地位。它就像一把万能钥匙,能开启无数扇通往不同应用领域的大门,无论是数据分析...

python散装笔记——109: 解释器(命令行控制台)

1: 获得一般帮助如果在控制台中调用 help 函数而不带任何参数,Python 就会显示一个交互式帮助控制台,您可以在其中找到有关 Python 模块、符号、关键字等的信息。>>>...

python常用命令及操作语句

常用操作脚本1.查看python安装包命令pip3 list2.python 安装封装包命令pip3 install 包名# 例如:pip3 install numpy3.python安装tensor...