当前位置: 首页 > news >正文

定时清理流媒体服务器录像自动化bash脚本

定时清理流媒体服务器保存录像文件夹

首先创建一个文件,解除读写权限

touch  rm_videos.sh
chmod 777 rm_videos.sh

将内容复制进去,将对应文件夹等需要修改的内容,根据自己的实际需求进行修改

#!/bin/bash# 设置目标目录(修改为你的实际路径)
TARGET_DIR="/xx/xx/xxx"# 检查目标目录是否存在
if [ ! -d "$TARGET_DIR" ]; thenecho "目标目录不存在: $TARGET_DIR"exit 1
fi# 进入目标目录
cd "$TARGET_DIR" || exit 1# 获取所有子目录并按创建时间排序(最早在前)
# 注意:不同系统 stat 的字段可能不同,此处假设使用 Linux 的 %W(出生时间)
# 如果你的系统不支持 birth time,可以改用 mtime(修改时间)
FOLDERS=($(find . -maxdepth 1 -type d -not -path . -printf "%W %p\n" | sort -n | cut -d' ' -f2-))# 检查是否超过5个文件夹
if [ "${#FOLDERS[@]}" -gt 5 ]; then  #此处5为保存的文件夹数量也就是对应的保存视频天数# 取最早创建的文件夹(第一个元素)OLDEST_FOLDER="${FOLDERS[0]}"echo "正在清理文件夹: $OLDEST_FOLDER"# 删除最早文件夹中的所有内容,包括文件夹rm -r "$OLDEST_FOLDER"echo "$OLDEST_FOLDER 清理完成。" >> /xx/xx/del.log  #将完成内容输出到指定的log文件内 >>为追加
elseecho "文件夹数量未超过5个,无需清理。" >> /xx/xx/del.log #将完成内容输出到指定的log文件内
fi

写完之后,可以运行脚本试一下有没有效果

bash rm_videos.sh

如果没有问题,我们将该脚本写入系统定时任务

首先确认定时任务模块是否开启,如下图active为active即为在运行

 sudo service cron status

在这里插入图片描述

# 如果没有运行可以运行下列指令开启
sudo service cron start
# 输入下面命令,进入定时任务修改文件。注意:第一次进入时,会选择编辑软件,选择vim即可
crontab –e

在这里插入图片描述
我们可以看到图中有详细的案例教程

从前到后分别是

 m      h     dom(day of month)    mon(month of year)  dow(day of week)  command
分钟   小时   每月的第几天            每年的第几个月      每周的第几天      具体指令
#我们再次设置每天凌晨一点自动运行脚本
0 1 * * * /xx/xx/rm_videos.sh
#我们可以先设置每分钟执行,查看脚本是否成功执行
* * * * * /xx/xx/rm_videos.sh

去查看创建的del.log日志文件是否有内容(del.log输出内容在sh脚本中有体现,可以修改为自己想要的内容)

如果是多个文件夹内视频文件夹删除,使用下面代码

#!/bin/bash# 设置根目录(修改为你自己的路径)
ROOT_DIR="/xx/xx/xx"# 检查根目录是否存在
if [ ! -d "$ROOT_DIR" ]; thenecho "根目录不存在: $ROOT_DIR"exit 1
fi# 进入根目录
cd "$ROOT_DIR" || exit 1# 遍历根目录下的所有子目录(只处理文件夹)
for SUB_DIR in */; do# 去除末尾斜杠DIR_NAME="${SUB_DIR%/}"echo "正在处理目录: $DIR_NAME"# 获取该目录下所有子目录并按创建时间排序(最早在前)# 注意:不同系统 stat 的字段可能不同,请根据需要调整 %W / %YFOLDERS=($(find "$DIR_NAME" -maxdepth 1 -mindepth 1 -type d -printf "%W %p\n" | sort -n | cut -d' ' -f2-))COUNT=${#FOLDERS[@]}echo "找到 $COUNT 个子文件夹。"if (( COUNT > 5 )); thenOLDEST_FOLDER="${FOLDERS[0]}"echo "正在清理最早文件夹: $OLDEST_FOLDER"# 删除该文件夹内所有内容rm -r "$OLDEST_FOLDER"echo "已清理: $OLDEST_FOLDER" >> /xxx/xxx/del.logelseecho "文件夹数量未超过5个,无需清理。" >> /xxx/xxx/del.logfiecho "-----------------------------"
done
http://www.xdnf.cn/news/681247.html

相关文章:

  • 大模型 Agent 中的通用 MCP 机制详解
  • JavaScript- 4.1 DOM-document对象
  • FEMFAT许可的常见问题及解决方案
  • 【慧游鲁博】【10】全端优化用户信息存储+网页端user模块与后端对接
  • AI一周事件(2025年5月20日-5月26日)
  • 使用API有效率地管理Dynadot域名,查看一口价域名的详细信息
  • 伪创新-《软件方法》全流程引领AI-第1章 04
  • JavaScript 中 this 指向详解
  • 2025年我国低空经济产业链研究与梳理
  • P2 C++基础(2.2)
  • minhash-大模型输入前的去重
  • Bootloader 与 U-Boot 全解析
  • 2025年- H55-Lc163--124. 二叉树的最大路径和(深搜)--Java版
  • 深度学习常见实验问题与实验技巧
  • 基于 OpenCV 和 DLib 实现面部特征调整(眼间距、鼻子、嘴巴)
  • DAY9 热力图和箱线图的绘制
  • 【数据库】-4 mysql权限语句
  • 阿姆斯特朗数
  • 两视角分析
  • Python 实现桶排序详解
  • 龙虎榜——20250527
  • 7.0 Q1|四川大学CHARLS发文 | 前瞻性队列中肌肉减少症和心血管疾病的变化
  • vue3 判断 一个多字段数组内 包含某个值
  • STM32 UART通信实战指南:从原理到项目落地
  • 编译pg_duckdb步骤
  • linux 通过命令将 MinIO 桶的权限设置为 Custom(自定义策略)
  • 常用流程审批OA系统推荐,三款产品对比分析
  • 【AI面试秘籍】| 第22期:进行SFT时,基座模型选用Chat还是Base模型?
  • 罗技优联接收器如何配对,如何让一个接收器配对多个无线设备
  • Kruskal-Wallis检验 vs. 多次Wilcoxon检验:多次两两比较为什么会增加I类错误-spss