crontab命令可以自动的执行和调度一些shell脚本,非常实用,下面简单介绍一下基本用途和语法
crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。也就是说,用户把需 要执行的命令序列放到crontab文件中执行
1
crontab 常用命令的参数
1.1
-l:列出目前的自动执行列表
-e:编辑自动执行的命令内容
-r:删除所有自动执行列表
2 调用自动执行命令的时间和频率的命令
2.1
基本的命令格式如下
秒 分 日 月 星期几 需要自动执行的命令或脚本
第一个参数为秒,第二个参数为分钟,第三个参数为一个月中的第几天
第四个参数为一年中的第几个月,第五个参数为星期几
第六个地方为需要自动执行的命令
2.2 特殊字符
*代表每个参数位置中所有的值
-代表指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4
,逗号隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数
正斜线(/)可以用来指定间隔频率,间隔频率值还可以和星号一起使用。例如,*/3 的可 以用在分钟字段中表示每三分钟运行一次任务
2.3 举例应用
2.31 创建crontab文件
下面在/test目录下创建一个 test.cron文件
写入一段:20 20 20 12 * echo “hello world”
然后用
crontab /test/test.cron
则第一个自动执行的命令文件已经生成
可以用crontab -l来查看
-e来编辑
2.32 命令举例
20 20 20 12 * echo “hello world” 表示12月20号20点20分将自动输出hello world
20 * * * * echo “hello world” 表示每天每个小时的第20分钟,将会输出hello world
20 8-16/1 * * * echo “hello world” 表示每天8点20,9点20,10点20,……16点20
每隔1个小时输出hello world
*/20 6-12 * 12 * echo “hello world” 在12月份的每天6点到12点,每隔20分钟输出一次
hello world
30 9 * * 1-5 echo “hello world” 每周一到周五,9点30分 输出一次hello world
0,10 17 * * 0,2,3 echo “hello world” 每周日,周二,周三的 17:00和 17:10 输出hello world
2.4 避免输出
每次crontab执行后会向用户发送邮件,随着自动执行的命令越积越多,邮件也会越来越多,
所以避免邮件的输出也是必须的,>/dev/null 2>&1,来避免crontab运行中有内容输出
/dev/null 代表空文件,
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件