Linux定时软件Cron

Linux 专栏收录该内容
5 篇文章 0 订阅


一、使用crond监控程序运行程序

1. 使用cron来定期执行任务
使用crond (cron监控程序)来定期运行一些任务,比如备份日志、数据库、把日志发送到自己邮箱等等操作都可以又定期运行程序来完成。
crond是个脚本,每次Linux启动的时候都自动起到该脚本,该脚本是 /etc/rc.d/init.d 下面的,每次系统启动的时候就自动会启动该目录下

的脚本。
cron有两个配置文件,一个/etc/crontab,是一个全局配置文件,一组是crontab命令生成生成的配置文件,是属于用户级的。

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron 下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

一般对管理员来说,只要使用全局配置的/etc/crontab就配置文件就可以了,我们去打开配置文件看看:

 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

 

 

 

/* 设置基于什么shell来运行*/
SHELL=/bin/bash

/* 指定路径,如果此处设置不正确,执行命令时不使用全路径时,可能会存在问题*/
PATH=/sbin:/bin:/usr/sbin:/usr/bin

/* 使用cron实际工作时,通过邮件来通知root用户 */
MAILTO=root

/* 与/etc/crontab配置文件相关的主目录为根目录 */
HOME=/

 


# run-parts

/* 这一句是在每天每小时过后一分钟运行/etc/cron.hourly目录中的每个脚本文件 */
01 * * * * root run-parts /etc/cron.hourly

/* 在每天凌晨4点2分运行/etc/cron.daily目录中的每个脚本文件 */
02 4 * * * root run-parts /etc/cron.daily

/* 在每个星期天凌晨4点22分运行/etc/cron.weekly目录中的每个脚本文件 */
22 4 * * 0 root run-parts /etc/cron.weekly

/* 在每个月的第一天凌晨4点42分运行/etc/cron.monthly目录中的每个脚本文件 */
42 4 1 * * root run-parts /etc/cron.monthly

 


上面脚本中的时间是从左到右的,分别列出了五个字段,我们看下面的表:

------------------------------------------------
字段            取值范围
------------------------------------------------
Minute          0 ~ 59
Hour            0 ~ 23,其中0是午夜,20是晚上8点
Day             1 ~ 31
Month           1 ~ 12
Day of week     0 ~ 7,其中0和7是表示星期天
------------------------------------------------

 

“,”号表示一串值,比如“1,3,4,7,8”
"-"号表示一个范围,比如:"1-6",等同于上面的“1,2,3,4,5,6”
"*"号表示所有值,比如在小时处的“*”号,表示每个小时,等同于1-23
“/”号表示步进,两次任务执行的间隔,在小时处的"*/3",表示所有24小时里面,能被3整除的时刻,等同于 "0,3,6,9,12,15,18,21",而不是从现在开始过3个小时。

比如 在分钟处“*/61”并不代表每隔61分钟执行一次,真实情况为每小时执行


如果同时设置了日期和星期,那么两个条件中其中任意一个满足时,指令变会执行。


2. 用户自己的cron
用户也可以计划用户自己的cron任务,只要这个用户他没有在/etc/cron.deny表中,

就可以使用crontab -e命令来创建自己的cron文件。

 

3. 对cron的访问控制
默认情况下,所有用户都能访问cron工具,要对cron进行访问控制,则可以生成/etc/cron.allow与/etc/cron.deny文件。
(1)这两个文件都不存在时,每个用户都可以访问cron工具
(2)存在/etc/cron.allow文件时,则只有cron.allow文件中允许的用户才能访问cron工具,如果也有/etc/cron.deny文件,则忽略cron.deny文件

(3)仅存在/etc/cron.deny文件时,则不在文件中的用户都可以使用cron工具。


也有一些其他的表达方式:

@reboot  在启动时运行一次
@yearly   每年运行一次 ,等同于 0 0 1 1 *
@annually (和 @yearly一样),等同于 0 0 1 1 *
@monthly 每月运行一次,等同于 0 0 1 * *
@weekly 每周运行一次,等同于 0 0 * * 0
@daily 每天运行一次,等同于 0 0 * * *
@midnight (和 @daily一样),等同于 0 0 * * *
@hourly 每小时运行一次,等同于 0 * * * *


@reboot 在某个用户下启动一个服务或守护进程、或者用户没有权限修改rc.d/init.d文件时非常有用

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值