CentOS 定时器配置步骤
一 常用方式概览
二 使用 cron 配置步骤
yum install -y crontabs;然后启用并启动:systemctl enable --now crond;检查状态:systemctl status crond。crontab -ecrontab -u <用户名> -e/etc/crontab(注意此文件格式比用户级多一个“用户”字段)。* * * * * command;字段依次为:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-6,0和7均为周日)。常用符号:* 任意、- 区间、, 列表、/n 步长。系统级 /etc/crontab 还多一个“user-name”字段。crontab -l(查看)、crontab -r(删除当前用户任务)、crontab -u <用户> -l/-e/-r(管理指定用户任务)。/etc/cron.allow 与 /etc/cron.deny 控制可用用户,且 allow 优先于 deny。/etc/crontab 设置 MAILTO);如不希望收信,可在行尾追加:> /dev/null 2>&1。0 2 * * * /opt/scripts/backup.sh*/5 * * * * /usr/local/bin/healthcheck.sh*/30 9-18 * * 1-5 /usr/bin/run-report.sh/etc/crontab 中显式设置 PATH/SHELL,避免环境变量差异导致执行失败。三 使用 systemd timer 配置步骤
/etc/systemd/system/mytask.service[Unit]
Description=My Scheduled Task
[Service]
Type=oneshot
ExecStart=/usr/bin/echo "Hello, World!"
/etc/systemd/system/mytask.timer[Unit]
Description=Run My Scheduled Task every hour
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl daemon-reloadsystemctl enable --now mytask.timersystemctl list-timers --allsystemctl status mytask.timersystemctl stop|disable mytask.timerOnCalendar=*-*-* 02:00:00。四 选型与常见问题
chmod +x;在 crontab 中使用绝对路径或在 /etc/crontab 设置 PATH/SHELL;必要时在脚本首行声明解释器(如 #!/usr/bin/python3)。/dev/null 2>&1。/etc/cron.allow 与 /etc/cron.deny。systemctl daemon-reload 并确认定时器已启用。