zoukankan      html  css  js  c++  java
  • linux 定时任务

    习惯了使用 windows 的计划任务,使用 linux 中的 crontab 管理定时任务时很不适应

    所以把基本的用法总结如下。

    创建一个简单的定时任务

    每分钟输出一次当前的时间,输出到用户家目录下的 time.log 文件中。

    $ crontab -e
    * * * * * echo `date` >> /home/xxx/time.log

    crontab 程序的路径为 /usr/bin/crontab。

    每个用户的定时任务可以在 /var/spool/cron/crontabs/ 目录下查询到。

    需要使用root权限才能进入这个目录。每个以用户名命名的文件中记录着该用户的定时任务。

    注意,不要使用 vi 直接编辑这些文件。

    cron 运行的每一项工作都会被纪录到 /var/log/cron 这个登录档中,但是 Ubuntu 默认关闭了cron 的 log。

    打开的方式为:打开 rsyslog 服务的配置文件

    $ sudo vim /etc/rsyslog.d/50-default.conf

    将下面一行中前面的注释符去掉

    cron.*              /var/log/cron.log

    重启 rsyslog

    $ sudo  service rsyslog  restart

    现在就可以看到 /var/log/cron 文件了,查看该文件是解决定时任务出错的重要途径。

    控制用户运行定时任务

    如果不想让某个用户运行定时任务,直接把他的账号写入到 /etc/cron.deny 文件中即可。注意,一行一个账号。

    当然你也可以使用 /etc/cron.allow 文件来显式的指定可以运行定时任务的用户的账号,并且 /etc/cron.allow /etc/cron.deny 的优先级要高。

    但感觉有点乱,倒不如只使用其中的一个。

    crontab 命令

    -u :只有 root 才有权限执行这个任务,也就是帮其他使用者创建/移除 crontab 定时任务

    -e :编辑 crontab 的内容

    -l  :显示 crontab 的内容

    -r :移除所有 crontab 的内容,若仅要移除某一项,请用 -e 编辑

    时间格式

                          分钟        小时         日期         月份        周           命令

    数字范围        0-59        0-23        1-31        1-12        0-7         echo "hello" >> abc.log

     

    特殊字符的含义

    *(星号)        代表任何时刻都接受。

    ,(逗号)         代表分隔时段的意思。

    -(减号)        代表一段时间范围内。

    /n(斜线)      那个 n 代表数字,每隔 n 单位间隔。

     

    Case1: 每年的五月一日 10:5 执行一次

    5 10 1 5 * command

    Case2: 每天的三点,六点各执行一次

    0 3,6 * * * command #注意这里使用了逗号

    Case3: 每天的8:20, 9:20,10:20,11:20各执行一次

    20 8-11 * * * command #注意这里使用了减号

    Case4: 每五分钟执行一次

    */5 * * * * command #注意这里使用了/n

    Case5: 每周一十点执行一次

    * 10 * * 1 command

    配置系统级别的定时任务

    crontab -e 是用来设置用户级别的定时任务的。如果要设置系统级别的定时任务该怎么办呢?

    答案是直接使用 root 权限编辑系统级别定时任务的配置文件: /etc/crontab

    比如直接用 vim 打开编辑:

  • 相关阅读:
    高斯消元学习
    HDU 4596 Yet another end of the world(解一阶不定方程)
    Codeforces Round #318 div2
    HDU 4463 Outlets(一条边固定的最小生成树)
    HDU 4458 Shoot the Airplane(计算几何 判断点是否在n边形内)
    HDU 4112 Break the Chocolate(简单的数学推导)
    HDU 4111 Alice and Bob (博弈)
    POJ 2481 Cows(线段树单点更新)
    HDU 4288 Coder(STL水过)
    zoj 2563 Long Dominoes
  • 原文地址:https://www.cnblogs.com/sparkdev/p/5862038.html
Copyright © 2011-2022 走看看