Linux crontab使用方法
2017-05-14 07:29
260 查看
crontab命令主要用于设置命令行或者脚本周期性的执行。该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行。本文主要讲述crontb命令的基本语法和配置方法。
一个定时任务的配置共包括6个字段,分别是分、时、日、月、周、命令行或脚本,每一列取值的范围或者含义如上述格式中注释描述。特别注意一点是命令行或者脚本一定要配置成绝对路径。
在上述各字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如在第1列表示每分钟执行,第2列表示每小时执行,第3列表示每天执行。
逗号(,):可以用逗号隔开的值表示指定一个列表范围,例如,在第1列设置15,30,45表示在第15分钟、30分钟、45分钟执行。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示2,3,4,5,6
正斜线(/):可以用正斜线指定时间的间隔频率,例如第2列设置成"*/2",表示每两小时执行一次。
2、每月1、10、22日的4:45运行/usr/bin/backup.sh脚本
3、每周六、周日的1:10运行查找命令
4、每天18:00至23:00之间每隔30分钟执行数据库检查脚本
crontab命令格式
选项说明:
(1)root用户登录,执行crontab -e配置命令
(2)执行/etc/init.d/cron restart 或者 service cron restart使配置生效。此时可以在/var/spool/cron目录下root文件中看到新配置的定时任务
(3) tail -f /tmp/test_crontab.txt文件内容,确认是否每隔一分钟打印。如果配置生效了,就可以配置自己想要的定时任务。
A1:查看/var/log/cron日志。建议首先手工执行脚本或命令确保当前用户有可执行权限。其次配置定时任务时间为当前时间稍后X分钟执行并重启服务使其生效,查看/var/log/cron日志确认成功。最后修改回正确配置再重启服务。
Q2:定制任务都是分钟级别开始的,如果我想每隔5秒钟执行一次命令,如何设置?
A1:可以利用sleep命令完成。
1、crontab命令行配置介绍
在crontab配置文件中的一条定时任务命令模板如下:# 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/script
一个定时任务的配置共包括6个字段,分别是分、时、日、月、周、命令行或脚本,每一列取值的范围或者含义如上述格式中注释描述。特别注意一点是命令行或者脚本一定要配置成绝对路径。
在上述各字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如在第1列表示每分钟执行,第2列表示每小时执行,第3列表示每天执行。
逗号(,):可以用逗号隔开的值表示指定一个列表范围,例如,在第1列设置15,30,45表示在第15分钟、30分钟、45分钟执行。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示2,3,4,5,6
正斜线(/):可以用正斜线指定时间的间隔频率,例如第2列设置成"*/2",表示每两小时执行一次。
2、crontab配置实例
1、每天晚上的21:30运行/usr/bin/cleanup.sh脚本30 21 * * * /usr/bin/cleanup.sh # "*"表示取值范围内的所有数字
2、每月1、10、22日的4:45运行/usr/bin/backup.sh脚本
45 4 1,10,22 * * /usr/bin/backup.sh #","逗号表示固定的离散数字取值
3、每周六、周日的1:10运行查找命令
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
4、每天18:00至23:00之间每隔30分钟执行数据库检查脚本
0,30 18-23 * * * /usr/bin/dbcheck.sh #方法一 */30 18-23 * * * /usr/bin/dbcheck.sh # "/"斜杠表示每隔的意思,比如*/30表示每隔30分钟
3、crontab操作命令
根据上述的内容了解定时任务cron配置规则后,我们还需要怎么进行cron定时任务的增、删、改操作。crontab命令格式
crontab [-u user] -e -l -r
选项说明:
-u 用户名,不加-u参数默认为当前用户。 -e 编辑crontab文件。 -l 列出crontab文件中的内容。取值来源为/var/spool/cron下对应的文件 -r 删除crontab文件。
4、配置定时任务实例
需求:每隔1分钟打印时间。通过该定时配置任务配置了解整个配置过程。(1)root用户登录,执行crontab -e配置命令
Linux # crontab -e */1 * * * * echo $(date '+%Y-%m-%d %H:%M:%S') >> /tmp/test_crontab.txt
(2)执行/etc/init.d/cron restart 或者 service cron restart使配置生效。此时可以在/var/spool/cron目录下root文件中看到新配置的定时任务
(3) tail -f /tmp/test_crontab.txt文件内容,确认是否每隔一分钟打印。如果配置生效了,就可以配置自己想要的定时任务。
5、FAQ
Q1:定时任务配置完成后,我怎么确定它一定会生效?A1:查看/var/log/cron日志。建议首先手工执行脚本或命令确保当前用户有可执行权限。其次配置定时任务时间为当前时间稍后X分钟执行并重启服务使其生效,查看/var/log/cron日志确认成功。最后修改回正确配置再重启服务。
Q2:定制任务都是分钟级别开始的,如果我想每隔5秒钟执行一次命令,如何设置?
A1:可以利用sleep命令完成。
相关文章推荐
- linux crontab 命令使用方法和实例
- Linux crontab命令的使用方法
- SCI软件使用方法总结-定位测量篇
- Delphi5 企业版使用BDE访问 Oracle方法
- TListView组件使用方法
- Jakarta Commons Digester 简介和具体使用方法
- 如何使用vs.net生成方法的小技巧
- 第三方控件使用方法
- JSP数据和JavaScirpt数据交互使用问题的一种解决方法
- 在delphi中使用xml文档有两种方法
- 水晶报表使用经验谈1--建立水晶报表第一步及编译最易出现错误的解决方法及报表转换成pdf文档进行打印方法
- 关于Delphi中预编译指令的使用方法
- showModalDialog()、showModelessDialog()方法使用详解
- 非窗口类中使用定时器的方法(二)
- 效率和方便性--怎样在没有限制类可用性的情况下使用本地方法
- [导入]showModalDialog()、showModelessDialog()方法使用详解
- 使用数据库保存session的方法
- ASP的技术特点与使用方法
- 在RxRichEdit中插入图片的完美解决方法(不使用剪贴板)
- 使用5种不同的方法加载水晶报表(Windows 窗体)