zoukankan      html  css  js  c++  java
  • crontab问题处理

      用pyhton写了一些爬虫,由于数据量比较大,需要跑的时间也比较长,所以将代码部署到服务器上。选择用crontab完成爬虫的定时爬取数据,这样避免了人工的干预,减少一些人为错误。但在部署crontab的时候遇到一些问题,写到这里方面今后的学习。

      我在服务器上部署了7个任务,是在每天的凌晨之后检查网站的更新数据,如果有更新就将数据抓下来,没有更新就pass掉。格式是这样的:

      03 00 * * * /usr/bin/python path1 > path of logs

      10 03 * * *  /usr/bin/python path2 > path of logs

      ......

     02 04 * * * /usr/bin/python path3 > path of logs

     跑了两天发现只有第一个任务在跑,其他的任务没有执行,但是检查数据的时候其他的任务网站数据也存在更新,手动执行程序也能爬到更新数据,所以这就是crontab的问题了。

    去网上查了好多资料都没找到解决的办法,自己静下心来仔细的检查了一下,发现是每条任务之间存在空行,当初这样写完全为的是美观易读,但这样确实带来了错误。

    下面是几个主要的问题:

    1、部署任务之间不要加空行

    2、>>表示追加,>表示重新写入 一般写日志用追加就行了

    3、执行任务的情况会写到  /var/spool/mail下,方面查看任务的执行情况,当然,你也可以不要mail,在logs后面加上些限制就行了

    crontab的一些基础用法:

    第1列分钟1~59
    第2列小时1~23(0表示子夜)
    第3列日1~31
    第4列月1~12
    第5列星期0~6(0表示星期天)
    第6列要运行的命令

    下面是crontab的格式:
    分 时 日 月 星期 要运行的命令

    这里有crontab文件条目的一些例子:

    30 21 * * * /usr/local/apache/bin/apachectl restart
    上面的例子表示每晚的21:30重启apache。

    45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
    上面的例子表示每月1、10、22日的4 : 45重启apache。

    10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
    上面的例子表示每周六、周日的1 : 10重启apache。

    0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

    0 23 * * 6 /usr/local/apache/bin/apachectl restart
    上面的例子表示每星期六的11 : 00 pm重启apache。

    * */1 * * * /usr/local/apache/bin/apachectl restart
    每一小时重启apache

    * 23-7/1 * * * /usr/local/apache/bin/apachectl restart
    晚上11点到早上7点之间,每隔一小时重启apache

    0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
    每月的4号与每周一到周三的11点重启apache

    0 4 1 jan * /usr/local/apache/bin/apachectl restart
    一月一号的4点重启apache

  • 相关阅读:
    使用slf4j取代Apache Commons Logging
    IntelliJ远程调试教程
    java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)
    oracle 时间函数
    在Windows操作系统中,如何终止占有的8080端口的tomcat进程
    解决dwr报错【 Error: java.lang.SecurityException: No class by name: service】
    eclipse下使用tomcat启动maven项目
    Eclipse Java注释模板设置详解
    weblogic启动时日志重定向(nohup.out)
    信息化的基本概念
  • 原文地址:https://www.cnblogs.com/xbkp/p/5398018.html
Copyright © 2011-2022 走看看