CentOS 定时器常见应用场景
一 核心组件与适用范围
二 典型业务场景
三 快速上手示例
示例1(Cron):每天02:00备份数据库,并避免并发与密码明文
0 2 * * * /usr/bin/mysqldump -u backup -p'${MYSQL_PWD}' mydb > /backup/mydb_$(date +\%F).sql 2>>/var/log/backup.err
建议将凭据放入**~/.my.cnf**或环境变量,避免在 crontab 中直接写密码。
示例2(Systemd 定时器):每小时执行一次报表脚本(更便于依赖与日志管理)
# /etc/systemd/system/report-hourly.service
[Unit]
Description=Hourly report generator
[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /opt/scripts/gen_report.py
User=report
StandardOutput=journal
StandardError=journal
# /etc/systemd/system/report-hourly.timer
[Unit]
Description=Run report every hour
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
启用:systemctl daemon-reload && systemctl enable --now report-hourly.timer
示例3(at 一次性任务):今晚23:00执行目录备份
echo "/usr/bin/rsync -a /data/ /backup/data_$(date +\%F)/" | at 23:00
atq # 查看待执行任务
atrm 3 # 删除编号为3的任务
四 实践建议