crond和crontab

什么是crond与crontab

crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否要执行的工作,如果有要执行的工作便会自动执行该工作。二Linux任务调度的工作主要分为以下两类:

1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信息,这些工作可有每隔用户自行设置

crontab是新建循环型工作调度的命令,为了安全性问题,我们可以限制使用crontab的用户账户,使用的限制数据有:
/etc/cron.allow

将可以使用crontab的账号写入其中,若不在这个文件内的用户则不可使用crontab;
/etc/cron.deny

将不可以使用crontab的账号写入其中,若未记录袋这个文件当中的用户,就可以使用crontab;

以优先级来说,/etc/cron.allow比/etc/cron.deny要优先,而判断上面,这两个文件只选择一个来限制,因此,建议保留一个。一般来说系统默认保留的是/etc/cron.deny。(我用的CentOs上保留的就只有一个/etc/cron.deny)。

crontab命令的格式为:crontab [-u username] [-l | -r | -e | -i],其参数函数如下表:

参数名称含义用法
-l显示用户的crontab文件的内容crontab -l
-i删除用户的crontab文件前给提示crontab -ri
-r从crontab目录中删除用户的crontab文件crontab -r
-e编辑用户的crontab文件crontab -e
-u只有root用户才能进行这个任务,也即帮助其他用户新建/删除 crontab工作调度

用户所建立的crontab文件存在于/var/spool/cron中,其文件名与用户名一致。
它的格式分为六段,前五段为时间设定段,第六段为所要 执行的命令段,

代表意义分钟小时日期月份命令
数字范围0~590~231~311~120~7命令

比较有趣的是“周”。周的数字为0或者7,都代表“星期天”的意思。辅助字符如下:

特殊字符代表意义
*(星号)代表任何时刻都接受的意思
,(逗号)代表分割时段的意思。举例,如果要执行的工作是3:00与6:00时,就会使:0 3,6 * * * command
-(减号)代表一段时间范围内,举例,8点到12吊之间的每小时的20分都进行一项工作:20 8-12 * * * command
/n(斜线)那个n代表数字,即是每隔n单位间隔的意思,例如没5分钟进行一次:* /5 * * * *command

如何使用

在Linux中已经默认安装了crontab,所以在命令行直接输入 crontab -e 进入编辑模式,默认的是vi,编辑的时候就可以输入自己的命令 ;

crontab -e // 进入定时服务编辑模式,每个工作都是一行
*/1 * * * * /bin/echo Hello, world >> /home/zyl/test.txt   //是创建的定时服务,每分钟在文件test.txt中输入 Hello,world;

这里写图片描述
执行命令时,最好使用绝对路径,这样比较不会找不到执行文件

系统的配置文件:etc/crontab

这个crontab -e是针对用户的cron来设计的,基本上,cron这个服务的最低检测限制是“分钟”,所以cron会每分钟去读取一次/etc/crontab/与/var/spool/cron里面的数据内容,因此,只要你编辑完/etc/crontab这个文件,并且将它保存起来之后,那么cron的设置就会自动来执行了!
这里写图片描述
由于CentOS提供的run-parts这个script的辅助,因此/etc/crontab这个文件里面支持两种执行命令的方式,一种是直接执行命令,一种则是以目录来规划。例如:
命令类型:

01 * * * * zyl mail -s "testing" fiend < /home/zyl/test.txt
//以zyl这个用户的身份,在没小时执行一次mail命令;

目录规划:

*/5 * * * * root run-parts /etc/runcron
//新建一个/root/runcron的目录,将要每隔5分钟执行的“可执行文件”都写到该目录下,就可以让系统没5分钟执行一次该目录下的所有课执行文件。

注意事项

资源分配不均的问题,取消不要的输出选项,安全的检验,周与日、月不可同时存在;
更多详细的解释可以看鸟哥的书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值