一、创建一个任务文件

Linux系统
1、命令行输入crontab -e会自动打开一个空文件:

# crontab -e

2、输入a或者i可以进入编辑状态,可输入任务代码。代码格式可以进入/etc/crontab查看

# cd /etc
# cat crontab

在这里插入图片描述
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

2.特殊字符:

星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。

逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。

中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

3.实例

运行crontab –e 编写一条定时任务 */5 * * * * /home/test.sh 在每5分钟执行一次test.sh脚本。

##每月每天凌晨3点30分和中午12点20分执行test.sh脚本
 
30 3,12 * * *  /home/test.sh           
 
 
 
##每月每天每隔6小时的每30分钟执行test.sh脚本
 
30 */6 * * *  /home/test.sh
 
##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本
30 8-18/2 * * * /etc/init.d/network restart
 
 
 
##每月每天晚上21点30分执行test.sh脚本
 
30 21 * * *  /etc/init.d/network restart
 
 
 
##每月1号、10号、22号凌晨4点45分执行test.sh脚本
 
45 4 1,10,22 * * /etc/init.d/network restart
 
 
 
##8月份周一、周日凌晨1点10分执行test.sh脚本
 
10 1 * 8 6,0 /etc/init.d/network restart
 
 
 
##每月每天每小时整点执行test.sh脚本
 
00 */1 * * *  /etc/init.d/network restart
crontab文件的一些例子:
1)30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
2)45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
3)10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
4)0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。最后一次的任务执行时间为23:30
 
5)0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
 
6)* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache(错误的)
*代表每分钟就执行一次,上面的语句的意思为每隔一小时的每分钟都在执行重启apache
 
*/60 * * * * #每60分钟即每小时执行一次
*/105 * * * * #每105分钟执行一次
 
7)* 23,00-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

二、保存文件

先按Esc键,然后输入“:wq”

三、查看文件

保存成功的文件去哪里了呢?在/var/spool/cron/下面

# cd /var/spool/cron
# ls

在这里插入图片描述
这里可以看到一个root文件,因为我用的root账号登录,所以生成了一个root文件。

通过cat命令可以看到这个文件的内容就是前面编辑的内容。

定时任务书写要领

要领1:定时任务要加注释
 
要领2:定时任务命令或脚本结尾加 &>/dev/null 或 >/dev/null 2>&11>/dev/null 2>/dev/null
 
要领3:定时任务执行shell脚本前加/bin/sh,定时任务执行shell脚本不必添加执行权限
 
要领4:定时任务命令或程序尽量写到脚本里,定时任务只要执行脚本即可
 
         注意操作步骤:
 
  (1)、命令行执行
 
  (2)、编写脚本
 
  (3)、测试脚本
 
  (4)、设置定时任务
 
要领5:生产任务程序不要随意打印输出信息
 
要领6:定时任务执行的脚本要规范路径 (例如 /server/script)
 
要领7:配置定时任务要规范操作过程
 
要领8:定时任务执行特殊的字符需要进行转义,否则会报错,例如 百分号% 转义 \%
 
要领9:定时任务脚本中如果涉及使用到环境变量,必须在脚本中重新定义,不然,定时任务识别不了

crontab在线校验工具地址crontab执行时间计算 - 在线工具
crontab在线校验工具

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐