【博客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 &
相关推荐
萌萌哒草头将军6 小时前
绿联云 NAS 安装 AudioDock 详细教程
前端·docker·容器
haimin03717 小时前
linux设置CPU固定频率
linux·运维·服务器
大聪明-PLUS7 小时前
Linux:处理器释放内存
linux·嵌入式·arm·smarc
一条咸鱼¥¥¥7 小时前
【运维经验】服务器磁盘做镜像的方法
运维·服务器·windows·经验分享
apocelipes7 小时前
docker-compose 部署单节点 kafka 4.0 测试环境
docker·golang·kafka·开发工具和环境
渣渣盟7 小时前
NFS服务器配置全攻略:从入门到精通
linux·运维·服务器
一只旭宝7 小时前
Linux专题九:I/O复用(水平以及边缘触发放到libevent库那一专题细讲)
linux·运维·服务器
缘如风8 小时前
Linux上sunrpc 111端口关闭
linux·服务器
I · T · LUCKYBOOM8 小时前
iptables防火墙
linux·运维·服务器·网络·安全
山上三树9 小时前
main()函数带参数的用法
linux·c语言