crontab用法

@bingoogolapple 2015-03-19 09:47:42发表于 bingoogolapple/bingoogolapple.github.io Linux

crontab是Unix和Linux用于设置周期性被执行的指令

crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
#分 时 日  月 周      |<==============任务的完整命令行
 *  *  *  *  *       /xxxx/xxxx.sh

代表意义    分钟    小时    日期    月份    周    命令
数字范围    0-59    0-23    1-31    1-12    0-7 呀就命令啊
比较有趣的是那个『周』喔!周的数字为 0 或 7 时,都代表『星期天』的意思!

每隔五分钟运行一次xxxx.php脚本文件

*/5 * * * *  /xxxx/xxxx/php /server/xxxx/xxxx/xxxx.php

4月1日陵城2点0分执行

0 2 1 4 *  /xxxx/xxxx.sh

每半分钟执行一次计划任务

*/1 * * * *  命令
*/1 * * * *  sleep 30s;命令

周与日月不可同时并存

可以分别以周或者是日月为单位作为循环,但不可使用「几月几号且为星期几」的模式工作

30 12 11 9 5 root echo "just test"   <==这是错误的写法

 本来以为九月十一号且为星期五才会进行这项工作,无奈的是,系统可能会判定每个星期五作
一次,或每年的 9 月 11 号分别进行

辅助字符的含义

*(星号) 代表任何时刻都接受的意思!
,(逗号) 代表分隔时段的意思,3点和6点    0 3,6 * * * command
-(减号) 代表一段时间范围内,3点到8点   0 3-8 * * * command
/n(斜线) 那个 n 代表数字,每五分钟进行一次    */5 * * * * command

crontab的语法

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

crontab的限制

/etc/cron.allow:将可以使用 crontab 的帐号写入其中,若不在这个文件内的使用者则不可使用 crontab;

/etc/cron.deny:将不可以使用 crontab 的帐号写入其中,若未记录到这个文件当中的使用者,就
可以使用 crontab 。

以优先顺序来说, /etc/cron.allow 比 /etc/cron.deny 要优先, 而判断上面,这两个文件只选择一
个来限制而已,因此,建议你只要保留一个即可, 免得影响自己在配置上面的判断!一般来说,系
统默认是保留 /etc/cron.deny , 你可以将不想让他运行 crontab 的那个使用者写入 /etc/cron.deny 当
中,一个帐号一行!