【博客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 &
相关推荐
阿巴阿巴boer3 分钟前
用wsl搭建远程linux服务器
linux·运维·服务器·ssh
starvapour37 分钟前
Ubuntu硬盘的创建分区、格式化与挂载
linux·ubuntu
lisanmengmeng43 分钟前
docker 方式安装部署禅道zentao(五)
运维·docker·容器
小立爱学习43 分钟前
ARM64 指令 --- CASP / CASPA / CASPL / CASPAL
linux·c语言
知识分享小能手1 小时前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 中 Linux C 编程 —语法详解与实战案例(13)
linux·学习·centos
程序员老赵1 小时前
AdguardHome Docker 容器化部署指南
docker·dns
fakerth1 小时前
【OpenHarmony】设计模式模块详解
c++·单例模式·设计模式·openharmony
wanhengidc1 小时前
云手机的硬件依赖性如何?
运维·服务器·智能手机·云计算
piaoroumi2 小时前
UVC调试
linux·运维·前端
VekiSon2 小时前
Linux系统编程——标准IO
linux·运维·服务器