【博客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 &
相关推荐
阿拉伯柠檬几秒前
MySQL复合查询
linux·数据库·mysql·面试
YongCheng_Liang2 分钟前
数据库核心概念深度解析:从基础原理到 SQL 分类
运维·数据库·sql
不秃头的帅哥7 分钟前
Linux 基础 IO 学习笔记
linux·操作系统·io
宇钶宇夕8 分钟前
CoDeSys入门实战一起学习(六):CoDeSys软件模型核心架构——从分层结构到核心元素
运维·自动化
Web极客码9 分钟前
如何在 WordPress 中设置会员内容:简单两步实现注册用户专属访问
运维·wordpress·网站管理·网站维护
林鸿风采10 分钟前
Alpine Linux 安装指南:轻量、安全、高效的系统部署实践
linux·运维·安全·alpine
wdfk_prog11 分钟前
[Linux]学习笔记系列 -- compiler
linux·笔记·学习
heda312 分钟前
zip在linux上解压出错Unicode编码-解决
linux·运维·python
济61712 分钟前
linux 系统移植(第四期)--Uboot移植(4)--在U-Boot 中添加自己的开发板(3) -网络驱动修改-- Ubuntu20.04
linux·运维·服务器
java_logo19 分钟前
PyTorch Docker 容器化部署与生产运行实践
人工智能·pytorch·docker·pytorch部署·pytorch部署文档·pytorch部署教程·pytorch上部署方案