1 crond
Crond是Linux系统中用来定期执行命令或制定程序任务的服务,通过crontab我们可以在固定的间隔时间执行指定的系统指令或shell script脚本,适合周期性的日志分析或者数据备份,时间间隔的耽误可以是分、时、日、月、周以及以上任意组合。
2 任务调度
任务调度:是指系统在每个时间执行的 特定的命令或程序。
Linux任务调度的工作可分为两类:
1. 系统自身执行的工作:系统周期性执行的任务工作,如轮询系统日志,备份系统数据,清理缓存。
2. 个别用户工作:某个用户定期要做的任务工作,例如对MySQL数据库的备份。
3 crontab命令
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表。
基本语法: crontab 【选项】
常用命令:
crontab -e 进入编辑crontab定时任务界面(vim)
crontab -l 查询当前用户所有的crontab任务
crontab -r 删除当前用户所有的crontab任务
server crond restart 重启所有的crontab任务
4 crontab可定时执行 某个命令或脚本
例子1:
* * * * * ls -l /home >> /tmp/outputls.txt 每分钟执行一次ls命令并将结果输出到outputls.txt
例子2:
* * * * * /home/mytask1.sh 每分钟执行一次mytask1.sh脚本
总结:crontab命令的构成为 时间+动作,时间由五个占位符组成,分别代表分、时、日、月、周,之间用空格隔开。
第一个占位符 代表一小时当中的第几分钟 取值范围为0-59
第二个占位符 代表一天当中的第几个小时 取值范围为0-23
第三个占位符 代表一个月当中的第几天 取值范围为1-31
第四个占位符 代表一年当中的第几月 取值范围为1-12
第五位占位符 代表一周当中的星期几 取值范围为0-7(0和7都代表星期日)
特殊符号的说明:
* 代表任何时间。如例子中第一个*,代表一小时中每分钟都执行一次
, 代表不连续的时间。如“0 8,12 * * * 命令”,代表在每天的8点0分,12点0分 各执行一次命令
- 代表连续的时间范围。如“0 5 * * 1-6 命令”,代表在周一到周六的5点0分 执行命令
*/n 代表每隔多久执行一次。如“*/10 * * * * 命令”,代表每隔10分钟就执行一次命令
5 新建crontab任务
step1 crontab -e 进入vim命令模式;
step2 按i进入编辑模式,编辑完成后 按ESC返回vim命令模式;
step3 :wq保持退出,即新建crontab成功