首页/系统/Linux 运维命令速查/定时任务包装脚本模板
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条
定时任务与计划50 条

定时任务包装脚本模板

生产级 cron 任务的推荐骨架:严格模式、锁、日志、退出码与超时;crontab 只留一行调用,团队协作与排错都轻松。

Linux 运维命令速查系统更新于 2026-10-12
用途统一任务脚本的可靠性与可观测性
要素set -euo pipefail / flock / 日志 / timeout

模板

模板
#!/usr/bin/env bash
set -euo pipefail

NAME=app-backup
LOG=/var/log/app/${NAME}.log
LOCK=/var/lock/${NAME}.lock

log() { echo "$(date -Is) [$$] $*" >> "$LOG"; }

# 单实例
if ! flock -n 9; then log "skip: already running"; exit 0; fi

log "start"
if timeout 3600 /opt/app/backup.sh >> "$LOG" 2>&1; then
  log "done rc=0"
else
  rc=$?
  log "fail rc=$rc"
  exit $rc
fi

crontab 引用

crontab 引用
30 2 * * * /opt/scripts/app-backup.sh
搭配日志轮转(logrotate)与失败告警(监控扫 rc≠0),任务才真正可运营。

易错点

  • set -e 与管道需要配合 pipefail,否则管道中段失败不触发退出
  • 脚本内 exit 0 的跳过分支要写日志,否则「到底跑没跑」无从查证

数据来源与参考

  • man 1 bash(set 内建)
  • man 1 timeout
  • man 1 flock

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌