crontab命令:
crontab -e //编辑某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r//删除某个用户的cron服务
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command 顺序:分 时 日 月 周
字符 | 含义 |
---|---|
minute | 表示分钟,可以是从0到59之间的任何整数 |
hour | 表示小时,可以是从0到23之间的任何整数 |
day | 表示日期,可以是从1到31之间的任何整数 |
month | 表示月份,可以是从1到12之间的任何整数 |
week | 表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日 |
command | 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 |
实用执行时间确认工具:https://tool.lu/crontab/
在以上各个字段中,还可以使用以下特殊字符:
字 符 | 含义 |
---|---|
* | 代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作 |
, | 可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” |
- | 可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” |
/ | 可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次 |
####shell中的">"与“>>”重定向
shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行。
shell有很多种,如bash、sh 、tcsh、 ksh等,linux系统里面默认使用的是bash。
字符 | 含义 |
---|---|
> | 直接覆盖已存在文件的内容,如果文件不存在则创建 |
>> | 追加在文件末尾,如果文件不存在则创建。会接到最后一行然后新增一行把数据接在后面 |
>>> | 接在最后一行的后面(不新增一行) |
shell中的/dev/null
/dev/null 代表空设备文件,它丢弃一切写入其中的数据,可以看作是黑洞,写入其中的内容无法读取.
linux中的几种输入输出流:
- 0-标准输入流(stdin)
- 1-标准输出流(stdout)
- 2-标准错误流(stderr)
>代表重定向到哪里,例如:echo “123” > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
& 表示等同于的意思,2>&1,表示2的错误输出重定向等同于1
参考资料:
[1] linux定时执行任务的shell脚本
[2] shell语法使用 http://www.cnblogs.com/liuling/p/2013-8-4-01.html
[3]linux定时任务的设置 http://www.cnblogs.com/joer/archive/2010/09/23/1841240.html