在 CentOS 系统中,crontab 默认的最小时间单位是分钟,无法直接实现秒级定时。但是,你可以使用以下两种方法来实现秒级定时任务:
方法一:使用 systemd 定时器
- 创建一个 systemd 服务文件。例如,创建一个名为
my-secondly-task.service的文件,内容如下:
[Unit]
Description=My secondly task
[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh
将 /path/to/your/script.sh 替换为你要执行的脚本的实际路径。
- 创建一个 systemd 定时器文件。例如,创建一个名为
my-secondly-task.timer的文件,内容如下:
[Unit]
Description=Run my secondly task every second
[Timer]
OnBootSec=5s
OnUnitActiveSec=1s
Unit=my-secondly-task.service
[Install]
WantedBy=timers.target
这个定时器文件表示在系统启动后的 5 秒开始执行任务,并且每 1 秒执行一次。
-
将这两个文件保存到
/etc/systemd/system/目录下。 -
重新加载 systemd 配置:
sudo systemctl daemon-reload
- 启用并启动定时器:
sudo systemctl enable --now my-secondly-task.timer
- 查看定时器状态:
sudo systemctl list-timers --all
方法二:使用 sleep 命令
- 创建一个 shell 脚本,例如
my-secondly-task.sh,内容如下:
#!/bin/bash
while true; do
/path/to/your/script.sh
sleep 1
done
将 /path/to/your/script.sh 替换为你要执行的脚本的实际路径。
- 为脚本添加可执行权限:
chmod +x my-secondly-task.sh
- 在后台运行脚本:
./my-secondly-task.sh &
这样,你的脚本将每秒执行一次。请注意,这种方法可能在系统重启后失效。为了在系统启动时自动运行此脚本,你可以将其添加到 /etc/rc.local 文件中(如果存在),或者创建一个 systemd 服务来实现。
总之,虽然 crontab 无法直接实现秒级定时,但通过使用 systemd 定时器或 sleep 命令,你仍然可以实现秒级定时任务。
以上就是关于“centos crontab如何实现秒级定时”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm