Linux命令之crontab

1、概述

crontab 命令Linux和类Unix系统中的一个命令,用于调度定时任务。crontab 是 “cron table” 的缩写,它允许用户通过 cron 守护进程来安排自动运行的任务。这些任务被存储在一个叫做 crontab 的文件中,每个用户都可以有自己的 crontab 文件来设置个人的定时任务

cron 是一个基于时间的任务调度程序,它在后台运行,并且每隔一分钟检查一次所有用户的 crontab 文件,以确定是否有任务需要运行。如果某个任务到了预定的时间,cron 就会执行该任务。

Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
每一个用户拥有自己的crontab文件。

2、检查是否安装了crontab命令

rpm -qa | grep crontab

在这里插入图片描述

3、crontab服务启动与关闭

service crond start 启动
service crond stop 停止
service crond restart 重启
service crond reload 重载

4、全局配置文件

crontab 在/etc目录下面存在cron.hourly、cron.daily、cron.weekly、cron.monthly、cron.d五个目录和crontab、cron.deny二个文件。

执行命令:
cd /etc
ls -l /etc/ | grep -w "cron"
在这里插入图片描述

在Linux系统中,`/etc` 目录下确实存在用于cron定时任务的目录和文件。这些目录和文件的主要作用如下:
1. **cron.hourly**:这个目录中的脚本会每小时执行一次。
2. **cron.daily**:这个目录中的脚本会每天执行一次。
3. **cron.weekly**:这个目录中的脚本会每周执行一次。
4. **cron.monthly**:这个目录中的脚本会每月执行一次。
5. **cron.d**:这个目录用于存放自定义的cron作业,这些作业可能需要按照不同的时间表运行,而不是标准的每小时、每天、每周或每月。
6. **crontab**:这个文件通常是一个链接,指向了 `/etc/cron.deny``/etc/cron.allow`。这些文件用于控制哪些用户可以使用 `crontab` 命令来安排作业。
7. **cron.deny**:这个文件列出了不允许使用 `crontab` 命令的用户列表。如果这个文件存在,那么只有不在列表中的用户才能使用 `crontab`8. **cron.allow**:这个文件列出了允许使用 `crontab` 命令的用户列表。如果这个文件存在,那么只有列表中的用户才能使用 `crontab``cron.allow` 的优先级高于 `cron.deny`,如果两个文件都存在,那么 `cron.allow` 会被使用。
这些目录和文件是Linux系统中实现任务自动化的重要组成部分,系统管理员和用户可以利用它们来安排各种定期执行的维护和管理工作。

5、常见命令参数

crontab -e:编辑当前用户的 crontab 文件。
crontab -l:列出当前用户的 crontab 文件内容。
crontab -r:删除当前用户的 crontab 文件。

每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名。
linux的cron服务是每隔一分钟去读取一次/var/spool/cron、/etc/crontab、/etc/cron.d下面所有的内容.

6、crontab文件内容分析

执行如下命令

more /etc/crontab

在这里插入图片描述

在这里插入图片描述

7、编写一条定时任务

执行命令

crontab -e

在每天的凌晨 5 点 30 分执行一次genfsimage.sh脚本。
内容:

30 05  * * * sh /root/fsimage/genfsimage.sh > /dev/null 2>&1
> /dev/null 2>&1 是一个在 Unix-like 系统中常用的命令行技巧,用于将命令的输出和错误信息都丢弃,不显示在终端上。这里的每个部分的意思是:

>:表示重定向标准输出(stdout)。
/dev/null:是一个特殊的文件,所有写入这个文件的内容都会被丢弃,不会存储在任何地方。
2>:表示重定向标准错误输出(stderr)。
&1:表示重定向的目标是标准输出的同一个地方,即 /dev/null。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值