You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于文件时长与目录TXT列表的媒体服务器清理脚本开发

针对你的媒体服务器剧集清理需求,我整理了一套实用的解决方案,包含配置文件、自动清理脚本和定时任务设置,完全满足你随时增删清理目标、90天自动过期删除的需求:

解决方案:媒体服务器指定剧集90天自动清理

1. 创建清理目标列表文件

首先创建一个纯文本文件,用来存放需要定期清理的剧集路径——你可以随时编辑这个文件增删目标,非常灵活。

文件格式说明

  • 每行填写一个剧集文件夹的绝对路径
  • 支持用#开头添加注释行(脚本会自动跳过)
  • 空行也会被脚本忽略

示例cleanup_list.txt内容:

# 以下是需要90天后清理的剧集路径
/mnt/media/剧集/XX第一季
/mnt/media/剧集/YY特别篇
/mnt/media/剧集/Z临时限定剧

2. 编写自动清理脚本

用Bash脚本实现核心清理逻辑,脚本会读取列表文件,遍历每个目标路径,删除创建时间超过90天的媒体文件,同时记录操作日志方便排查。

脚本代码

#!/bin/bash

# -------------------------- 配置区 --------------------------
LIST_FILE="/mnt/media/cleanup_list.txt"  # 替换成你的列表文件路径
LOG_FILE="/var/log/media_cleanup.log"     # 日志文件路径,可自定义
RETENTION_DAYS=90                         # 保留天数,默认90天
# -----------------------------------------------------------

# 检查列表文件是否存在
if [ ! -f "$LIST_FILE" ]; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 错误:清理列表文件 $LIST_FILE 不存在" >> "$LOG_FILE"
    exit 1
fi

# 遍历列表中的每个路径
while IFS= read -r DIR_PATH; do
    # 跳过空行和注释行
    [[ -z "$DIR_PATH" || "$DIR_PATH" =~ ^# ]] && continue

    # 检查目标路径是否存在
    if [ ! -d "$DIR_PATH" ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - 警告:路径 $DIR_PATH 不存在,跳过" >> "$LOG_FILE"
        continue
    fi

    # 清理指定后缀的媒体文件(可根据你的文件类型调整)
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始清理路径:$DIR_PATH" >> "$LOG_FILE"
    find "$DIR_PATH" -type f \( -name "*.mp4" -o -name "*.mkv" -o -name "*.avi" -o -name "*.mov" \) \
        -ctime +$RETENTION_DAYS -delete -print >> "$LOG_FILE"

done < "$LIST_FILE"

echo "$(date '+%Y-%m-%d %H:%M:%S') - 本次清理任务完成" >> "$LOG_FILE"

脚本设置步骤

  1. 将脚本保存为media_cleanup.sh
  2. 给脚本添加执行权限:
    chmod +x /path/to/media_cleanup.sh
    
  3. 手动运行测试(确保无报错):
    /path/to/media_cleanup.sh
    

3. 设置每日定时任务(Cron)

通过系统Cron实现脚本每日自动运行,推荐在凌晨服务器负载低的时段执行。

配置步骤

  1. 打开Cron编辑界面:
    crontab -e
    
  2. 添加定时任务(示例为每天凌晨2点执行,可自定义时间):
    0 2 * * * /path/to/media_cleanup.sh
    
    时间格式说明:分钟 小时 日 月 周,0 2 * * *代表每天凌晨2点整执行。
  3. 保存退出后,Cron会自动生效。

4. 使用说明

  • 增删清理目标:直接编辑cleanup_list.txt,添加/删除路径即可,无需修改脚本或定时任务
  • 查看清理日志:通过tail -f $LOG_FILE实时查看清理过程,或直接打开日志文件排查问题
  • 调整保留天数:修改脚本配置区的RETENTION_DAYS参数即可

内容的提问来源于stack exchange,提问作者DGC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:03:19