【博客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 &
相关推荐
桌面运维家1 分钟前
vDisk一键部署怎么应用?自动化脚本使用指南
运维·自动化
倔强的石头1066 分钟前
【Linux指南】基础IO系列(一)Linux 文件本质揭秘 —— 从 “磁盘文件” 到 “一切皆文件”
linux·运维·服务器
robitmind7 分钟前
操作input子系统,用模拟按键输入解锁ubuntu锁屏
linux·运维·ubuntu
Code小翊7 分钟前
re标准库模块一天学完
运维·服务器·网络
2023自学中7 分钟前
imx6ull , 4.3寸800*480屏幕,触摸芯片型号 gt9147,显示触摸点的坐标数据
linux·嵌入式硬件
Warren989 分钟前
Allure 常用装饰器:实战用法 + 最佳实践(接口自动化)
运维·服务器·git·python·单元测试·自动化·pytest
2501_943695339 分钟前
高职大数据运维与管理专业,怎么学习Hadoop的基础操作?
大数据·运维·学习
落羽的落羽9 分钟前
【Linux系统】文件IO:理解文件描述符、重定向、缓冲区
linux·服务器·开发语言·数据结构·c++·人工智能·机器学习
xie_pin_an11 分钟前
Linux 基础入门:从历史到核心指令全解析
linux·运维·服务器
遇见火星11 分钟前
服务器HBA卡与RAID卡:到底有什么区别?
运维·服务器·hba卡·raid卡