zl程序教程

您现在的位置是:首页 >  后端

当前栏目

云服务器定时执行python脚本

Python服务器执行 脚本 定时
2023-09-27 14:20:14 时间

前言

在服务器上定时执行任务有两种方式,一种是at定时任务,一种是crond任务调度,at命令是一次性定时计划任务,at的守护进程 atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了,crond任务调度可以周期性的执行某一任务,只需要进行简单的配置即可。

crontab简介

基本语法

crontab [选项]

  • -e编辑crontab定时任务

  • -l查询crontab定时任务

  • -r删除当前用户的所有定时任务

  • eg:crontab -e #进行定时任务的编辑

定时任务具体内容

例:

*/1 * * * * ls -l /etc/ > /tmp/to.txt

解释:

​ 每分钟执行一次ls -l查看/etc/目录下的所有文件内容,将查看结果输出到/tmp/to.txt文件内(这个输出的过程称为重定向)

关于如何定时可以看下面两个表格:

请添加图片描述
请添加图片描述
请添加图片描述

python 脚本定时任务

查看安装python解释器的位置:

whereis python

请添加图片描述

设置定时任务(设置之前可以先在控制台测试一下脚本能不能跑通)
执行周期 Python解释器安装的位置 -u python脚本存放的位置 >> 执行脚本生成的日志

10 7 * * * /root/anaconda3/bin/python3.7 -u /root/zscDemo/pythonDemo/dayReport/test.py >> /root/zscDemo/pythonDemo/dayReport/test.log
* * * * * /root/anaconda3/bin/python3.7 -u /root/zscDemo/pythonDemo/dayReport/main.py >> /root/zscDemo/pythonDemo/dayReport/main.log

解释:
这里的-u不写的话python脚本内的打印结果没有办法打印到日志内,-u代表的是执行过程中禁用缓冲区。禁用缓冲区print的东西会直接重定向到后面的文件内。

关于>>重定向符。两个>代表的是在原有的文件内追加,一个的话是覆盖。
这里只介绍了如何定时一个定时器,如何使用定时器快速的配置一个python脚本并进行重定向设置,如果自己用还可以,如果想真真的运用到实际生产过程中还需要自己去琢磨琢磨。可以去CSDN、菜鸟教程、哔哩哔哩上进行深入学习。相应的资源还是挺丰富的。