关于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()忽略.

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

时间: 2024-10-05 14:45:15

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

Linux 上SSH 服务的配置和管理

基本上Linux的网络服务器在远程操作大多时候都是使用SSH来配置.管理服务器.现在我们就来分享一下简单配置Linux的SSH服务. 1.检查一下默认安装的系统是否安装了SSH服务: chkconfig  --list | grep sshd 2.首先要备份配置文件,任何时候我们需要修改配置文件的时候都建议先把原始文件备份 cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 3.下面我们就来修改SSHD_config配置文件,需要修改两个地方,

linux的cron服务及应用

Linux下的Cron用于定时执行设置的周期性指令,是Linux的内置服务,可以用以下的方法启动.关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 或者使用 /etc/init.d/cron [start/stop/restart]命令 如果将这个服务在系统启动

在Linux上以服务的方式运行ASP.NET Core站点

要在生成环境下在Linux服务器上跑ASP.NET Core站点,首先要解决的问题是以服务的方式运行ASP.NET Core站点,这样即使服务器重启,站点也能自动运行. Node.js中有强大的pm2,而.NET Core目前一无所有,只能自己动手实现.摸索了一个晚上,终于使用initctl命令基于Linux的upstart实现了,在这篇博文中分享一下(试验所用的Linux服务器器是Ubuntu). 首先在 /etc/init/ 目录中创建一个服务配置文件,比如这里是 /etc/init/dot

在windows上通过浏览器访问linux上的服务

----以下均为在centos7上进行的操作----防火墙上添加端口 firewall-cmd --zone=public --add-port=80/tcp --permanent----防火墙上删除端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent firewall-cmd --list-ports #查看已经开放的端口 firewall-cmd --reload #重启firewall systemctl stop

搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具

清空yum源缓存,并查看yun源 [[email protected] ~]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: vcd Cleaning up everything Cleaning up list of fastest mirrors [[email protected] ~]# yum repolist Loaded plugins: fastestmirror, langpacks

解决SSH窗口关闭,linux上的应用也关闭

最近在应用linux上的服务的时候发现一个问题 使用SSH远程连接启动的应用在SSH关闭的时候也死掉了,网上查了一下原因 大致是说SSH在关闭的时候会发送一个终止的指令给应用,然后就停了 简要的解决办法如下: 在执行命令的时候加上前缀后缀 原本命令  ./run 现命令:nohup ./run & 但是这样会把控制台输出到nohup.out文件 详情参考这位博友的文章: 解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止[后台运行程序]

关于Jedis无法连接上Linux上Redis问题

环境:CentOS7.Redis 主要解决Jedis客户端无法连接Linux上Redis服务问题 1.修改Redis目录下的redis.conf配置文件 注释掉bind本地回环地址:bind 127.0.0.1  如果未设置Redis认证密码,则需要设置保护模式为no:protected-mode no 2.停止CentOS7防火墙或设置规则(这里使用停止方法) systemctl stop firewalld.service systemctl stop iptables.service 然后

linux的chkconfig服务注册(服务注册脚本说明)

linux上一些服务的重启以及随系统启动而启动,可以像windows那样注册为服务通过chkconfig 进行操作.在注册chkconfig时需要在linux的/etc/init.d/目录下有对应的启动脚本. 一.注册服务脚本说明 1./etc/init.d/目录下的脚本名称就是服务注册时使用的服务名. 2.在服务脚本中一般包括start/stop/restart/status/condrestart/reload几种操作 start:启动服务 stop:停止服务 status:查看服务状态 c

Linux的DNS服务和BIND应用

在Linux上DNS服务是由通过BIND程序提供的. 所以为了搭建DNS服务器,就需要安装BIND程序. 安装BIND BIND文件 主配置文件:/etc/named.conf 它包含了其他文件 查看BIND的其他文件 其中 /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key 这三个模块是主配置文件的三个重要模块 解析库文件: /var/named/目录下 注意:1.一台DNS服务器可同时为多个区域提供解析 2.必