Centos7 | crond/crontab 定时任务

本文详细介绍了Linux下的Cron与crontab任务调度器的使用方法,包括crontab的基本概念、常用命令、实例解析及常见错误。同时,推荐了Crontab可视化工具,帮助初学者更直观地理解和设置定时任务。

传送站

Cron表达式生成器
crontab guru

  linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。

一、cron介绍

  我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

二、crontab的使用

我们常用的命令如下:

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表
CentOS 7 中配置 `crontab` 定时任务执行 `cat` 命令,可以通过编辑用户的 `crontab` 文件来实现。以下是一个详细的步骤说明: ### 1. 编辑 crontab 文件 使用 `crontab -e` 命令来编辑当前用户的 `crontab` 文件。如果这是第一次编辑,系统会提示选择一个编辑器。 ```bash crontab -e ``` ### 2. 添加定时任务 在编辑器中添加一行任务定义。`crontab` 的格式如下: ``` * * * * * command_to_execute - - - - - | | | | | | | | | +---- 星期几 (0 - 6) (星期天为0) | | | +------ 月份 (1 - 12) | | +-------- 日期 (1 - 31) | +---------- 小时 (0 - 23) +------------ 分钟 (0 - 59) ``` 假设你想每天凌晨 2:30 执行 `cat` 命令来查看某个文件的内容,例如 `/path/to/your/file.txt`,可以添加如下行: ```bash 30 2 * * * cat /path/to/your/file.txt >> /path/to/output.log 2>&1 ``` - `30 2 * * *` 表示每天凌晨 2:30。 - `cat /path/to/your/file.txt` 是要执行的命令。 - `>> /path/to/output.log 2>&1` 将命令的标准输出和错误输出追加到日志文件中,方便调试。 ### 3. 保存并退出 保存并退出编辑器。`crontab` 会自动加载新的配置。 ### 4. 验证任务 可以通过以下命令查看当前用户的 `crontab` 任务列表: ```bash crontab -l ``` 确保任务已经正确添加。 ### 5. 确保 cron 服务运行 检查 `cron` 服务是否正在运行: ```bash systemctl status crond ``` 如果服务未运行,可以启动它并设置开机自启: ```bash sudo systemctl start crond sudo systemctl enable crond ``` ### 示例 以下是一个完整的示例,展示如何每天凌晨 2:30 执行 `cat` 命令并记录输出: ```bash 30 2 * * * cat /home/user/example.txt >> /home/user/cron_output.log 2>&1 ``` ### 注意事项 - 确保路径正确且文件存在。 - 如果需要执行的命令较为复杂,建议将命令写入脚本文件,并在 `crontab` 中调用该脚本。 - `crontab` 的环境变量可能与用户交互式 shell 的环境变量不同,因此建议在脚本中显式设置所需的环境变量或使用绝对路径。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值