【博客702】shell flock实现单例模式执行任务

shell flock实现单例模式执行任务

场景

我们需要定时执行一个任务,并且保证每次执行时都需要上一次已经执行完了,即保证同一时间只有一个在运行

示例

假设需要执行的脚本是:ping_and_mtr.sh

创建一个新的脚本来运行你的逻辑脚本:touch /root/run_ping_and_mtr.sh

run_ping_and_mtr.sh:

复制代码
#!/bin/bash

# 为 ping_and_mtr.sh 创建一个锁文件
lock_file="/root/ping_and_mtr.lock"

while true
do
   # 使用 flock 确保在同一时间只有一个脚本实例在运行
   flock -n $lock_file -c "/root/ping_and_mtr.sh"

   # 每 10 秒运行一次脚本
   sleep 10
done

设置后台一直运行:

复制代码
赋予执行权限:chmod +x /root/run_ping_and_mtr.sh
后台一直运行:nohup /root/run_ping_and_mtr.sh &
相关推荐
晚晶2 分钟前
【Linux】opencv4.9.0静态库编译,开启opencl和EIGEN矩阵运算
linux·c++·opencv·矩阵·opencl
没有名字的鬼4 分钟前
Linux 下的静态库和动态库(C语言)
linux·c语言
ayaya_mana5 分钟前
从零开始部署求生之路2 (L4D2) 专属服务器,Linux端SteamCMD详细部署过程
linux·服务器·l4d2·求生之路2
wusam8 分钟前
计算机网络传输层应用层综合实验5:DHCP服务
linux·服务器·计算机网络·应用层服务
hnlq9 分钟前
高性能异步io机制io_uring(二) ——io_uring的简单实现
linux·服务器·网络
wusam9 分钟前
计算机网络传输层应用层综合实验7:Web网站架设
运维·服务器·计算机网络·应用层服务
tianyuanwo9 分钟前
服务器操作系统SBOM实践:基于RPM生态的大规模组件透明化管理
运维·服务器·rpm·sbom
飞舞花下12 分钟前
通过本地虚拟机K8S部署项目实践
云原生·容器·kubernetes
不会书17 分钟前
Linux字符设备驱动的演进:从传统框架到现代实践
linux·运维·服务器·c语言·驱动开发
ChrisitineTX20 分钟前
K8s 环境下的 Java 诡异停顿:CPU 没满,为什么 Pod 被 CFS Quota 限制得动弹不得?
java·容器·kubernetes