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

      兔兔:。。。

    我什么都没说啊!

  • 相关阅读:
    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
    WCF快速上手(二)
    Oracle递归查询
    100多行代码实现6秒完成50万条多线程并发日志文件写入
    C#写日志工具类
    WPF定时刷新UI界面
    HttpUtil工具类
    WPF GridView的列宽度设置为按比例分配
    Visifire图表
    C# BackgroundWorker 的使用、封装
  • 原文地址:https://www.cnblogs.com/anpengapple/p/6605615.html
Copyright © 2011-2022 走看看