Linux下Crontab的格式及含义

本文详细解读Linux下的Crontab配置格式,包括分钟、小时、日期、月份和星期的设定,以及实际任务调度示例,助您轻松掌握cron定时任务的管理。

Linux下Crontab的格式及含义

 

crontab的基本格式:

f1  f2  f3  f4  f5  command

分  时     日  月  周  命令

第一列f1代表分钟1~59:当f1为*表示每分钟都要执行;为*/n表示每n分钟执行一次;为a-b表示从第a分钟到第b分钟这段时间要执行;为a,b,c,...表示第a,b,c分钟要执行

第二列f2代表小时0~23(0表示凌晨):当f2为*表示每小时都要执行;为*/n表示每n小数执行一次;为a-b表示从第a小时到第b小时这段时间要执行;为a,b,c,...表示第a,b,c小时要执行

第三列f3代表日1~31:含义如上所示,以此类推

第四列f4代表月1~12:含义如上所示,以此类推

第五列f5代表星期0~6(0表示星期天):含义如上所示,以此类推

第六列command代表要运行的命令

 

下面来举例具体说明一下crontab格式的含义:

30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的23 : 00 重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
上面的例子表示每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart
上面的例子表示一月一号的4点重启apache

Linux系统中,yum是一个软件包管理器,用于安装、更新、删除软件包;crontab则用于设置定时任务。 ### yum的使用 yum可以用来安装软件包,例如安装vixie - cron和crontabs,使用命令如下: ```bash yum -y install vixie-cron yum -y install crontabs ``` 其中,`-y`参数表示在安装过程中自动回答“yes”,避免交互式确认 [^1]。 ### crontab的使用 #### 任务调度分类 Linux下的任务调度分为系统任务调度和用户任务调度。系统任务调度的配置文件是`/etc`目录下的`crontab`文件;用户任务调度是用户定期要执行的工作,所有用户定义的crontab文件都被保存在`/var/spool/cron`目录中,文件名与用户名一致 [^2]。 #### 指令详解 每个用户都可以有一个crontab文件来保存调度信息,通过`crontab`命令可以运行任意一个shell脚本或者命令。`crontab`命令的常用选项如下: - `-u user`:指定用户名 - `-e`:编辑crontab文件 - `-l`:列出crontab文件中的内容 - `-r`:删除crontab文件 #### crontab的时间设置 `crontab`的时间设置格式为`* * * * * command`,各列含义如下: - 第1列:分钟(0 - 59) - 第2列:小时(0 - 23,0表示子夜) - 第3列:日(1 - 31) - 第4列:月(1 - 12) - 第5列:星期(0 - 6,0表示星期天) - 第6列:要运行的命令 常用规则: - `*`:匹配任何值 - `*/n`:匹配每n个单位(从起始值算起的每n个单位) - `x`:匹配x - `x - y`:匹配从x - y的值 - `x,y,z`:只匹配x, y, z三个值 #### 启动和停止crond进程 使用`systemctl`命令启动或停止`crond`进程,若`crond`进程停止,则不会有任务被自动执行。 ```bash systemctl start crond # 启动crond进程 systemctl stop crond # 停止crond进程 ``` #### 不发送邮件 在`crontab -e`中编辑任务时,在第一行添加`MAILTO=""`,则不会发送邮件,可以通过`/var/log/cron`查看执行的日志 [^3]。 ### yum和crontab结合使用场景 可以使用`crontab`来定时执行`yum`的软件更新操作,例如每天凌晨2点自动更新系统软件包。编辑`crontab`文件(`crontab -e`),添加以下内容: ``` 0 2 * * * yum -y update ``` 这表示在每天凌晨2点自动执行`yum -y update`命令来更新系统软件包。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值