Ubuntu中3种定时任务

cron # 最常用,周期性执行任务

systemd timer # 更现代,适合服务级定时任务

at # 只执行一次的定时任务

1. cron:周期性定时任务

cron 是一套定时任务系统。

你看到这些都属于 cron

复制代码
复制代码
crontab -e
crontab -l
sudo crontab -e
/etc/crontab
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/

典型写法:

复制代码
复制代码
* * * * * /bin/bash /usr/local/scripts/test.sh

例如:

复制代码
复制代码
0 2 * * * /bin/bash /usr/local/scripts/backup.sh

意思是:每天凌晨 2 点执行 backup.sh

所以这种格式:

复制代码
复制代码
分 时 日 月 周 命令

就是 cron 格式


2. systemd timer:systemd 的定时任务

systemd timer 是 systemd 提供的定时器机制。

它不是写在 crontab -e 里,而是写两个文件:

复制代码
复制代码
xxx.service
xxx.timer

例如:

复制代码
复制代码
/etc/systemd/system/backup.service
/etc/systemd/system/backup.timer

backup.service:定义要执行什么任务。

复制代码
复制代码
[Unit]
Description=Backup job

[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/scripts/backup.sh

backup.timer:定义什么时候执行。

复制代码
复制代码
[Unit]
Description=Run backup every day

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

启动 timer:

复制代码
复制代码
sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer

查看 timer:

复制代码
复制代码
systemctl list-timers

所以看到这些命令,一般就是 systemd timer

复制代码
复制代码
systemctl list-timers
systemctl status xxx.timer
systemctl enable --now xxx.timer

3. at:一次性定时任务

at 只执行一次,不是周期性。

例如:

复制代码
复制代码
echo "touch /tmp/test.txt" | at now + 10 minutes

意思是:10 分钟后执行一次

查看一次性任务:

复制代码
复制代码
atq

删除一次性任务:

复制代码
复制代码
atrm 任务编号

分类表

类型 用途 配置位置 / 命令 是否周期执行
cron 最常用的周期任务 crontab -e/etc/crontab/etc/cron.daily/
systemd timer 服务级定时任务 xxx.service + xxx.timer 是,也可以一次
at 一次性任务 atatqatrm 否,只执行一次

最简单理解

复制代码
复制代码
cron = 写一行时间表达式,周期执行命令
systemd timer = 写 service + timer 两个配置文件,交给 systemd 管理
at = 指定未来某个时间,只执行一次

你刚开始学 Ubuntu 定时任务,重点掌握这个就行:

复制代码
复制代码
crontab -e

然后写:

复制代码
复制代码
0 2 * * * /bin/bash /usr/local/scripts/backup.sh >> /var/log/backup.log 2>&1

这个就是典型的 cron 定时任务

相关推荐
雨晨源码(同名B站)22 分钟前
基于深度学习YoloV11农业病害虫害检测系统 智慧农业信息化综合管理平台 (附源码+lw文档+ppt)
数据库·人工智能·深度学习·yolo·信息可视化
DBA小马哥1 小时前
向量数据库入门到进阶:Embedding、ANN算法与RAG落地的关键术语
数据库·算法·embedding
云和数据.ChenGuang1 小时前
fastapi项目拆分实战数据模型
java·服务器·数据库·人工智能·深度学习·fastapi·强化学习
祈禾1 小时前
Redis三大特殊数据类型
运维·服务器·数据库·redis·笔记·缓存
东方护航数据恢复(深圳)2 小时前
MySQL_Oracle数据库崩溃修复全攻略_东方护航数据恢复深圳店
数据库·mysql·oracle
y = xⁿ2 小时前
一文掌握Redis常见八股
数据库·redis·缓存
mgaofeid2 小时前
Ubuntu 24.04 中文输入法安装
linux·运维·ubuntu
Cloud云卷云舒2 小时前
HaishanDB(海山)|磐维数据库|YashanDB(崖山)深度对比分析
数据库·人工智能·海山数据库·haishandb·移动云海山数据库
weixin_460443562 小时前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
xywww1682 小时前
真实后台页实测:Opus 5 看图写前端的可用边界在哪
linux·服务器·前端·数据库·人工智能·gpt