關於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()忽略.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM