在 CentOS 上“定时跑 extract(解压/抽取任务)”通常有几种常见方式,取决于你说的 extract 是什么:
一、如果 extract 是一个脚本/命令(最常见)
比如你有一个解压脚本 /opt/extract.sh
1️⃣ 使用 cron(最常用)
编辑定时任务
crontab -e
示例:每天凌晨 2 点执行
0 2 * * * /bin/bash /opt/extract.sh >> /var/log/extract.log 2>&1
常见时间格式
分 时 日 月 周
示例:
- 每 30 分钟
*/30 * * * * /opt/extract.sh
- 每周一 3 点
0 3 * * 1 /opt/extract.sh
查看任务
crontab -l
⚠️ 注意:
- cron 环境没有 PATH,命令最好写绝对路径
- 脚本要有执行权限
chmod +x /opt/extract.sh
二、如果 extract 是 tar / unzip 命令
例如定时解压文件:
0 1 * * * /bin/tar -xzf /data/a.tar.gz -C /data/extract/
或
0 1 * * * /usr/bin/unzip -o /data/a.zip -d /data/extract/
三、CentOS 7+ 使用 systemd timer(更现代)
1️⃣ 创建 service
vi /etc/systemd/system/extract.service
[Unit]
Description=Extract Job
[Service]
Type=oneshot
ExecStart=/opt/extract.sh
2️⃣ 创建 timer
vi /etc/systemd/system/extract.timer
[Unit]
Description=Run extract daily
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
3️⃣ 启用
systemctl daemon-reexec
systemctl enable extract.timer
systemctl start extract.timer
查看状态:
systemctl list-timers
四、如果你指的是“日志 extract / 数据抽取”
例如:
- log extract
- ETL extract
- 数据库抽取
请补充:
- extract 是 脚本 / 程序 / 命令
- 用什么语言(shell / python / java)
- CentOS 版本(6 / 7 / 8)
我可以直接帮你写完整定时方案 ✅