zoukankan      html  css  js  c++  java
  • 关于crontab中的一些小问题

    今天写了个脚本,要写进crontab做定时任务,每5分钟跑一遍。关于crontab的介绍呢,请大家移步www.baidu.com,在这里我就不仔细介绍了。可以搜索一下“每天一个Linux命令”系列文章,介绍的比我要好很多。我这里只是介绍一下最简单的两种写法。

    $ sudo vim /etc/crontab

    打开crontab,里面的格式是酱婶的:

    # m h dom mon dow user  command

    简单的说,这几个参数分别是:分钟,小时,日,月,周,用户,命令。比如我的用户是apple,如果我想每天0点执行一个test.py的python脚本,可以这样写:

    0 0 * * * apple /usr/bin/python /home/apple/test.py

    要注意的是,最后一个command参数中,命令和选项都需要写绝对路径

    然后,还有另一种功能,比如说我这个脚本,不是每天同一时间执行的,而是每10分钟要跑一趟,那我总不能写成

    0 * * * * apple /usr/bin/python /home/apple/test.py
    10 * * * * apple /usr/bin/python /home/apple/test.py
    20 * * * * apple /usr/bin/python /home/apple/test.py
    30 * * * * apple /usr/bin/python /home/apple/test.py
    40 * * * * apple /usr/bin/python /home/apple/test.py
    50 * * * * apple /usr/bin/python /home/apple/test.py

    这样的吧。That's too two. too two. 兔兔。

      ←兔兔内心OS:关我屁事!

    其实,只要这样写就好了:

    */10 * * * * apple /usr/bin/python /home/apple/test.py

    其他像crontab -e什么的我也不是很了解,就不说了。

    那么,这么简单的东西,问题出在什么地方捏?问题在于我的python脚本。我知道用定时任务的时候,print是没法输出东西的,所以,我特意写了个文件,假装它是一个log。结果定时每5分钟它居然木有执行。检查了好久,还单独找其他机器做实验,都木有效果。检查了好久,连/var/log/syslog中的cron的日志都翻出来了,还是没找到问题。最后,我发现,原来是文件没有写成绝对路径,不知道写到哪里去了。

    果然我还是兔兔。

      ←兔兔内心OS:再提我打你喔!

    之后,问题就解决了。

    。。。。。。

    其实呢,还有另一种解决方式:脚本里面根本不需要写个文件输出,直接在crontab的命令中重定向到文件就好了,像这样:

    */10 * * * *   apple /usr/bin/python /home/apple/anpeng/test.py > /home/apple/anpeng/aaa.log

      兔兔:。。。

    我什么都没说啊!

  • 相关阅读:
    解决SharePoint 文档库itemadded eventhandler导致的上传完成后,编辑页面保持报错的问题,错误信息为“该文档已经被编辑过 the file has been modified by...”
    解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.
    随机实例,随机值
    Spring4笔记
    struts2笔记(3)
    struts2笔记(2)
    获取文本的编码类型(from logparse)
    FileUtil(from logparser)
    DateUtil(SimpleDateFormat)
    struts2笔记
  • 原文地址:https://www.cnblogs.com/anpengapple/p/6605615.html
Copyright © 2011-2022 走看看