【博客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 &
相关推荐
2501_9418008840 分钟前
Python高性能日志分析与Elasticsearch实战分享:海量日志索引、检索与可视化优化经验
运维·jenkins
hlsd#44 分钟前
我把自己的小米ax3000t换成了OpenWRT
linux·iot
不想画图1 小时前
Linux——web服务介绍和nginx编译安装
linux·nginx
CIANTECH_Heidi1 小时前
精准配置重构光模块成本效能:深圳光特通信1X9、SFP单收/单发光模块
运维·服务器·网络·数据库·光模块
2301_807583231 小时前
ubuntu22.04集群部署clickhouse详细步骤
linux·clickhouse·zookeeper
尹蓝锐2 小时前
Linux解压各种压缩包命令
linux·运维·服务器
叫致寒吧2 小时前
web和Nginx的搭建
运维·nginx
DreamLife☼2 小时前
Docker-CI/CD:集成 GitHub Actions 实现自动化构建与部署
ci/cd·docker·自动化部署·github actions·镜像构建·trivy 扫描·compose 部署
z***I3943 小时前
Docker书籍
运维·docker·容器