【博客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 &
相关推荐
翼龙云_cloud10 分钟前
阿里云渠道商:轻量服务器远程协作性能优化指南
运维·服务器·阿里云·性能优化·云计算
菜鸡的升级之路14 分钟前
服务器卡死排查流程
运维·服务器
恒创科技HK16 分钟前
租用日本服务器价格便宜的原因
运维·服务器
FreeBuf_19 分钟前
新型PCPcat恶意软件利用React2Shell漏洞48小时内入侵超5.9万台服务器
运维·服务器
会飞的小蛮猪1 小时前
K8s-1.29.2二进制安装-第二章(K8s及ETCD下载及安装)
云原生·容器·kubernetes·etcd
AI浩7 小时前
【Labelme数据操作】LabelMe标注批量复制工具 - 完整教程
运维·服务器·前端
石像鬼₧魂石8 小时前
如何配置Fail2Ban的Jail?
linux·学习·ubuntu
sunxunyong8 小时前
doris运维命令
java·运维·数据库
Guheyunyi8 小时前
智慧消防管理系统如何重塑安全未来
大数据·运维·服务器·人工智能·安全
古城小栈8 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang