使用 Bash 脚本在 Linux 中删除早于 “X” 天的文件/文件夹 今天,我们将向你展示如何在 Linux 上使用 Tmpwatch 程序来实现这一目标。...了解关键选项和参数 atime(文件上次访问时间):显示命令或脚本等任意进程最后一次访问文件中数据的时间。 mtime(文件上次修改时间):显示修改文件内容或保存文件的时间。...这意味着更改文件属性的时间(如所有权或组等)。 dirmtime(目录的上次修改时间):显示目录的上一次修改时间。 时间参数定义删除文件的阈值。...# tmpwatch -am 10 --nodirs /home/daygeek/Downloads 如何在 tmpwatch 中排除特定路径 以下命令将删除过去 10 个小时未被修改的所有文件,除了下面排除的文件夹...该 cronjob 根据位于 /etc/timereaper.conf 中的配置文件工作。你可以根据需要自定义文件。 它每天运行一次,并删除 7 天之前的文件。
# chmod a+x /mnt/dfMonitor.pl 增加执行权限 # 该脚本 使用cron设定为每天夜间检查一次,记录日志 脚本解释:当我们使用df命令时,显示的文件系统使用率会有%符号...脚本中采用了 变量截取的方式获取纯数字的使用率,如:shu2=${shu%%%*}句,变量shu存放的是文件系统的使用率,但是是携带%符号的,所以使用${shu%%%*}将%去除,只保留数字部分(%%表示去除右侧字符...2个小时执行一次 若此脚本不想用cron调用执行,则可在代码中加入while循环和sleep控制循环周期,完整代码如下: #!...,即暂停执行 done 注意:使用while+sleep的脚本,被执行时,会在前台执行,但因为代码中故意设置的死循环,则脚本会持续执行,占据整个前台资源不退出,影响到我们前台的其他操作。...使用cron设定为每天夜间检查一次,记录日志 17.4 僵尸进程监控 案例介绍:查看系统中有无僵尸进程,若有,自动杀死,并做日志记录 脚本思路:抓取僵尸进程,把信息存入临时文档中,逐行读取该文档,获取
x -w 10 200 || exit 1 # 在这里放置脚本的主逻辑部分 ) 200>/var/lock/.myscript.exclusivelock 这样可以确保 ( 和 ) 之间的代码一次只由一个进程运行...此外,对trap的调用将确保锁定文件被删除,即使你的进程被杀死(kill -9除外)。...参考文档: stackoverflow question 185451 https://www.man7.org/linux/man-pages/man1/flock.1.html 如何在Bash中提取文件名和扩展名...相关阅读: Bash中$$ $!...$* $@ 等各种符号的含义 如何使用bash脚本并行运行多个程序 如何从Bash脚本本身中获得其所在的目录 如何在Bash中连接字符串变量 如何编写bash脚本以便在进程死机时重新启动进程
” 创建镜像后如果快速运行镜像,docker run 有很多参数,只有少部分会修改,如果每天创建很多容器,每次都完整输入一次命令就很麻烦,容易出错,这时我们可以写一个 shell 脚本,把会修改的值变成参数...all 使容器内可以调用本地gpu -p $1:5901 建立本地和容器内的端口映射,本地端口 $1 是脚本的第一个参数,可以启动的时候自定义;5901是容器内的端口,作用:在容器内启动服务部署到5901...脚本中 0 表示脚本的文件名称,$1 开始才是我们指定的参数。...,在 mmdetection/demo/MMDet_InstanceSeg_Tutorial.ipynb 的Train a new detector的第一个代码块中 加入:cfg.device='cuda...” tensorflow 官网中,tf1.15 只支持cuda10.0(也就是官方给你编译好的包只有基于cuda10.0的),而较新的显卡(比如 安培系列,A2000 A40等),只支持 cuda 11
2)它还是一个功能强大的编程语言,易编辑,易调试,灵活性强。shell是结核性的脚本语言,在我们 shell中可以直接调用linux系统命令。...shebang 如果脚本文件中没有#!...,root修改后,beifeng也是不能使用的 这两类文件别轻易修改 2)位置变量 获取脚本文件时所传入的参数,将传入的参数保存在位置变量中,以便于在脚本中可以使用这些变量。...18 17:03:30" # date "+%Y%m%d" 七天前 # date -d '7 day ago' '+%Y%m%d%H%M' 2、at命令:定时计划任务 在特定的时间执行一次后结束...每天凌晨1点到6点 0 1-6 * * * ***** 每小时的第5分钟执行一次 5 * * * * ***** 每月8号的7:30分执行 30 7 8 * * ***** 每年的6月8
如何在 Pipeline 中实践? DevOps成熟度标准中建议做到一次构建,多次部署。目的是为了在测试环境测过的包可以在不改变任何环境和依赖的情况下发布到生产线上。...某些特定场景下,如每天凌晨需要对项目进行一次clean的全量构建,占用的时间和资源较多,我们可以使用Jenkins的构建触发器功能触发定时任务进行构建。...14 如何在 Pipeline 中设置通过轮询代码仓库启动 job?...此触发方式使用的较少,最佳实践以webhook的方式触发构建更方便,但是在少量特殊场景,如每天需要构建,但是版本不发生变化时不构建可以应用此触发器 ?...通过Git的钩子(webhook)功能触发Jenkins构建任务,这种构建模式比较常见,DevOps成熟度标准中也把这一条当作三级评估的准则,是否每一次提交代码都能触发完整的构建过程,决定了我们持续集成的速度和效率
分钟执行 59 23 * * * /bin/bash -x /root/monit.sh > /dev/null 2>&1 即每天的m点的n分钟执行(也即每天执行一次,就是说每天的某个时候去执行就行)...-x /root/monit.sh > /dev/null 2>&1 每天的0点、6点、12点、18点各执行一次 0 0,6,12,18 * * * /bin/bash -x /root/monit.sh...> /dev/null 2>&1 11月份内,每天的早上6 点到12 点中,每隔2 小时执行一次 0 6-12/2 * 11 * /bin/bash -x /root/monit.sh > /dev/...需要注意的主要有以下三点: -> 脚本中涉及文件路径时写全局路径; -> 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: #cat start_cbp.sh...# tail -f /var/log/cron 上面的/var/log/cron只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息linux会通过邮件形式发送到给该用户。
打包工具:如mvn、go、npm、docker等 七、Pipeline中涉及到的进阶工具链?...如何在pipeline中实践? DevOps成熟度标准中建议做到一次构建,多次部署。目的是为了在测试环境测过的包可以在不改变任何环境和依赖的情况下发布到生产线上。...某些特定场景下,如每天凌晨需要对项目进行一次clean的全量构建,占用的时间和资源较多,我们可以使用Jenkins的构建触发器功能触发定时任务进行构建。...此触发方式使用的较少,最佳实践以webhook的方式触发构建更方便,但是在少量特殊场景,如每天需要构建,但是版本不发生变化时不构建可以应用此触发器 10.png 十五、如何在pipeline中设置通过其他...通过Git的钩子(webhook)功能触发Jenkins构建任务,这种构建模式比较常见,DevOps成熟度标准中也把这一条当作三级评估的准则,是否每一次提交代码都能触发完整的构建过程,决定了我们持续集成的速度和效率
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。...默认情况下,crontab中执行的日志写在/var/log下,如:ls /var/log/cron*时间格式#时间格式如下:f1 f2 f3 f4 f5 program* *...,这些工作可由每个用户自行设置所有命令需要写成绝对路径形式,如: /usr/local/bin/docker使用者也可以将所有的计划任务设定先存放在文件中,用 crontab file 的方式来设定执行时间在...shell 脚本开头使用以下代码,调用sh解析脚本:#!.../etc/profile. ~/.bash_profile在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 .
Custom Runner:支持使用其他脚本语言如Python、Ruby来自定义Runner,提高扩展性。 Group Runner:顾名思义,是面向特定组织或组内项目统一提供服务的Runner。...shell,如bash、sh和zsh来运行jobs 直接在本地GitLab Runner主机上运行 配置简单,无需其他依赖 无法提供隔离的运行环境,可能影响主机 Docker 在指定的Docker镜像容器内运行...Pod中运行 可以动态扩展,灵活调度资源 需要准备Kubernetes集群环境 Custom 自定义脚本语言,如Python、Ruby来运行jobs 根据脚本语言的运行时 高度灵活,可自定义编程语言...我们可以设置环境变量: 图片 之后,在编写时候调用: 图片 Demo: 部署VitePress 接下来,我们演示一下如何在Pipeline部署我们的VitePress。...最后在一次的Git提交后,可以触发打包和部署: 图片 其实点进去也可以看到具体的日志: 图片 说实话,比较难的是SSH的密钥添加部分,需要在GitLab CI作业中配置 SSH 免密登录,主要步骤: #
Shell 脚本是一种强大的工具,广泛用于自动化和系统管理任务。在编写复杂的 Shell 脚本时,使用函数是一种常见的做法,它有助于提高代码的可读性和可维护性。...本文将探讨如何在 Shell 脚本中设计函数的成功和异常返回值,以便于更有效地处理错误和管理脚本的执行流程。 了解 Shell 函数的基础 Shell 函数是一组执行特定任务的命令集合。...定义函数 在 Shell 脚本中定义函数的基本格式如下: bash function_name() { # 函数体 } 设计成功的返回值 在 Shell 中,成功的返回值通常是 0。...在 Shell 中,1-255 的范围可用于表示不同类型的错误。通常,1 用作通用错误代码,但您可以根据需要使用不同的值来表示特定类型的错误。...使用描述性错误代码:使用不同的非零值来区分不同类型的错误。 在文档中记录返回代码:在脚本或函数的文档中说明每个返回代码的含义。 一致性:在整个脚本中保持返回值的一致性。
当从cron作业调用我们的脚本时,特定的任务可能会失败,然后我需要将failed转换为True。基于$failed,我需要发送一封电子邮件警告我的cron作业失败了。...那么,如何在Linux服务器上运行的shell脚本中声明和使用布尔变量呢? Bash中没有布尔值。但是,我们可以根据需要将shell变量的值定义为0(“False”)或1(“True”)。...不过,Bash也支持布尔表达式条件。让我们看看如何在Bash中组合这两个概念来声明布尔变量,并在运行在Linux、macOS、FreeBSD或类unix系统上的shell脚本中使用它们。...如何在Shell脚本中声明和使用布尔变量(例如“ true”和“ false”) 当然,我们可以将它们定义为字符串,并使我们的代码更具可读性: #!...shell脚本示例中的Bash布尔变量 下面是一个示例脚本: #!
在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务。 1、at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次。...中执行 如3-6月和9-12月,每周一到周五12点到14点,每2分钟执行一次刷新任务 */2 12-14 * 3-6,9-12 1-5 /bin/bash /root/temp/refresh.sh 混合使用日期时间及特殊符号...{hourly,daily,weekly,monthly},目录中的文件定义了每小时、每天、每周、每月需要运行的脚本,运行这些任务的精确时间在文件/etc/crontab中指定。...[Service] 标签下Type=后的值指明了执行方式,设置为simple并配合ExecStart=表明指定的程序(我们例子中的脚本)将不会fork()而启动;如果设置为oneshot表明只执行一次(...=指定的单元)最后一次被停止的时间点 我们的例子中使用了其中的两个OnActiveSec=60和OnUnitActiveSec=30指定本单元在启用之后60秒调用Unit=后的单元,并在此单元被启用后每隔
这些子系统的主要思想是添加 eBPF 程序到特定的代码点,从而扩展原生的内核行为。...eBPF 提供了一种编写 eBPF 追踪脚本的高级语言,然后在 clang / LLVM 库的帮助下将这些脚本转化为 eBPF,最终添加到特定的代码点。...BEGIN 是一个特殊的探针名,只在执行一开始生效一次;每次探针命中时,大括号 {} 内的操作(这个例子中只是一个 printf) 都会执行。...下一个例子使用探测用户级函数结尾处的 uretprobe ,获取系统中运行的每个 bash 发出的命令行: $ sudo bpftrace -e 'uretprobe:/bin/bash:readline...这些脚本中,你可以找到: killsnoop.bt——追踪 kill() 系统调用发出的信号 tcpconnect.bt——追踪所有的 TCP 网络连接 pidpersec.bt——统计每秒钟(通过fork
一、解决方案 定时备份数据库的步骤一般由三部: 定时调度器:Windows 定时计划、Linux Crontab 以及 编程语言中的定时器等; 数据库备份脚本:DOS 批处理脚本、Linux Shell...二、如何在 Windows 上实现定时备份 计划任务是用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任务,按需启动和停止任务、显示和更改计划任务。...首先我们先设定备份数据库的 bat 脚本,例如备份 student 表: 1.1. 创建 bat 文件 1.2....在文件内编写备份脚本: mysqldump -h localhost -uroot -p 000000 student > d:\backup\student.sql 创建计划任务,设定每一分钟执行一次备份...1点30执行: 30 1 *** bash /home/zhangsan/backup/student.sh
也可以通过对脚本进行编程,使其在收到特定信号时执行某些命令。从而控制脚本的操作。...可以在脚本中加入识别信号的代码,并执行命令来处理信号。 16.1.2 生成信号 bash shell允许用键盘上的组合键生成两种进本的linux信号。.../test > log.txt & # 后台运行一个作业,不能马上结束 $jobs # 这里就可以看到了 还有一些其他的选项: -l 列出PID和作业号 -r 只列出运行中的作业 -s 只列出停止的作业...4.删除作业 atrm删除等待中的作业,后面接作业号。 比如: $atrm 3 16.6.2安排需要定期执行的脚本 可以设置每天指定时间运行一次,或者每周一次,每月一次。...*ly 假如脚本需要每天运行一次,将它复制到daily就可以了。其他的同理 4.anacron程序 cron程序最大的问题是假定linux系统是24小时一直开机的。
-e 选项用于告诉 echo 传递给它的字符串包含特殊字符,需要扩展功能。 3.使用注释 注释对文档很有用,是高质量代码库的要求。将注释放在处理关键逻辑的代码中是一种常见的做法。..."The result of addition=$sum" Bash 如您所见,在 bash 中添加数字相当简单。...所以,在你的程序中检查类似的情况。 21.Bash 中的函数 与任何编程方言一样,函数在 Linux shell 脚本中扮演着重要角色。它们允许管理员创建自定义代码块以供频繁使用。...下面的演示将概述函数如何在 Linux bash 脚本中工作。 #!...23.从 Bash 脚本创建目录 使用 shell 脚本运行系统命令的能力使开发人员的工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本中创建目录。 #!
这两个组合在一起用,可以在 debug 的时候替你节省许多时间。出于防御性编程的考虑,有必要在写第一行具体的代码之前就插入它们。扪心自问,写代码的时候能够一次写对的次数有多少?...trap命令支持“捕获”许多不同的流程——准确来说,允许用户给特定的流程注入函数调用。其中最为常用的是trap func EXIT和trap func ERR。...trap func ERR允许在运行出错时调用函数。一个常用的技法是,使用全局变量ERROR存储错误信息,然后在注册的函数中根据存储的值完成对应的错误报告。...一开始写这个脚本的人,也许以为它只是一次性任务。代码里难免对一些外部条件有些假定,在当时也许是正常的,但是随着外部环境的变化,这些就成了隐藏的暗礁。雪上加霜的是,几乎没有人会给脚本做测试。...如果你的任务可以组合常见的命令来完成,而且只涉及简单的数据,那么 shell 脚本就是适合的锤子。
ls #每天凌晨2点,每隔10分钟执行一次 * * * * * ls #每分钟都执行 00 00 14 2 * ls #每年2月14日的凌晨执行命令...3,5点,每隔半小时执行一次sync命令 [root@zls ~]# crontab -l */30 15,17 * * * sync &>/dev/null ---- 每天凌晨3点做一次备份 需求...:将备份命令写入一个脚本中 任务: 1.每天备份文件名要求格式:2018-02-20_hostname_etc.tar.gx 2.存放备份内容的目录要求只保留3天的数据 3.在执行计划任务时,不要输出任务信息...---- crond注意的事项 1) 给定时任务注释 2) 将需要定期执行的任务写入Shell脚本中,避免直接使用命令无法执行的情况tar date 3) 定时任务的结尾一定要有&>/dev/null.../dev/null 3.执行脚本 使用bash命令执行, 防止脚本没有增加执行权限(/usr/bin/bash) 执行脚本成功后,复制该执行的命令,以便写入cron 4.编写计划任务 加上必要的注释信息
-e 选项用于告诉 echo 传递给它的字符串包含特殊字符,需要扩展功能。 3、使用注释 注释对文档很有用,是高质量代码库的要求。将注释放在处理关键逻辑的代码中是一种常见的做法。..."The result of addition=$sum" 如您所见,在 bash 中添加数字相当简单。...所以,在你的程序中检查类似的情况。 21、Bash 中的函数 与任何编程方言一样,函数在 Linux shell 脚本中扮演着重要角色。它们允许管理员创建自定义代码块以供频繁使用。...下面的演示将概述函数如何在 Linux bash 脚本中工作。 #!...23、从 Bash 脚本创建目录 使用 shell 脚本运行系统命令的能力使开发人员的工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本中创建目录。 #!
领取专属 10元无门槛券
手把手带您无忧上云