前言
想要制作一个定时发送邮件的小功能,因此需要使用到Linux的定时任务。
通过了解,发现了Cron与Crontab来进行定时任务的实现
什么是Cron?
工具型软件cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。cron该词来源于希腊语chronos(χρόνος),原意是时间。
什么是crontab?
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
参考文章
内容
基本运行命令
cron是一个定时执行工具,与大多数linux工具一样,我们可以通过如下命令能对其进行控制:
service cron start
启动cron服务
service crond stop
关闭cron服务
service crond restart
重启cron服务
service crond reload
重新载入cron服务配置
crontab表详解
通过在表中添加相关参数,我们便可以将相关脚本通过定时器进行定时运行
crontab -l
列出当前crontab表中的内容
crontab -r
移除crontab表
crontab -e
可以使用系统中内置的编辑器,进入crontab表中,对表中内容进行编辑
crontab -i
可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
crontab表时间格式说明
1-3表示123
1-9/2表示13579
1 | 每小时执行 0 * * * * |
1 | * * * * * |
因此,如果我们想让一个脚本每十分钟执行一次,那么可以这么设置:
*/10 * * * * 运行方式 脚本的绝对地址
设定cron的权限/etc/cron.allow /etc/cron.deny
系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。
如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。
如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。
如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。 如果系统里这两个文件都没有的话,就可以使用cron机制
添加脚本文件到目录中
在/etc/crontab
中,存放着四个文件夹(/cron.hourly cron.daily cron.weekly cron.monthly
)分别代表着每小时执行一次,每天执行一次,每周执行一次,每月执行一次
在到达了指定的时间后,系统便会对其进行自动执行
尾言
仅仅作为一次记录