在介绍crontab命令之前,要先给各位介绍crond。为什么呢?因为 crontab命令得依靠crond服务支持,crond是 Linux操作系统下用来周期性执行某种任务或等待处理任务的一个守护进程。这样说属实是有些官方化,咱改变一下,说的稍微通俗一些,crond是一个服务,当这个服务启动起来之后它会一直在后台运行,那这个服务是怎么工作的呢?需要crontab来给它配置,crontab会告诉crond“你每天晚上11点去让那个Shell脚本执行一下”,或者告诉crond “你每周三的中午12点执行一下这条命令”。
(资料图片)
大家现在明白了吧?crontab和crond的关系就相当于前面讲的防火墙一样。crontab是一个工具,专门用来配置各种定时任务,具体去实现这些任务的是crond服务。
crond 服务的启动和自启动方法如下:
crond进程每分钟都会定期检查是否有要执行的任务,如果有则会自动执行该任务。还有就是在操作系统安装完成后,默认就会安装crond服务和crontab工具,而且 crond 服务默认就是开机自启动的。若两者都不存在的话,可以通过yum命令来安装部署:
注:启用周期性任务有一个前提条件,即对应的系统服务crond必须已经运行;
接下来正式开始介绍crontab命令的使用方式,crontab命令可以通过/etc/cron.allow和/etc/cron.deny这两个文件来控制用户是否可以使用crontab命令,控制的也非常简单:
/etc/cron.allow :只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令。优先级最高。
/etc/cron.deny :写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab命令。
Linux操作系统中默认只存在/etc/cron.deny文件,/etc/cron.allow文件需自行创建。
注:/var/spool/cron这个文件的含义是 所有用户通过crontab命令配置定时任务时,配置文件默认都存放在此目录,文件名以用户名命名。
在Linux操作系统中每个用户都可以实现自己独有的crontab定时任务,只需要使用这个用户的身份执行“crontab -e”命令即可。当然,写入到/etc/cron.deny文件中的用户不能执行此命令。
crontab命令的语法格式如下:
Ø 编辑计划任务:crontab -e [-u 用户名]
Ø 查看计划任务:crontab -l [-u 用户名]
Ø 删除计划任务:crontab -r [-u 用户名]
root用户可以管理普通用户的计划任务;普通用户只能管理自己的计划任务。
注:用户只需要执行“crontab -e”命令,系统会自动调用文本编辑器(默认为vi文本编辑器)并打开“/var/spool/cron/用户名”的文件,无需手动指定任务列表文件的位置。
当用户执行“crontab -e”命令想要配置定时任务时,会发[孙1] 现打开的是一个空文件,这个空文件可不能瞎写,它有固定的语法格式!各位读者朋友需要按照固定的格式去配置定时任务。放心!语法格式非常简单,我一说你们就会。
【crontab配置定时任务的语法格式】
时间周期设置: 任务内容设置:
50 3 2 1 * run_command
分钟 小时 日期 月份 星期 要执行的命令
详细的说一下各个部分各自代表的含义:
总共有6个字段,前5个字段用来指定任务重复执行的时间规律,第6个字段用于指定具体的任务内容。crontab任务配置记录中,所设置的命令在“分钟+小时+日期+月份+星期”都满足的条件下才会去运行。
时间周期的设置除了使用整数之外,还有一些特殊的表示方法:
这里特意写了几个例子来帮助各位读者朋友理解这些特殊的表示方法:
Ø 0 23 * * 1-5 周一到周五每天23:00
Ø 30 2 * * 1,3,5 每周一、三、五的2点30分
Ø 0 8-18/2 * * * 每天的8点到18点之间每隔2小时
---摘自《零基础趣学Linux》
2023年最新Linux企业级免费教学视频以及各种服务尽在-->www.noylinux.com
Linux运维技术企业交流q:962822359
Copyright © 2015-2022 南极创投网版权所有 备案号:粤ICP备2022077823号-13 联系邮箱: 317 493 128@qq.com