cron是linux中用于执行定时任务的服务(服务管理 /sbin/service crond start|stop|restart|reload;
ubuntu:/etc/init.d/cronstart|stop|restart ; ubuntu下此服务默认开机启动)
crontab是该服务的管理工具
设置某个用户的定时执行任务时可以使用crontab命令
crontab命令参数
① -u 用户名 与以下三参数配合使用,用于限定用户(省略此参数则默认为当前用户)
② -l 查看
③ -r 删除
④ -e 设置
首次设置cron定时任务,会提示选择编辑器(填序号,如常用的vim编辑器,选择3),然后回车设置结束。以后如果要修改默认编辑器,可以执行select-editor命令
在打开的设置cron定时任务的设置文件中,每一行代表一项定时任务(#为注释),
格式:时间表达式(或@字符串)命令参数 | 路径 可执行文件 |run-parts 目录名(执行指定目录中的所有文件)
时间表达式的格式:
由5段值构成,m h dom mon dow(分别代表:分 时 日 月 星期)
值的范围分别为0-59 0-23 1-31 1-12 0-7(0和7代表周日)
每段值还可以为其它的形式:* 代表范围内任何值;-表示范围;,表示枚举;范围/间隔
对于以下一些固定周期执行的任务,可以使用@字符串来代替时间表达式:
@reboot cron服务启动时
@monthly 每月1号0点分执行
@weekly 每周日0点0分执行
@daily(或@midnight) 每天0点0分执行
@hourly 每小时0分执行
@yearly(或@annually) 每年1月1号0点0分执行
设置完成后,保存文件退出;
设置的内容最终会存储到/var/spool/cron 目录下的文件中(比如ubuntu 在/var/spool/cron/crontabs 中,设置有cron服务的账户会有一个同名文件)
设置一些需要全局性周期执行的任务,需要在/ect目录中设置
①可以在etc/cron.d 目录中建立配置文件,文件内容依然是
格式:时间表达式(或@字符串)命令参数 | 路径 可执行文件 |run-parts 目录名(执行指定目录中的所有文件)
(可以通过# 添加注释)
②对于需要按小时 天 月 周 执行的文件,可以将可执行文件保存到相应的
cron.hourly|cron.daily|cron.monthly|cron.weekly目录中
还可以在crontab的全局配置文件中做一些设置
crontab的全局配置文件为:/etc/crontab 内容一般包括(以ubuntu为例):
这里定义了对于cron.hourly等目录的扫描。这里还可以设置shell解释器和定时执行命令的路径等
crontab的个人配置文件和全局配置文件,每1分钟会被读取一次。所以在修改它们之后,一般无需重启cron服务