【博客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 &
相关推荐
百***06015 分钟前
Linux下PostgreSQL-12.0安装部署详细步骤
linux·运维·postgresql
c++逐梦人7 分钟前
Linux下编写进度条小程序
linux·运维·小程序
企鹅侠客11 分钟前
Kubernetes-node资源预留
云原生·容器·kubernetes
求知若渴,虚心若愚。23 分钟前
traefik 启用并指定根证书*.cer
linux·运维·服务器
n***27191 小时前
SQL Server 中行转列
运维·服务器
q***82911 小时前
Nginx中$http_host、$host、$proxy_host的区别
运维·nginx·http
Claudedy1 小时前
Linux 网络代理指南:解决下载慢、访问受限的开发痛点
linux·运维·网络·代理·proxy代理
q***14641 小时前
RustDesk搭建公网中继服务器远控内网机器(完整版)
运维·服务器
zhaqonianzhu1 小时前
【保姆级】无外网 Linux 服务器用 VSCode 通义灵码:SSH 代理配置全流程
linux·服务器·vscode
Murphy_lx1 小时前
C++ 条件变量
linux·开发语言·c++