什么是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~59 | 0~23 | 1~31 | 1~12 | 0~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分钟执行一次该目录下的所有课执行文件。
注意事项
资源分配不均的问题,取消不要的输出选项,安全的检验,周与日、月不可同时存在;
更多详细的解释可以看鸟哥的书。