当前位置: 首页 > news >正文

Linux 定时任务全解析:atd 与 crond 的区别及实战案例(含日志备份 + 时间写入)

1. atd 和 crond 两个任务管理程序的区别

  • atd:用于执行一次性的定时任务,即设置任务在某个特定的时间点仅执行一次 ,适合处理不需要重复执行的定时操作,比如在未来某个确切时间执行一个脚本、发送一份文件等场景。

  • crond:用于执行周期性的定时任务,可按照设定的周期(如每分钟、每小时、每天、每周等)重复执行任务,常用来做系统监控、日志备份、定期数据清理或生成等周期性需求。

    对比项atdcrond
    任务执行性质一次性定时任务,任务仅执行一次周期性定时任务,按周期重复执行
    适用场景未来某个特定时间点执行单次操作,如临时定时发文件、跑脚本需周期性执行的任务,如日志备份、系统监控、定期数据处理
    配置方式通过 atatqatrm 等命令配置通过 crontab 命令(编辑用户或系统级定时任务表 )配置
    任务调度逻辑提交任务到队列,到指定时间触发执行依据预设的时间周期规则(分、时、日、月、周等维度组合)循环触发

2. 指定在 2025/08/15 09:00 将时间写入 testmail.txt 文件中

1. 安装 at 软件包
  • at命令需要安装
[root@master ~]# yum  install  at  -y
[root@master ~]# at  -V   # 大写V
at version 3.2.2
2. 启动并配置 atd 服务
  • 启动服务
[root@master ~]# systemctl start  atd
[root@master ~]# systemctl enable  --now  atd  # 设置开机启动
[root@master ~]# systemctl  status  atd  # 查看状态
3.创建定时任务

使用 at 命令实现,步骤如下:

  1. 在终端输入 at 09:00 2025-08-15 ,回车进入 at 任务编辑模式。
  2. 在编辑模式中输入 date > testmail.txt ,然后按 Ctrl + D 保存并退出,这样就设置好了在指定时间将当前时间写入 testmail.txt 文件的任务 。
[root@master ~]# at 9:00 2025-08-15
warning: commands will be executed using /bin/sh
at Fri Aug 15 09:00:00 2025
at> date > testmail.txt 
at> <EOT>
job 11 at Fri Aug 15 09:00:00 2025

3. 指定每天凌晨 4:00 将该时间点之前的日志信息备份到某个目录下(/var/log/messages ),备份后日志文件名显示格式 logfileYY - MM - DD - HH:MM:SS

1. 配置定时任务

crontab 是 Linux 下实现定时任务的工具,/etc/crontab 是系统级任务配置文件。编辑它来设定凌晨 4 点执行备份:

[root@server ~]# vim  /etc/crontab  # 编辑系统计划任务

进入文件后,添加定时任务条目。crontab 的时间规则是 分 时 日 月 周 ,要凌晨 4 点执行,所以分钟设为 0,小时设为 4,即 0 4 * * * 。执行用户是 root,执行的命令是把日志文件按要求备份并命名:

0 4 * * *   root   /bin/cp  /var/log/messages /var/log/logfile`date +\%y-\%m-\%d-\%H:\%M:\%S`

反引号`` 表示将引起的内容识别为命令

在crontab系统中%表示换行,需要增加转义符\

2. 测试验证(确保逻辑可行,提前发现问题)

直接等凌晨 4 点验证不高效,可临时修改 crontab 里的时间规则,比如改成 * * * * * (每分钟执行一次),快速测试任务是否按预期生成备份文件

* * * * *   root   /bin/cp  /var/log/messages /var/log/logfile`date +\%y-\%m-\%d-\%H:\%M:\%S`

在这里插入图片描述

测试完后,改回 0 4 * * * 的时间规则,恢复凌晨 4 点执行的需求 。

http://www.dtcms.com/a/286400.html

相关文章:

  • SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别
  • 融合优势:SIP 广播对讲联动华为会议 全场景沟通响应提速​
  • 【PHP】Swoole:CentOS安装MySQL+Swoole
  • 强化学习框架VeRL全面解析(架构、调试、修改与应用)
  • vbox增加虚拟磁盘空间大小
  • 基于springboot+vue+mysql的在线文档管理系统的设计与实现(源码+论文+PPT答辩+开题报告)
  • ClickHouse物化视图避坑指南:原理、数据迁移与优化
  • ESP32-IDF LVGL UI 设计工具的使用
  • 海森矩阵(Hessian Matrix)在SLAM图优化和点云配准中的应用介绍
  • Go 的热重载工具 Air 详解
  • 深入理解 Spring:事务管理与事件机制全解析
  • 域名WHOIS信息查询免费API使用指南
  • 【CF】⭐Day104——Codeforces Round 840 (Div. 2) CE (思维 + 分类讨论 | 思维 + 图论 + DP)
  • 【LVGL】Linux LVGL程序几十分钟后UI卡死
  • ubuntu 安装zabbix6 agent2
  • AI进入自动驾驶时代:OpenAI发布革命性ChatGPT Agent
  • 生成式引擎优化(GEO)核心解析:下一代搜索技术的演进与落地策略
  • OpenAI最强ChatGPT智能体发布:技术突破与应用前景分析
  • 脉冲神经网络(Spiking Neural Network, SNN)与知识蒸馏(Knowledge Distillation, KD)
  • 有好内容,如何做好知识变现?
  • BIST会对锁步核做什么?
  • 深入了解直播美颜SDK:GPU加速下的美白滤镜功能实现?
  • 解决 IDEA 中 XML 文件的 “URI is not registered” 报错
  • html5+css3+canvas纯前端4字方形LOGO生成器
  • 【C# in .NET】17. 探秘类成员-构造函数与析构函数:对象生命周期管理
  • Beagle 480 USB分析仪
  • 差分数组算法
  • 柴油机活塞cad【4张】三维图+设计说明书
  • ollma dify 搭建合同审查助手
  • RabbitMQ—TTL、死信队列、延迟队列