首页 > 代码库 > [笔记] linux中的计划任务crontab

[笔记] linux中的计划任务crontab

不能拒绝进步

cron来源于希腊单词chronos(意为“时间”),指linux系统下一个自动执行指定任务的程序(计划任务)。

1——crontab 的命令选项

#crontab -u <-l, -r, -e>

-u指定一个用户

-l列出某个用户的任务计划

-r删除某个用户的任务

-e编辑某个用户的任务

<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>

2——crontab 的命令语法

使用 crontab –e 命令开始编辑,或者vim /var/spool/cron

格式说明:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed

image

Minute Hour Day Month Week command
分钟 小时 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command

Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务,0表示周日
Command 指定要执行的程序 、脚本或命令

 

3——几个特殊符号的含义

“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字

 

4——注意的点

在默认情况下,如果cron每执行一次指令后,都会向用户的本地信箱中发送邮件,时间长了则产生数量很多的邮件。那么如何禁止掉呢?可能通过下面的方法来实现
■.将执行命令的信息重定向到
cron_command >/dev/null 2>&1
■.将执行命令的信息重定向到
cron_command &>/dev/null

不要忘记将执行脚本文件赋予可执行

■.将执行脚本权限赋予可执行
chmod +x filename

 

5——常见的示例

0 6 * * *                 #每天早上6点
0 */2 * * *              #每两个小时
0 23-6/2,8 * * *       #晚上23点到早上6点之间每两个小时,早上八点
0 11 4 * 1-3             #每个月的4号和每个星期的星期一到星期三的早上11点
30 21 * * *              #每晚的21:30
45 4 1,10,22 * *       #每月1、10、22日的4:45
10 1 * * 6,0             #每周六、周日的1 : 10
0,30 18-23 * * *       #每天18:00至23:00之间每隔30分钟
0 23 * * 6                #每星期六的23:00
* */1 * * *               #每一小时
* 23-7/1 * * *          #晚上11点到早上7点之间,每隔一小时
0 11 4 * mon-wed     #每月的4号与每周一到周三的11点
0 4 1 jan *               #一月一号的4点

[笔记] linux中的计划任务crontab