iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >防止shell脚本重复执行的代码
  • 636
分享到

防止shell脚本重复执行的代码

脚本代码shell 2022-06-04 21:06:05 636人浏览 泡泡鱼
摘要

例如,要求脚本只能顺序访问某个资源,例如磁盘文件等,就可以参考下面的实现。 #!/bin/bash## file locking using bash.# ver 0.1.6## author : mal

例如,要求脚本只能顺序访问某个资源,例如磁盘文件等,就可以参考下面的实现。


#!/bin/bash
#
# file locking using bash.
# ver 0.1.6
#
# author : malundao ( malundao@sina.com )
# date : 2011-08-31
# ref : Http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2005-09/0472.html
#
# note:
# shflock_cleanhook() is a user defined function to clean up user-specific sth.
#
# /path/to/lock/. note; directory, not a file.
# should be modified
LOCKPATH="/tmp"
cleanup() {
shflock_cleanhook
cd $LOCKPATH
[ -e lock.pid ] || exit
read pid >/dev/null 2>&1 <lock.pid
if [ -n "$pid" ]; then
if [ "$pid" == "$$" ]; then
rm -f lock.$pid
rm -f lock.pid
exit
fi
fi
exit
}
# trap EXIT ?
trap 'cleanup' HUP INT TERM
getlock() {
oldpath=`pwd`
cd $LOCKPATH
while
echo $$ > lock.$$
[ -e lock.pid ]
do
rm lock.$$
read pid >/dev/null 2>&1 <lock.pid
if [ -n "$pid" ]; then
if [ -e /proc/$pid ]; then
cd $oldpath
return 1 # Lock is taken by others
else
#unsafe: rm -f lock.$pid
echo WARN: please delete stale lock.pid by HAND.
return 2
fi
else
# sleep some seconds,then back to 'while' loop
# 11 is a prime number, $$ as a random.
echo sleep $(( $$ % 11 ))
sleep $(( $$ % 11 ))
fi
done
# 'ln -s' is an atom op.
ln -s lock.$$ lock.pid >/dev/null 2>&1
if [ $? -eq 0 ]; then
cd $oldpath
return 0 # We Got the lock
else
[ -e lock.pid ] || echo WARN: please delete hanging lock.pid by HAND.
cd $oldpath
return 3 # Lock is probably taken by others.
fi
}
putlock () {
oldpath=`pwd`
cd $LOCKPATH && rm -f lock.$$ lock.pid
cd $oldpath
}
## test
shflock_cleanhook() {
echo i'm a hook.
}
while true; do
while ! getlock; do
#echo wait a second...
sleep 1
done
echo [$$] `date` ,now hold lock for 3 seconds...
sleep 3
#echo putlock
putlock
sleep 1 # yield
done

防止脚本多次执行(一)

while [ `ps x |grep -v grep|grep filename.sh|wc -l` -gt 0 ];
do
exit
done

把内容放在脚本最上面

filename.sh 替换为你要监控的脚本名字
还有一种方法是 死循环 可以根据不同的环境,不同的脚本内容,使用的方法也同步,方法很简单日后在写出来

--结束END--

本文标题: 防止shell脚本重复执行的代码

本文链接: https://www.lsjlt.com/news/18141.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本如何防止重复执行
    shell脚本如何防止重复执行,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:#!/bin/bash## file locking using bash...
    99+
    2023-06-09
  • Shell脚本中怎么避免重复执行
    这篇文章给大家介绍Shell脚本中怎么避免重复执行,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:# 检查通过sh命令执行的shell脚本是不是还在执行当中,避免重复执行. # 把这段代码放在需要保证唯一性的程...
    99+
    2023-06-09
  • Shell 脚本中重复执行如何解决
    Shell 脚本中重复执行如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。简介flock 是文件锁命令,它可以保证Linux系统上进程之间安全的访问临界资源,在shell...
    99+
    2023-06-15
  • 如何防止网页脚本病毒执行
    这篇文章主要讲解了“如何防止网页脚本病毒执行”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何防止网页脚本病毒执行”吧!不知你遇到过这种事情没有?上网正在兴头上时,突然IE窗口不停地打开,最...
    99+
    2023-06-08
  • java定时任务怎么防止重复执行
    在Java中,可以使用定时任务来执行一段代码,但有时候我们希望在任务完成之前不再重复执行。有几种方法可以防止定时任务重复执行:1. ...
    99+
    2023-10-09
    java
  • shell脚本的执行方式有哪些
    今天就跟大家聊聊有关shell脚本的执行方式有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,看下我们的脚本内容[tan@tan scripts]$ ll...
    99+
    2023-06-09
  • shell脚本操作postgresql的代码
    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比...
    99+
    2022-12-09
    shell脚本操作postgresql shell脚本postgresql
  • 通过宝塔面板shell定时执行sh脚本执行php代码与操作数据库
    一、先在宝塔的目录下新建这两个文件  二、test.php文件内自定义你要执行的sql,操作数据库,引用文件的话记得要写绝对路径 ...
    99+
    2023-09-04
    php 数据库 宝塔 计划任务 shell脚本
  • 破解 noscript 标签的代码:定制脚本执行
    1. 确定 noscript 标签的位置 Noscript 标签通常放置在 HTML 文档的 <head> 部分。它通常包含一个禁用脚本执行的 <noscript> 元素。 <noscript> 元素内...
    99+
    2024-04-02
  • java定时任务防止重复执行的方法是什么
    在Java中,可以使用`ScheduledExecutorService`或`Timer`来创建定时任务。如果要防止定时任务重复执行...
    99+
    2023-08-25
    java
  • 停止使用非版本控制的可执行代码
    local_settings这种反模式 它在我的笔记本上运行良好! 但是我不会犯这种错误! 如何处理环境特有变量 https://www.pydanny.com/using-executable-code-outside-versi...
    99+
    2023-01-31
    可执行 停止使用 版本
  • Oracle DBA常用脚本中转换执行shell脚本是怎样的
    今天就跟大家聊聊有关Oracle DBA常用脚本中转换执行shell脚本是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。最近在开始把Oracl...
    99+
    2024-04-02
  • shell脚本批量执行指定路径下sql脚本的实现
    目录1. 场景描述2. 创建sql3. 创建脚本3.1 方式一3.2 方式二1. 场景描述 linux环境下通过shell脚本批量执行指定目录下所有sql语句,用来建表建库,初始化项目sql等。linux shell在线...
    99+
    2023-02-03
    shell批量执行sql脚本 shell批量执行脚本
  • Linux中执行shell脚本的方法有哪些
    本篇内容介绍了“Linux中执行shell脚本的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!bash shell 脚本的方法有多...
    99+
    2023-06-09
  • 如何用shell脚本实现监控shell脚本的执行流程及变量的值
    本篇内容主要讲解“如何用shell脚本实现监控shell脚本的执行流程及变量的值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本实现监控shell脚本的执行流程及变量的值”吧!...
    99+
    2023-06-09
  • Python得到代码执行时间脚本怎么写
    Python得到代码执行时间脚本怎么写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。得到代码执行时间脚本:import timet0 = time.time()...
    99+
    2023-06-04
  • 怎么在JavaScript脚本中执行java后台代码
    怎么在JavaScript脚本中执行java后台代码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用场景:关闭页面弹窗时执行...
    99+
    2024-04-02
  • shell脚本中批量复制及执行命令的示例分析
    这篇文章主要介绍了shell脚本中批量复制及执行命令的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。平时在处理一个或几个机器运行环境时,一个机器一个机器处理也能接受,...
    99+
    2023-06-09
  • 使用 Celery Once 来防止 Celery 重复执行同一个任务
    在使用 Celery 的时候发现有的时候 Celery 会将同一个任务执行两遍,我遇到的情况是相同的任务在不同的 worker 中被分别执行,并且时间只相差几毫秒。这问题我一直以为是...
    99+
    2024-04-02
  • 如何实现防止ARP攻击的shell代码
    小编给大家分享一下如何实现防止ARP攻击的shell代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:#!/bin/bashdeclare gw=`ro...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作