【博客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 &
相关推荐
crabdave1234 分钟前
解决helm Doris重启后由于root密码修改导致加入集群不成功的问题
linux·运维·服务器
棠十一17 分钟前
docker 启动elasticsearch 与 kibana
elasticsearch·docker·容器
❀͜͡傀儡师18 分钟前
使用docker 安装Redis 带配置文件(x86和arm)版本
redis·docker·容器
Yana.nice20 分钟前
nsswitch.conf配置文件内容解析
运维·服务器·网络
cuoluoche23 分钟前
【docker n8n】windows环境如何挂载
运维·docker·容器
Jiangnan_Cai23 分钟前
docker 安装 milvus standalone 版本 + attu
数据库·docker·milvus
程序员JerrySUN37 分钟前
深入理解Linux DRM显示子系统:架构、实战项目与关键问题全解析
linux·运维·服务器·面试·职场和发展·架构
木头左41 分钟前
Docker 容器化基础:镜像、容器与仓库的本质解析
docker·容器·eureka
꧁༺朝花夕逝༻꧂42 分钟前
docker详细操作--未完待续
linux·nginx·docker·shell
不穿铠甲的穿山甲44 分钟前
docker 部署redis集群 配置
redis·docker·容器