首页 > 其他分享 >crontab防止重复执行脚本

crontab防止重复执行脚本

时间:2024-06-06 09:03:32浏览次数:23  
标签:脚本 重复 crontab -- FD 设置 command 执行

在做计划任务的时候,可能由于某些问题,任务没有执行完成,导致任务重复的运行,解决这个问题,只需要一个flock命令就可以了。

参数

-s,--shared:获取一个共享锁,在定向为某文件的FD上设置共享锁而未释放锁的时间内,其他进程试图在定向为此文件的FD上设置独占锁的请求失败,而其他进程试图在定向为此文件的FD上设置共享锁的请求会成功。
-x,-e,--exclusive:获取一个排它锁,或者称为写入锁,为默认项。
-u,--unlock:手动释放锁,一般情况不必须,当FD关闭时,系统会自动解锁,此参数用于脚本命令一部分需要异步执行,一部分可以同步执行的情况。
-n,--nb, --nonblock:非阻塞模式,当获取锁失败时,返回1而不是等待。
-w, --wait, --timeout seconds:设置阻塞超时,当超过设置的秒数时,退出阻塞模式,返回1,并继续执行后面的语句。
-o, --close:表示当执行command前关闭设置锁的FD,以使command的子进程不保持锁。
-c, --command command:在shell中执行其后的语句。

实例,crontab运用flock防止重复执行

0 1 * * * (flock -xn /tmp/test.lock -c "sh /root/test.sh")

标签:脚本,重复,crontab,--,FD,设置,command,执行
From: https://www.cnblogs.com/qcy-blog/p/18234346

相关文章

  • 重复文件怎么查找并清理?电脑重复文件清理工具分享:4个
    在日常使用电脑的过程中,我们不可避免地会遇到各种重复文件的问题。这些重复文件不仅占据了宝贵的存储空间,还可能导致系统性能下降,甚至引发一些不必要的问题。因此,如何有效地查找并清理这些重复文件成为了我们日常使用电脑办公的打工人最关心的问题。出于这种考虑,本文小编经过使......
  • 使用powershell脚本,自动压缩文件夹,实现备份功能
    担心数据丢失?教你3分钟实现自动压缩,备份文件夹。最近在使用obsidian,想要在多台电脑上访问一个同一个仓库,所以我把obsidian-vault设置在了mac-mini的共享文件夹上。但是有一个问题,mac-mini上边的硬盘是我的闲置硬盘,随时都可能挂掉。一、通过脚本自动备份为了避免obsidian......
  • C++PrimerPlus第十一章类的使用 :重写练习七,解决重复造轮子的问题
    在第十一章练习七中,为解决重复造轮子的问题。我们先看一下代码的实现#include"pe11_7.h"#include<iostream>usingnamespacestd;Complex::Complex(doublea,doublebi){ this->a=a; this->bi=bi; SetComplex();}voidComplex::SetComplex(void){ this->co......
  • 使用Shell脚本实现批量执行工具
            能够实现自动化运维的有很多,比如Ansible,Puppet,SaltStack,那么今天给大家分享的是我自己用Shell实现的一个可以批量远程执行的工具,写着玩的,供大家参考学习,欢迎大家多提建议。注意:该脚本使用了expect,所以需要提前安装[root@localhost~]#catremote-group-comm......
  • 算法训练营第九天|28. 实现 strStr()459.重复的子字符串 字符串总结 双指针回顾
    28.实现strStr()1.暴力解法:对主串的每一个字符都作为开头,尝试是否匹配字串,时间复杂度O(m*n)2.确保所有的变量在使用前都被明确地初始化了3.kmp算法之后慢慢理解!!!要记得!!!459.重复的子字符串1.暴力解法:列出所有的子字符串,看是否合法(子字符串开头固定),时间复杂度O(n*n)2.用模......
  • mysql常用脚本
    1.添加一列默认值0ALTERTABLE表名ADDSortint(11)DEFAULT0NULLCOMMENT'排序';2.MySql删除重复数据,保留最早创建的思路:新建一个临时表temp_ID存储upload_file表里的重复Id,upload_file根据temp_ID里的Id删除重复数据,最后删除临时表temp_ID。注:如果新建临时表-......
  • java项目部署脚本
    一、java项目部署脚本示例在Java项目中,部署脚本通常依赖于项目的构建工具(如Maven或Gradle)以及部署环境(如Docker、Tomcat、Kubernetes等)。以下是一个基于Maven和Shell脚本的Java项目部署示例,假设我们正在将应用部署到Linux服务器上的Tomcat容器中。1.前提条件Linux服务器已安......
  • java项目部署脚本
    一、java项目部署脚本示例在Java项目中,部署脚本通常依赖于项目的构建工具(如Maven或Gradle)以及部署环境(如Docker、Tomcat、Kubernetes等)。以下是一个基于Maven和Shell脚本的Java项目部署示例,假设我们正在将应用部署到Linux服务器上的Tomcat容器中。1.前提条件Linux服务器已......
  • MySQL 查找并删除重复行
    本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysqlIRC频道问到的问题)如何查找重复行第一步是定义什么样的行才是重复行。多数情况下很简单:它们某一列具有相同的值。本文采用这一......
  • 初识bat脚本
    什么是bat脚本文件后缀名为.bat或者.cmd。bat脚本,也称为批处理脚本,顾名思义,批处理就是对某对象进行批量的处理。通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统。类似于Unix中的Shell脚本。目前Windows中的批处理包含两类:WindowsDOS(BAT)和PowerShellDOS......