2024-05-25T10:57:00.png

GitHub项目地址:https://github.com/alexta69/metube?tab=readme-ov-file

使用 Docker 运行

docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube

使用 docker-compose 运行

version: "3"
services:
  metube:
    image: ghcr.io/alexta69/metube
    container_name: metube
    restart: unless-stopped
    ports:
      - "8081:8081"
    volumes:
      - /path/to/downloads:/downloads

因为这个项目的所有下载文件都会到vps的存储中,所以对于一些小存储的机器非常不友好,对此我写了一个定时清理downloads目录下文件的脚本。

#!/bin/bash
# 每15分钟清空 /path/to/downloads 目录下的所有文件
    
DOWNLOADS_DIR="/path/to/downloads"
LOG_FILE="/root/log.txt"

# 后台执行循环任务
while true; do
  # 检查目录是否存在
  if [ -d "$DOWNLOADS_DIR" ]; then
    # 遍历目录下的所有文件
    for file in "$DOWNLOADS_DIR"/*; do
      if [ -f "$file" ]; then
        # 记录删除文件的日志
        echo "$(date '+%Y-%m-%d %H:%M:%S') 删除文件: $file" >> "$LOG_FILE"
        # 删除文件
        rm -f "$file"
        # 查找并终止 ffmpeg 进程,防止堆叠
        pkill ffmpeg
      fi
    done
  else
    echo "目录不存在: $DOWNLOADS_DIR"
  fi
  # 等待15分钟
  sleep 900
done

首先我们需要自己创建log文件

vim /root/log.txt

记得给脚本执行权限

chmod +x clear_and_schedule.sh

然后,使用 nohup 命令在后台运行这个脚本,保证我们断开ssh它也可以正常运行

sudo nohup ./clear_and_schedule.sh &

如果你想停止这个脚本,首先找到它的Pid然后kill即可

ps aux | grep clear_and_schedule.sh

当然还有其他方法可以让系统在后台运行这个脚本
以下是使用 cron 的示例:

编辑 cron 任务:

crontab -e

添加如下条目以每15分钟执行一次脚本:

*/15 * * * * /path/to/clear_and_schedule.sh