【博客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 &
相关推荐
门思科技10 分钟前
LoRaWAN通信协议详解:架构、加密机制与核心应用
运维·服务器·网络·嵌入式硬件·物联网
炸裂狸花猫20 分钟前
开源CI&CD工具-Drone
ci/cd·云原生·容器·kubernetes·开源·drone
乐维_lwops22 分钟前
2025年运维监控建设重点是什么?
运维·监控系统·it监控
二进制coder28 分钟前
Linux RTC 驱动子系统详细实现方案
linux·运维·实时音视频
淮北49438 分钟前
linux系统学习(10.shell基础)
linux·运维·服务器·学习
视觉震撼1 小时前
RDP登录事件详细溯源分析脚本(兼容Windows PowerShell版本)
运维·网络·windows·网络安全·网络攻击模型·安全威胁分析·安全架构
刘一说1 小时前
Spring Boot 应用的云原生 Docker 化部署实践指南
spring boot·docker·云原生
❀͜͡傀儡师1 小时前
docker部署开源监控软件hertzbeat
docker·容器·开源·hertzbeat
Lolo_fi1 小时前
记录Fedora43上安装向日葵
linux
demonre1 小时前
阿里云 Debian 13.1 安装 docker 并切换阿里云镜像源
后端·docker