cron用于周期性任务,at用于一次性任务。例如:0 2 * /backup.sh每天凌晨2点备份;echo “shutdown” | at 11:00 PM设置晚上11点关机。使用crontab -e编辑、atq查看、atrm删除任务,注意使用绝对路径、重定向输出并确保atd服务运行。

在Linux中,cron 和 at 是两个常用的定时任务工具,它们用途不同但互补。cron 用于周期性执行任务,比如每天、每小时或每周运行一次;而 at 用于只执行一次的延时任务,比如几分钟后或某个特定时间运行命令。
使用 cron 定期执行任务
cron 服务允许你按固定时间间隔自动运行脚本或命令。配置通过 crontab 文件完成。
常用操作:
crontab -e:编辑当前用户的定时任务crontab -l:列出当前用户的定时任务crontab -r:删除当前用户的所有定时任务
cron 表达式格式为:
分钟 小时 日 月 星期 命令
例如:
0 2 * * * /backup.sh — 每天凌晨2点执行备份脚本30 8 * * 1-5 /check.log — 工作日早上8:30检查日志*/10 * * * * /monitor.sh — 每10分钟运行一次监控脚本
系统级的 cron 任务可写入 /etc/crontab 或 /etc/cron.d/ 目录下的文件,这些文件支持指定执行用户。
使用 at 执行一次性任务
at 适合在将来某个时间点执行一次命令,比如重启服务或发送提醒。
AppMall应用商店
AI应用商店,提供即时交付、按需付费的人工智能应用服务
56 查看详情
基本用法:
echo “systemctl restart nginx” | at now + 5 minutes — 5分钟后重启 Nginxecho “/clean_tmp.sh” | at 2:30 AM tomorrow — 明天凌晨2:30清理临时文件echo “shutdown -h now” | at 11:00 PM — 晚上11点关机
查看待执行任务:
atq
删除某个任务(假设任务编号为 3):
atrm 3
注意:at 服务需要运行 atd 守护进程,某些系统默认未启用,可用 systemctl start atd 启动。
实用建议与注意事项
编写定时任务时,注意以下几点避免常见问题:
使用绝对路径调用命令和脚本,避免因 PATH 不同导致失败将输出重定向到文件,便于排查错误,如:/script.sh > /tmp/log.txt 2>&1在脚本开头指定解释器,如 #!/bin/bash测试命令是否能在终端直接运行成功非 root 用户需有权限执行相关操作,必要时配置 sudo 免密
基本上就这些。cron 和 at 能覆盖大多数定时需求,掌握它们可以大幅提升运维效率。关键在于理解时间表达方式并养成良好的调试习惯。
以上就是如何在Linux中使用cron和at定时任务?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/421978.html
微信扫一扫
支付宝扫一扫