【博客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 &
相关推荐
OliverH-yishuihan1 分钟前
下载、安装和设置 Linux 工作负载
linux·运维·服务器
wang6021252182 分钟前
OCR服务-本地打包docker+docker下载ssh调试
docker·ssh·ocr
沈健_算法小生2 分钟前
Ubutun22.04离线部署Jenkins最新版
运维·jenkins
wuxingge3 分钟前
docker设置代理,通过代理服务器拉取镜像
docker·容器
MediaTea5 分钟前
思考与练习(第四章 程序组成与输入输出)
java·linux·服务器·前端·javascript
松涛和鸣8 分钟前
35、Linux IPC进阶:信号与System V共享内存
linux·运维·服务器·数据库·算法·list
SZ1701102319 分钟前
K8s 部署所需的配置文件
云原生·容器·kubernetes
惊鸿一博11 分钟前
Linux文件同步/镜像—rsync
linux·运维
守城小轩11 分钟前
基于Chrome140的Quora账号自动化(关键词浏览)——脚本撰写(二)
运维·自动化·chrome devtools·浏览器自动化·浏览器开发
SunnyDays101112 分钟前
Python 实现 PDF 文档压缩:完整指南
linux·开发语言·python