CentOS系统中创建定时器

一、配置定时器执行任务

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

确保定时器不要过于频繁的启动

相关推荐
亚空间仓鼠7 分钟前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...1 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家1 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun341 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
三思守心1 小时前
从 0 到 1 搭建自动化内容工厂:深度测评楼兰AI及其在全平台发帖中的表现
运维·服务器·自动化
草莓熊Lotso1 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu2 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
ZKNOW甄知科技2 小时前
数智同行:甄知科技2026年Q1季度回顾
运维·服务器·人工智能·科技·程序人生·安全·自动化
-SGlow-2 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
jikemaoshiyanshi2 小时前
B2B企业GEO服务商哪家好?深度解析径硕科技(JINGdigital)及其JINGEO产品为何是首选
大数据·运维·人工智能·科技