【博客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 &
相关推荐
BD_Marathon20 小时前
【Zookeeper】CAP理论——CAP介绍
linux·分布式·zookeeper
wasp52020 小时前
做了技术管理后,我发现技术和管理其实可以兼得
java·运维·网络
云和数据.ChenGuang20 小时前
mysqld.service is not a native service问题解决!
运维·nginx·运维技术·运维工程师技术
赖small强20 小时前
【Linux 网络基础】HTTPS 技术文档
linux·网络·https·tls
写代码的学渣21 小时前
ubuntu 22.04 新装的系统 xshell 连不上
linux·运维·ubuntu
2501_9418059321 小时前
深入解析现代多语言后端架构设计:Python、Java、C++与Go在高性能服务中的实践
运维
F***E23921 小时前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
序属秋秋秋21 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
云边有个稻草人1 天前
手机也能控 Linux?Cpolar+JuiceSSH 搞定内网远程
运维·服务器·cpolar
Altair12311 天前
nginx的https的搭建
运维·网络·nginx·云计算