• linux定时执行python脚本的方法以及失败不执行的处理方法


    均益最近写了个python脚本,需要每天固定个时间执行一次。在shell窗口下执行是没问题的,但是定时任务的时候老是不执行。如果你也遇到与均益一样的问题,那么可以看一下下面的内容,你肯定可以找到解决方案的。这是均益花不少时间整理出来的。

    首页,linux定时任务用到的是crontab,我们来看一下crontab如何使用

    crontab-1[user]-列出用户目前的crontab.
    crontab-e[user]-编辑用户目前的crontab.
    crontab-d[user]-删除用户目前的crontab.

    crontab -l 查看定时任务
    
    crontab -e 编辑或者加入新的定时任务
    
    crontab -d 删除定时任务
    

    crontab定时设置
    crontab定时设置

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart 
    上面的例子表示每晚的21:30重启apache
    
    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 
    上面的例子表示每月1、10、22日的4 : 45重启apache
    
    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 
    上面的例子表示每周六、周日的1 : 10重启apache
    
    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache
     
    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 
    上面的例子表示每星期六的11 : 00 pm重启apache
    
    * */1 * * * /usr/local/etc/rc.d/lighttpd restart 
    每一小时重启apache 
    
    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 
    晚上11点到早上7点之间,每隔一小时重启apache 
    
    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 
    每月的4号与每周一到周三的11点重启apache 
    
    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 
    一月一号的4点重启apache 
    

    其次,需要注意的是

    1、脚本路径最好用绝对路径,如果脚本里面有文件操作,里面的文件也需要用绝对路径
    2、python脚本文件的第一行,写明pythoh的路径,#!/usr/local/bin/python
    这个可以通过 which python 这个语句找到
    3、文件需要有执行权限,linux的文件执行权限内容可以看这篇文章 http://junyiseo.com/linux/327.html

    最后,linux定时执行失败的处理方法

    如果我们的设置好了定时任务,但是却没有看到执行,可以通过下面的方法逐一查看
    1、查看crontab的状态,看crontab是否开启

    service crond start  启动
    service crond stop   停止
    service crond restart  重启
    service crond reload   重新加载
    

    2、看定时执行日志,是否有执行文件

    cat /var/log/cron
    

    3、看文件是否有执行权限,是否使用绝对路径,这个在上面说过

    4、如果上面的都没有问题,那就是脚本的执行问题,这时候就需要看执行的错误日志。这个日志一般在 /var/spool/mail/ 。在这个文件夹里一般有几个用户的信息,我们一般是root这个用户,所以我们看这个root的信息。如果你是其他账号,可以看其他的用户的。

  • 相关阅读:
    1.在虚拟机中安装Linux中的CentOS7系统
    Mysql的跨服务器 关联查询--Federated引擎
    mysql 时间格式转换
    mysql 查询当天、本周,本月,上一个月的数据
    mybatis执行批量更新数据
    JSTL 递增序号
    mybaits 新增数据返回id
    第一部分软件测试综述——软件测试背景【软件测试】(美)Ron Patton中文电子版
    测试真的是一个无聊又没前途的岗位吗?是吗?不是吗?
    碎片化时间,偷偷变牛逼!2020全栈软件测试工程师修炼手册
  • 原文地址:https://www.cnblogs.com/hushaojun/p/16124882.html
Copyright © 2020-2023  润新知