【博客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 &
相关推荐
laimaxgg27 分钟前
网络传输层TCP协议
linux·运维·网络·网络协议·tcp/ip
真正的醒悟29 分钟前
负载均衡技术【内网去外网运营商出口负载均衡】
运维·负载均衡
会飞的爱迪生32 分钟前
nginx反向代理和负载均衡的区别
运维·nginx·负载均衡
cpych35 分钟前
linux centos挂载未分配的磁盘空间
linux·运维·服务器
LSZXZNJ36 分钟前
负载均衡概述
运维·负载均衡
三雷科技1 小时前
docker代理设置
运维·docker·容器
明明跟你说过1 小时前
基于Jenkins + Ansible 构建CD持续部署流水线的详细指南
运维·ci/cd·ansible·jenkins
是阿建吖!2 小时前
【Linux】线程池
android·linux·c语言·c++
MasterNeverDown2 小时前
spring boot Linux dockerfile与Windows dockerfile区别
linux·windows·spring boot
猫咪-95272 小时前
cat命令详解
linux·指令