在 Linux 上创建自定义 Cron Job

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

在 Linux 上创建自定义 Cron Job

自动化日常任务对于任何稳健的系统管理或 Web 开发工作流程都至关重要。Cron jobs 是 Unix-like 操作系统中功能强大的基于时间的任务调度器,可让你在预定间隔自动运行脚本或命令。

 什么是 Cron Job?

一个 cron job 是在系统的 crontab(cron 表)中定义的计划任务,它会在指定时间或间隔执行命令或脚本。Cron 被广泛使用,因为它:

  • 轻量级

  • 高度可自定义

  • 内置于大多数 Linux 发行版中

 常见用例

  • 每日或每周的 database backups

  • 运行 PHP/Python scripts

  • Log rotation 和清理临时文件

  • 发送计划邮件

  • 更新数据缓存或同步文件

步骤 1:访问 Crontab

要编辑你的用户 crontab(无需 root 权限):

crontab -e
要编辑 root crontab(需要 sudo):
sudo crontab -e

步骤 2:Cron 语法解析

每个 cron job 都使用以下格式:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

 示例:每天凌晨 2 AM 运行脚本

0 2 * * * /home/user/scripts/backup.sh

步骤 3:创建自定义脚本

假设你想运行一个自定义 Python 脚本。首先,创建文件:

nano /home/user/scripts/cleanup.py

示例脚本:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

使脚本可执行:

chmod +x /home/user/scripts/cleanup.py

 步骤 4:添加 Cron Job

编辑你的 crontab 并添加:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

这会:

  • 每天凌晨 1:00 AM 运行脚本

  • 将输出记录到 /var/log/cleanup.log

 示例用例

✅ 每 10 分钟运行一次

*/10 * * * * /home/user/check_status.sh

✅ 仅在周一凌晨 3 AM 运行

0 3 * * 1 /home/user/scripts/weekly_report.sh

 禁用或移除 Cron Job

通过在行前加上 # 可临时禁用该行。

要移除所有任务:

crontab -r

自定义 cron jobs 是用于自动化、维护和可靠性的强大工具。无论你是在管理个人 VPS、部署后端脚本,还是运行生产工作负载,掌握 cron 都能让你轻松控制任务何时以及如何运行。