在介绍 crontab 命令之前,我们首先要介绍一下 crond,因为 crontab 命令需要 crond 服务支持。crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,和 Windows 中的计划任务有些类似。
crond 服务的启动和自启动方法如下:
[root@localhost ~]# service crond restart
停止 crond: [确定]
正在启动 crond: [确定]
#重新启动crond服务
[root@localhost ~]# chkconfig crond on
#设定crond服务为开机自启动
其实,在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的。crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务。
crontab文件格式:
* * * * * command
minute hour day month week command
分 时 天 月 星期 命令
crontab常用命令:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令需要此参数
crontab -l //列出某个用户的cron服务的详细内容
crontab -r //删除某个用户的cronf服务,删除当前用户所有的定时任务
crontab -e //编辑某个用户的cron服务
crontab -e -u root
crontab -l -u root
为当前用户添加定时任务:
crontab -e //进行任务编辑页面
# tee从标准输入中读取,并将读入的内容写到标准输出以及文件中
*/2 * * * * /bin/sh /home/yhw/HelloWorld.sh 2>&1 |tee /home/root/log
特殊字符:
星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
全局配置文件
crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。
cron.daily是每天执行一次的job
cron.weekly是每个星期执行一次的job
cron.monthly是每月执行一次的job
cron.hourly是每个小时执行一次的job
cron.d是系统自动定期需要做的任务
crontab是设定定时任务执行文件
cron.deny文件就是用于控制不让哪些用户使用Crontab的功能
用户文件配置:
每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般我们保存退出后,系统会自动存放到 /var/spool/cron/目录中,文件名以用户名命名
liunx的cron服务是每隔一分钟去读取一次 /var/spool/cron,/etc/crontab/,/etc/cron.d下面的所有内容
示例:在当前用户下新建一个定时任务
crontab -e
*/20 * * * * /bin/sh /server/java/zookeeper/.zkrestartTask.sh 2>&1 |tee /home/root/zkrestartTaskLog
参考博客
————————————————
版权声明:本文为CSDN博主「Sun_yhw」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36669747/article/details/87892289