【博客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 &
相关推荐
老前端的功夫20 分钟前
TypeScript 全局类型声明:declare关键字的深度解析与实战
linux·前端·javascript·ubuntu·typescript·前端框架
赵民勇23 分钟前
join命令使用指南与技巧
linux·shell
工业HMI实战笔记1 小时前
【拯救HMI】让老设备重获新生:HMI低成本升级与功能拓展指南
linux·运维·网络·信息可视化·人机交互·交互·ux
代码游侠1 小时前
复习—sqlite基础
linux·网络·数据库·学习·sqlite
hgz07101 小时前
Docker 知识练习题
docker
一颗青果1 小时前
Reactor模型 | OneThreadOneLoop
运维·网络
王凌波1 小时前
Linux 源码阅读环境配置一条龙
linux
❀͜͡傀儡师2 小时前
docker部署PruneMate
运维·docker·容器
k***92162 小时前
Linux救援模式是什么,如何使用
linux·运维·服务器
oMcLin2 小时前
Systemd 深度解析:理解并掌握 Linux 的现代启动系统
linux·运维·服务器