关于linux上cron服务的python封装工具

关于cron:定时任务服务,一般linux自带且已启动.(pgrep cron查看cron服务是否启动了.)

关于plan:一个通过python来定制cron服务的工具.其官网:
http://plan.readthedocs.org/

plan的使用例子:

例子1:

from plan import Plan
cron = 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 Plan
cron = 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 Plan
cron = 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()忽略.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值