一个python版crontab

python版crontab使用说明

此定时控制台主要针对于windows计划任务坏掉,或者各种毛病的问题,类似于linux的crontab

最佳支持环境:python 3.8

配置文件

主要配置文件为crontab.txt

在文件最底下已经给出了示例,关于定时的时间写法基本与cron表达式类似

mhdommondowcommand
分钟小时每月的第n天每周的第n天,0代表星期一以此类推指令,支持相对路径和绝对路径

比如想要一个礼拜运行一次可以设定为每周日运行:

0 0 * * 6

使用

usage: python crontab.py [crontab.txt]

当然如果txt文件在同一目录,不加也可以

增强版的钉钉推送

使用前请先安装依赖:pip install dingtalkchatbot

如果pip找不到,请添加环境变量,默认路径C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts

增加了钉钉群机器人推送,如果需要使用,主要配置都在前三行,修改即可

字段作用
enable_dingtalk是否开启钉钉推送True或者False
dingtalk_webhook钉钉群机器人webhook地址
dingtalk_secret钉钉群机器人加签值

推送事件:

  • 程序开始正常运行
  • 执行命令成功/失败,目前不支持返回值,如果运行的脚本出现错误,还是会显示运行成功
  • 程序被人为ctrl+c终止或者使用winsw关闭

目前无法监听程序意外退出(按理不可能)

使用winsw配置开机自启并隐藏控制台

winsw是windows平台下的一个方便的服务添加程序,可以以服务的形式运行程序或脚本,并且也可以实现开机自启,还有干掉烦人的黑框框

由于winsw并不支持原生调用python程序,或者可能是比较麻烦(不会),所以需要新建一个bat

python crontab-dingtalk.py
  • 如果使用winsw运行,推荐开启钉钉推送,否则无法正常输出日志

注意python需要手动添加至系统环境变量中,否则无法找到,就算安装的时候点Add Path也没用!

可以执行where python来查看安装位置

编辑winsw.xml

<service>
    <id>crontab定时任务</id>
    <name>crontab定时任务</name>
    <description>crontab定时任务</description>
    <executable>run.bat</executable>
    <arguments></arguments>
    <logmode>reset</logmode>
</service>

这种写法需要这些都在同一个目录下

然后运行winsw安装.bat或者执行:

winsw install

等待提示成功后,系统服务中就会多出来一项,这时候就可以运行winsw启动.bat了:

winsw start

如果开启了钉钉推送,程序会在正常运行后推送消息到钉钉,这时候就可以不管了,只需要确保你的脚本路径或者脚本内容正确就行了。

如果无法实现开机自启,可以运行services.msc查看服务状态是否为自动

下载地址:
winCron.7z

评论区
头像
文章目录