- crontab命令介绍
按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件: 全局配置文件负责调度各种管理和维护任务:/etc/crontab
系统默认的设置,位于目录:/etc/cron.d/
用户定义的设置,位于文件:/var/spool/cron/用户名
- crontab命令选项
crontab [-u username] ##如果不使用选项-u指定用户则表示对当前用户进行操作
-e 编辑计划任务
-l 显示计划任务列表
-r 删除所有计划任务 ##如果是root用户下执行该选项则会删除全部计划任务
- 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 周
# | | | | |
# * * * * * user-name command to be executed
例:0 17 * * 1-5 含义:周一到周五每天17:00
字段 | 说明 |
---|---|
分钟 | 取值为从0到59之间的任意整数 |
小时 | 取值为0到23之间的任意整数 |
日期 | 取值为1到31之间的任意整数 |
月份 | 取值为1到12之间的任意整数 |
星期 | 取值为从0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
-
时间数值的特殊表示方法
* 表示该范围内的任意时间 , 表示间隔的多个不连续时间点 - 表示一个连续的时间范围 / 指定间隔的时间频率 -
设置实例:
每天下午16:00将messages日志拷贝到/root目录下
[root@localhost ~]# crontab -e ##创建周期性计划任务 [root@localhost ~]# crontab -l ##查看计划任务列表 15 16 * * * cp /var/log/messages /root 到16:00后我们查看一下/root目录下是否有messages文件 [root@localhost ~]# ls /root ##列出root目录下所有文件 anaconda-ks.cfg messages
-
【思考】:crontab -e 与 /etc/crontab 同样是编辑计划任务,两者之间的区别是什么?
/etc/crontab 只能由root用户才能修改,普通用户没有权限
crontab -e 所有用户都可以执行该命令,计划任务会写入 /var/spool/cron/用户名