首页 > 代码库 > 关于linux上cron服务的python封装工具
关于linux上cron服务的python封装工具
关于cron:定时任务服务,一般linux自带且已启动.(pgrep cron查看cron服务是否启动了.)
关于plan:一个通过python来定制cron服务的工具.其官网:
http://plan.readthedocs.org/
plan的使用例子:
例子1:
from plan import Plancron = Plan()output = dict(stdout=‘~/stdout.log‘, stderr=‘~/stderr.log‘)cron.command(‘date‘, every=‘1.minute‘, output=output, )if __name__ == ‘__main__‘: cron.run(‘update‘)
这样就加了一个定时计划任务.(可用命令crontab -l查看已添加的任务.)
例子2:
from plan import Plancron = Plan()output = dict(stdout=‘~/stdout.log‘, stderr=‘~/stderr.log‘)cron.command(‘echo ${PATH} && supervisord -v‘, every=‘1.minute‘, output=output, )if __name__ == ‘__main__‘: cron.run(‘update‘)
查看日志,发现PATH变量只有/usr/bin:/bin.没有/usr/local/bin.而我的supervisord放在/usr/local/bin下面,所以提示/bin/sh: 1:找不到supervisord.
所以,如果要执行的任务包含了处于其他路径的命令,比如/usr/local/bin,需要这样:
例子3:
from plan import Plancron = Plan()output = dict(stdout=‘~/stdout.log‘, stderr=‘~/stderr.log‘)cron.command(‘PATH=${PATH}:/usr/local/bin && supervisord -v‘, every=‘1.minute‘, output=output, )if __name__ == ‘__main__‘: cron.run(‘update‘)
上面都是用cron.command()来添加的,然后如果要添加执行的任务是python脚本,还可以这样:
例子4:
cron.script(‘trader_supvr_tool.py --supervisord=start-init‘, every=‘1.minute‘, path=‘~/work/xProject/etrader‘, environment={‘PATH‘ : ‘${PATH}:/usr/local/bin‘ }, output=output, )
environment和path都是cron.script()支持的参数,而cron.command()忽略.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。