一、配置定时器执行任务
1、创建一个脚本来执行任务
vim /data/gxpt/script/test.sh
bash
#!/bin/bash
# 定义要创建的目录
DIRECTORY="/usr/local/src/wanghui"
# 检查目录是否已经存在
if [ -d "$DIRECTORY" ]; then
echo "目录 $DIRECTORY 已经存在."
else
# 创建目录
mkdir -p "$DIRECTORY"
# 检查是否创建成功
if [ -d "$DIRECTORY" ]; then
echo "目录 $DIRECTORY 已成功创建."
else
echo "目录 $DIRECTORY 创建失败."
fi
fi
2、赋予脚本执行权限
chmod +x /data/gxpt/script/test.sh
3、创建一个 systemd 服务单元文件
vim /etc/systemd/system/dccp-natural-resources.service
bash
[Unit]
Description=胡海洋,自然资源解析入doris
[Service]
Type=oneshot
ExecStart=/data/gxpt/script/test.sh
4、创建一个 systemd 定时器单元文件
vim /etc/systemd/system/dccp-natural-resources.timer
bash
[Unit]
Description=每天凌晨,胡海洋自然资源入doris
[Timer]
OnCalendar=*-*-* *:*:0/5 #每隔5秒执行一次
Persistent=true
Unit=dccp-natural-resources.service #被调度的服务
[Install]
WantedBy=timers.target
5、重载 systemd 配置,以使其识别新创建的单元文件
sudo systemctl daemon-reload
6、启动定时器
sudo systemctl start dccp-natural-resources.timer
7、关闭定时器
sudo systemctl stop dccp-natural-resources.timer
8、检查定时器状态
sudo systemctl list-timers dccp-natural-resources.timer
查看定时器日志 journalctl -u dccp-natural-resources.timer
9、配置定时器在系统启动时自动启动
sudo systemctl enable dccp-natural-resources.timer
二、排查定时器or任务启动失败
查看定时器状态,确定定时器本身是否正常启动
sudo systemctl status dccp-natural-resources.timer
bash
[root@shujgxptxnkyzzx_toqk script]# sudo systemctl status dccp-natural-resources.timer
● dccp-natural-resources.timer - 每天凌晨,胡*洋自然资源入doris
Loaded: loaded (/etc/systemd/system/dccp-natural-resources.timer; disabled; vendor preset: disabled)
Active: inactive (dead)
Jan 23 10:31:42 shujgxptxnkyzzx_toqk systemd[1]: Refusing to start, unit to trigger not loaded.
Jan 23 10:31:42 shujgxptxnkyzzx_toqk systemd[1]: Failed to start 每天凌晨,胡*洋自然资源入doris.
上述信息中的 Active: inactive (dead) 说明定时器本身没有启动起来,需检查定时器配置 !!!
查看服务状态
sudo systemctl status dccp-natural-resources.service -l
bash
[root@shujgxptxnkyzzx_toqk script]# systemctl status dccp-natural-resources.service -l
● dccp-natural-resources.service - 胡*洋,自然资源解析入doris
Loaded: loaded (/etc/systemd/system/dccp-natural-resources.service; static; vendor preset: disabled)
Active: activating (start) since Fri 2026-01-23 14:17:10 CST; 19ms ago
Main PID: 12610 ((date))
CGroup: /system.slice/dccp-natural-resources.service
Jan 23 14:17:10 shujgxptxnkyzzx_toqk systemd[1]: Starting 胡*洋,自然资源解析入doris...
查看服务单元日志 🍁 🍁 🍁
journalctl -u dccp-natural-resources.service -b
bash
[root@shujgxptxnkyzzx_toqk script]# journalctl -u dccp-natural-resources.service -b
-- Logs begin at Thu 2024-12-19 09:47:37 CST, end at Fri 2026-01-23 10:46:14 CST. --
Jan 23 10:31:42 shujgxptxnkyzzx_toqk systemd[1]: [/etc/systemd/system/dccp-natural-resources.service:5] Executable path is not absolute, ignoring: date > /data/gxpt/script/test.log
Jan 23 10:31:42 shujgxptxnkyzzx_toqk systemd[1]: dccp-natural-resources.service lacks both ExecStart= and ExecStop= setting. Refusing.
上述信息中的 Executable path is not absolute, ignoring: date,说明需将date命令换成/usr/bin/data,即使用全路径名。
查看服务单元日志(重点查看最后20条) 🍁 🍁 🍁
journalctl -u dccp-natural-resources.service --since "5 min ago" | tail -n 20
bash
[root@shujgxptxnkyzzx_toqk script]# journalctl -u dccp-natural-resources.service --since "5 min ago" | tail -n 20
Jan 23 14:27:21 shujgxptxnkyzzx_toqk systemd[1]: start request repeated too quickly for dccp-natural-resources.service
Jan 23 14:27:21 shujgxptxnkyzzx_toqk systemd[1]: Failed to start 胡海洋,自然资源解析入doris.
Jan 23 14:27:21 shujgxptxnkyzzx_toqk systemd[1]: dccp-natural-resources.service failed.
Jan 23 14:27:22 shujgxptxnkyzzx_toqk systemd[1]: Starting 胡海洋,自然资源解析入doris...
Jan 23 14:27:22 shujgxptxnkyzzx_toqk systemd[1]: dccp-natural-resources.service: main process exited, code=exited, status=1/FAILURE
Jan 23 14:27:22 shujgxptxnkyzzx_toqk date[14043]: /usr/bin/date: extra operand '/data/gxpt/script/test.log'
Jan 23 14:27:22 shujgxptxnkyzzx_toqk date[14043]: Try '/usr/bin/date --help' for more information.
Jan 23 14:27:22 shujgxptxnkyzzx_toqk systemd[1]: Failed to start 胡海洋,自然资源解析入doris.
Jan 23 14:27:22 shujgxptxnkyzzx_toqk systemd[1]: Unit dccp-natural-resources.service entered failed state.
Jan 23 14:27:22 shujgxptxnkyzzx_toqk systemd[1]: dccp-natural-resources.service failed.
这里的问题是,dccp-natural-resources.service 服务在短时间内启动失败次数过多,触发了 systemd 的启动频率限制机制。常见的失败原因包括:
1、服务配置错误:脚本路径、依赖项或权限问题导致服务无法正常启动;
2、资源冲突:端口占用或文件锁冲突;
3、启动频率限制:默认策略为 10秒内最多尝试5次启动(StartLimitIntervalSec=10s + StartLimitBurst=5)
重置失败计数器
sudo systemctl reset-failed dccp-natural-resources.service
重启服务,确保服务可以正常启动
sudo systemctl start dccp-natural-resources.service