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

掌握RockyLinux anacron命令(轻松实现非24小时运行的定时任务)

在日常的Linux系统管理中,我们经常需要执行一些周期性任务,比如备份数据、清理日志或更新软件。对于始终开机的服务器来说,cron 是最常用的工具。但如果你使用的是笔记本电脑、开发机或者偶尔关机的设备,cron 就可能错过任务执行时间。

这时,anacron 就派上用场了!本文将手把手教你如何在 RockyLinux 系统中使用 anacron 命令,来可靠地执行那些非24小时运行环境下的定时任务。

掌握RockyLinux anacron命令(轻松实现非24小时运行的定时任务) RockyLinux anacron命令 非24小时运行任务 anacron定时任务 Linux系统维护 第1张

什么是 anacron?

anacron(全称:anachronistic cron)是一个专为非持续运行系统设计的定时任务调度器。与 cron 不同,它不依赖系统在特定时间点必须开机,而是以“天”为单位检查任务是否已执行,若未执行则在系统下次启动后尽快运行。

因此,anacron 非常适合用于个人电脑、开发工作站或间歇性开机的服务器——这正是 非24小时运行任务 的典型场景。

anacron 与 cron 的区别

  • cron:要求系统在设定时间点必须在线,否则任务会丢失。
  • anacron:即使系统关机,只要在周期内某次开机,就会补执行遗漏的任务。

在 RockyLinux 中安装 anacron

大多数 RockyLinux 安装默认已包含 anacron。如果没有,可通过以下命令安装:

sudo dnf install cronie-anacron  

安装完成后,anacron 通常由 crond 服务自动调用,无需单独启动服务。

配置 anacron 任务

anacron 的主配置文件位于 /etc/anacrontab。你可以直接编辑它,也可以在 /etc/cron.{daily,weekly,monthly} 目录下放置脚本,这些脚本会被 anacron 自动调度。

让我们先看看默认的 /etc/anacrontab 内容:

# /etc/anacrontab: configuration file for anacron.# See anacron(8) and anacrontab(5) for details.SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# the maximal random delay added to the base delay of the jobsRANDOM_DELAY=45# the start period of anacron (in minutes)START_HOURS_RANGE=3-22#period in days   delay in minutes   job-identifier   command1	5	cron.daily		nice run-parts /etc/cron.daily7	25	cron.weekly		nice run-parts /etc/cron.weekly@monthly	45	cron.monthly		nice run-parts /etc/cron.monthly  

各字段含义如下:

  • period:任务执行周期(天),如 1 表示每天,7 表示每周,@monthly 表示每月。
  • delay:系统启动后延迟多少分钟执行(避免开机时资源争抢)。
  • job-identifier:任务唯一标识,用于记录上次执行时间(存于 /var/spool/anacron/)。
  • command:要执行的命令或脚本。

添加自定义 anacron 任务(小白也能操作)

假设你想每天备份一个目录到家目录,即使电脑昨天关机了,今天开机也要补做一次备份。

步骤如下:

  1. 创建备份脚本 /home/youruser/backup.sh(替换 youruser 为你的用户名):
#!/bin/bash# 备份 Documents 目录到 backup_日期.tar.gzDATE=$(date +%Y%m%d)tar -czf /home/youruser/backups/backup_$DATE.tar.gz /home/youruser/Documents  

记得赋予执行权限:

chmod +x /home/youruser/backup.sh  
  1. 将脚本放入 /etc/cron.daily/ 目录(这样会被 anacron 每天调度):
sudo cp /home/youruser/backup.sh /etc/cron.daily/my-backup  

注意:文件名不能包含 .,否则 run-parts 会忽略它。

现在,无论你哪天开机,只要距离上次执行超过 1 天,anacron 就会在开机后(加上随机延迟)自动运行这个备份任务。这就是 Linux系统维护 中非常实用的功能!

验证 anacron 是否工作

你可以手动触发测试:

sudo anacron -f -n  

参数说明:

  • -f:强制运行所有任务,忽略时间记录。
  • -n:不使用随机延迟,立即执行。

查看日志确认执行情况:

grep anacron /var/log/cron  

总结

通过本文,你已经掌握了如何在 RockyLinux 中使用 anacron 命令来处理 非24小时运行 环境下的定时任务。无论是日常备份、日志清理还是其他周期性维护工作,anacron 都能确保任务不会因关机而遗漏。

记住关键点:把脚本放进 /etc/cron.daily//etc/cron.weekly//etc/cron.monthly/anacron 会自动帮你调度。这是每个 Linux 用户都应了解的 anacron定时任务 基础技能。

现在,就去试试吧!让你的 Linux系统维护 更加智能和可靠。