当前位置: 首页 > 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.lryc.cn/news/592258.html

相关文章:

  • AugmentCode还没对个人开放?
  • 双通达信多板块同步
  • 如何抉择HTTPSProxy?
  • AR技术重塑电力巡检:效率提升与智能升级
  • 三维重建一: 相机几何
  • 基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证
  • Go语言实战案例-斐波那契数列生成器
  • 9. isaacsim4.2教程-ROS加相机/CLOCK
  • pgsql导出导入超过50G数据、解决方法
  • hive分区表临时加载日批数据文件
  • MyBatis 动态 SQL:让 SQL 语句随条件灵活变化
  • [源力觉醒 创作者计划]_文心一言 4.5开源深度解析:性能狂飙 + 中文专精
  • 美创科技建设项目被评为中国信通院医疗领域“磐安”优秀案例
  • 禁止拖动视频进度条来保障视频安全?
  • 西门子工业软件全球高级副总裁兼大中华区董事总经理梁乃明先生一行到访庭田科技
  • 免费PDF文件格式转换工具
  • 如何选择旅游科技行业云ERP?Oracle NetSuite助力汇智国际数智化升级
  • 【世纪龙科技】汽车故障诊断与排除仿真教学软件让课堂更高效安全
  • TCL 电视安装 APK 文件主要有 U 盘安装——仙盟创梦IDE
  • Java并发编程性能优化实践指南:锁分离与无锁设计
  • PYTHON日志神器nb_log详细介绍和使用说明
  • 数据统计模块后端架构解析:从Controller到SQL的ECharts数据对接实践
  • div和span区别
  • 为什么IoTDB成为物联网场景的技术优选?
  • Vue3 业务落地全景:脚手架、权限、国际化、微前端、跨端与低代码 50 条实战心法
  • 差分数组算法
  • ElasticSearch Doc Values和Fielddata详解
  • Android音视频探索之旅 | Webrtc 1对1音视频通话核心流程分析
  • 力扣347:前K个高频元素
  • [AI8051U入门第五步]modbus_RTU主机