提到Linux定时任务,务必会提到crontab命令,做一个简单的学习。
crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 区间为 0 – 59
hour: 区间为0 – 23
day-of-month: 区间为0 – 31
month: 区间为1 – 12. 1 是1月. 12是12月.
Day-of-week: 区间为0 – 7. 周日可以是0或7.
Crontab简单示例:
1、在 凌晨00:01运行
1 0 * * * /home/linrui/XXXX.sh
2、每个工作日23:59都进行备份作业。
59 11 * * 1,2,3,4,5 /home/linrui/XXXX.sh
或者如下写法:
59 11 * * 1-5 /home/linrui/XXXX.sh
3、每分钟运行一次命令
*/1 * * * * /home/linrui/XXXX.sh
4、每个月的1号 14:10 运行
10 14 1 * * /home/linrui/XXXX.sh
Crontab命令的选项:
以下是 crontab 的有效选项:
crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
crontab –l : 显示 crontab 文件。
crontab -r : 删除 crontab 文件。
crontab -ir : 删除 crontab 文件前提醒用户。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
下面我做了一个很小的例子,通过这个小例子我们可以了解到定时任务的创建和删除
1.编写shell脚本hello.sh:
#!/bin/bash
echo "Hello World !" >> test
#这个意思是向test文件内输入“Hello World!"这句话
2.将脚本放到cron任务里:
在终端写入crontab -e命令打开crontab文件
在里面写:*/1 * * * * /home/lyl/hello.sh (这个路径是你存放脚本的路径)
写完后保存退出
3.输入命令:crontab -l 可以查看任务如图:
4.你会看到系统自动新建了一个test文件并每隔一分钟往里输入一句“Hello World!"
这样我们的定时任务就建好了
接下来如果我们想要删除这个任务怎么办呢
增加了crontab任务后,在/var/spool/cron目录下会有一个当前登录账号命名的文件。比如我的登录账号是lyl。则会存在一个lyl文件。该文件的内容就是刚添加的crontab任务。
该处我们使用sed命令来处理/var/spool/cron/lyl 文件,将含hello.sh的行的内容删除掉。
输入命令:sed -i '/hello.sh/d' /var/spool/cron/lyl
可以查看任务 crontab -l 发现我们刚刚创建的任务没有了