Linux系统中的计划任务、周期性任务的服务是cron,主程序包为cronie,cronie提供了crond守护进程及相关辅助工具:crontab。
cron任务分类两类
- 系统cron任务:主要用于系统自身的维护(比如写缓存数据到硬盘、日志清理等),手动编辑/etc/crontab维护,一般不建议修改。
- 用户cron任务:使用crontab命令维护。
crontab是系统管理员用来维护计划任务的主要工具,本文主要介绍crontab的使用。
cron任务配置格式
crontab的配置格式可以参考/etc/crontab
[root@VM_41_201_centos ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# 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
# | | | | |
# * * * * * user-name command to be executed
这是系统任务,一般不要修改,用户的cron任务会保存在/var/spool/cron/<username>
中,如root用户的cron任务:/var/spool/cron/root
。
特殊说明:* 位置除了可以指定单一值,还可以指定多个值
星号(*):代表所有可能的值;
逗号(,):多个值,如 “* * * * 6,7” 表示每周六、日;
中杠(-):整数范围,如“2-6”表示“2,3,4,5,6” ;
斜线(/):时间间隔,如 “*/5 * * * *” 表示每5分钟。
crontab命令
SYNOPSIS
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
crontab -n [ hostname ]
crontab -c
OPTIONS
# 常用选项
-u user 指定哪个用的任务(默认当前用户)
-l 查看任务
-e 编辑任务(进入vim编辑器,并且能够编辑已有的任务)
-r 清空任务(如需删除单条或部分任务,需要使用-e命令进入vim编辑)
示例
# 每个整点时刻查询磁盘分区使用情况写入文件
0 * * * * df -h >> /data/diskinfo
# 每天凌晨3点执行shell脚本
0 3 * * * /root/sh/mysql-backup.sh
网友评论