Cron Scheduler技能使用说明
2026-03-29
新闻来源:网淘吧
围观:22
电脑广告
手机广告
Cron 计划任务管理器
使用 cron 在您的系统上管理计划任务和自动化。
类别:自动化,生产力需要 API 密钥:否
功能
在您的机器上创建、管理和监控计划任务(cron 任务)。自动化备份、健康检查、清理脚本、API 调用、通知 —— 任何需要按计划运行的任务。您的代理会处理 cron 语法,您无需操心。
代理命令
列出所有 cron 任务
echo "=== User crontab ==="
crontab -l 2>/dev/null || echo "(empty)"
echo ""
echo "=== System cron ==="
ls /etc/cron.d/ 2>/dev/null
echo ""
echo "=== Cron directories ==="
echo "Hourly: $(ls /etc/cron.hourly/ 2>/dev/null | wc -l) jobs"
echo "Daily: $(ls /etc/cron.daily/ 2>/dev/null | wc -l) jobs"
echo "Weekly: $(ls /etc/cron.weekly/ 2>/dev/null | wc -l) jobs"
echo "Monthly: $(ls /etc/cron.monthly/ 2>/dev/null | wc -l) jobs"
添加一个 cron 任务
# Add to user crontab
(crontab -l 2>/dev/null; echo "SCHEDULE COMMAND") | crontab -
# Common schedules:
# Every minute: * * * * *
# Every 5 minutes: */5 * * * *
# Every hour: 0 * * * *
# Every day at 2am: 0 2 * * *
# Every Monday 9am: 0 9 * * 1
# Every 1st of month: 0 0 1 * *
# Weekdays at 8am: 0 8 * * 1-5
删除一个 cron 任务
# Edit crontab interactively
crontab -e
# Or remove a specific line
crontab -l | grep -v "PATTERN_TO_REMOVE" | crontab -
检查 cron 日志
# Recent cron activity
grep CRON /var/log/syslog | tail -20
# Or on systems using journald
journalctl -u cron --since "1 hour ago" --no-pager | tail -20
测试一个 cron 命令
# Run the command manually first to make sure it works
COMMAND_HERE
# Check it produces expected output
echo "Exit code: $?"
Cron 语法参考
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * * command
常见模式
# Disk space alert daily at 8am
0 8 * * * df -h / | awk 'NR==2 && $5+0 > 80 {print "Disk alert: " $5 " used"}' | mail -s "Disk Warning" you@email.com
# Clean /tmp weekly
0 3 * * 0 find /tmp -type f -mtime +7 -delete
# Backup database nightly
0 2 * * * pg_dump mydb > /backups/db_$(date +\%Y\%m\%d).sql
# Restart a service if it crashes (every 5 min check)
*/5 * * * * systemctl is-active myservice || systemctl restart myservice
# Log system stats every 15 minutes
*/15 * * * * echo "$(date): $(uptime)" >> /var/log/system-stats.log
Cron 中的环境变量
# Cron runs with minimal environment. Set what you need:
(crontab -l 2>/dev/null; echo "PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1") | crontab -
重定向输出(重要!)
# Log output
* * * * * command >> /var/log/myjob.log 2>&1
# Discard output
* * * * * command > /dev/null 2>&1
# Email output (if mail is configured)
MAILTO=you@email.com
0 8 * * * command
示例
用户:"每天凌晨2点运行我的备份脚本"
→(crontab -l 2>/dev/null; echo "0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1") | crontab -
用户:"每小时检查磁盘空间,如果超过80%就提醒我" → 创建检查脚本 + cron任务
用户:"有哪些定时任务正在运行?" → 列出所有crontab和系统cron目录
用户:"停止每日清理任务" → 查找并移除特定的cron条目
约束条件
- Cron以最小PATH运行——对命令使用绝对路径
- 始终重定向输出(>> logfile 2>&1),否则cron会填满邮件池
- Cron使用系统时区——用以下命令检查
timedatectl - 最小时间间隔是1分钟——对于小于1分钟的任务,请在脚本中使用循环
- 用户crontab在用户被删除后不会保留
- 在安排任务前,请手动测试命令
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Mixpost技能使用说明
下一篇:feishu-drive技能使用说明


微信扫一扫,打赏作者吧~