1.atd和crond两个任务管理程序的区别
工具 | 功能特性 | 适用场景 | 服务名称 |
---|---|---|---|
atd | 仅执行一次性任务,在指定的未来时间点运行一次后自动结束 | 临时定时任务(如凌晨 2 点执行一次数据同步) | atd (需启动服务) |
crond | 执行周期性任务,按预设规则(每分、每时、每天等)重复运行 | 规律性任务(如每日备份日志、每周清理垃圾文件) | crond (系统默认启动) |
注意:使用atd
前需确保atd
服务已启动(systemctl start atd
),而crond
服务通常默认启动,可通过systemctl status crond
验证状态。
2.指定在2024/04/15 09:00将时间写入testmai.txt文件中
(1)检查 atd 服务状态
若服务未启动,需先启动:
systemctl start atd # 启动atd服务
systemctl enable atd # 设置开机自启(可选)
(2)创建定时任务
使用at
命令定义任务执行时间和内容:
[root@master ~]# echo date > /root/testmai.txt | at 09:00 08/15/2025
warning: commands will be executed using /bin/sh
job 1 at Fri Aug 15 09:00:00 2025
Can't open /var/run/atd.pid to signal atd. No atd running?
[root@master ~]# atq # 输出任务ID、执行时间和所有者
1 Fri Aug 15 09:00:00 2025 a root
3.指定每天凌晨4:00将该时间点之前的日志信息备份到个目录下(/var/log/messages),备份后日志文件名显示格式logfileYY-MM-DD-HH:MM:SS
(1)编辑系统级 crontab 配置文件
[root@master ~]# vim /etc/crontab
#在其中编写
0 4 * * * root /bin/cp /var/log/messages /var/log/logfile$(date +\%y-\%m-\%d-\%H:\%M:\%S)
(2)保存文件后,重启crond
服务使配置生效:
systemctl restart crond # 重启服务
systemctl enable crond # 确保开机自启(可选)
总结:
atd
和crond
是 Linux 任务调度的利器,分别适用于一次性和周期性场景。通过本文案例,读者可掌握工具的核心用法,实现系统任务自动化,减少重复操作。实际应用中,可根据需求扩展任务类型(如定时压缩文件、发送邮件提醒等),进一步提升运维效率。