# 编辑当前用户的crontab
crontab -e
# 查看当前用户的crontab
crontab -l
# 删除当前用户的crontab
crontab -r
# 格式:分 时 日 月 周 命令
# 每天凌晨3点执行备份脚本
0 3 * * * /path/to/backup.sh >> /var/log/backup.log 2>&1
# 每5分钟检查一次服务状态
*/5 * * * * /path/to/check_service.sh
crontab -u username -e
)备份服务示例 (backup.service)
[Unit]
Description=Database Backup Service
[Service]
Type=simple
ExecStart=/usr/local/bin/backup.sh
Environment="BACKUP_DIR=/var/backups"
定时器示例 (backup.timer)
[Unit]
Description=Run backup daily at 2:30AM
[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
[Install]
WantedBy=timers.target
# 启用并启动定时器
sudo systemctl enable --now backup.timer
# 查看所有活跃的定时器
systemctl list-timers --all
# 检查定时器状态
systemctl status backup.timer
# 手动触发服务(不等待定时器)
systemctl start backup.service
Persistent=true
确保错过的任务会在下次启动时执行RandomizedDelaySec
避免同时执行AccuracySec
和WakeSystem
控制执行精度After=
和Requires=
管理任务依赖MemoryLimit=
等限制资源使用# 在systemd timer中调用crontab管理的脚本
ExecStart=/usr/bin/crontab /path/to/special.crontab
# 在.service文件中添加自动重试
[Service]
Restart=on-failure
RestartSec=60s
# 工作日每天9点到17点每小时执行
OnCalendar=Mon..Fri 9-17:00:00
# 每月1号午夜执行
OnCalendar=*-*-01 00:00:00
# 每15分钟执行
OnCalendar=*:0/15
# Crontab日志通常位于
/var/log/cron 或 /var/log/syslog
# Systemd日志使用journalctl
journalctl -u backup.service -u backup.timer --since "1 hour ago"
Nice=
和CPUSchedulingPriority=
调整任务优先级通过合理选择和使用这两种工具,可以构建出健壮、可维护的Linux定时任务管理系统。