aria2下载完成后,自动运行脚本,移动文件到指定目录!

萌新管理 2023-10-24 PM 904℃ 0条

一个sh脚本,闲来没事结合chatgpt乱折腾的!

其实你还可以自己编写下载完成后自动上传等脚本!

功能:

  • 下载完成后,移动文件到指定目录
  • 过滤掉文件名中的url地址,并写入进日志文件中
  • 判断是否为视频文件,如果为视频为就移动,不是视频文件就停止
  • 自动删除掉空文件夹以及种子文件

这里结合P3TERX的aria2 pro修改版本,因为它可以下载指定的文件类型(例如只下载视频文件,mp4,mov等),其他的文件就自动删除。
这个应该也可以自己写脚本实现,为了省事就这样了。也不仅仅有这一个功能,自己探索吧

项目地址 https://github.com/P3TERX/aria2.conf

下面就是我搞的脚本了,其中
DOWNLOAD_DIR="/root/123"为下载完成后需要移动的路径
LOG_FILE="/root/.aria2c/file.log"为过滤掉的域名url日志

#!/bin/bash
# 设置Aria2下载完成后移动文件保存目录
DOWNLOAD_DIR="/root/123"
# 设置日志文件路径
LOG_FILE="/root/.aria2c/file.log"
# 获取Aria2传递的参数
FILE_PATH=$3
FILE_NAME=$(basename "$FILE_PATH")
# 通过正则表达式过滤掉文件名中的任何域名
NEW_FILE_NAME=$(echo "$FILE_NAME" | sed -E 's/(https?:\/\/)?([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}[^[:alnum:]]//g')
# 移除连续的空格字符
NEW_FILE_NAME=$(echo "$NEW_FILE_NAME" | sed 's/ \+/ /g')
# 生成新的文件路径
NEW_FILE_PATH="$DOWNLOAD_DIR/$NEW_FILE_NAME"
# 移动文件到新路径
#mv "$FILE_PATH" "$NEW_FILE_PATH"
# 获取文件的扩展名
FILE_EXTENSION="${FILE_PATH##*.}"
# 定义视频文件格式的数组
VIDEO_FORMATS=("mp4" "mkv" "avi" "mov")
# 判断文件扩展名是否在视频文件格式数组中
if [[ " ${VIDEO_FORMATS[*]} " == *" $FILE_EXTENSION "* ]]; then
   # mv "$FILE_PATH" "$NEW_FILE_PATH"
    mv "$FILE_PATH" "$NEW_FILE_PATH"
    #echo "File moved to $NEW_FILE_PATH."
fi
# 记录过滤掉的域名到日志文件
FILTERED_DOMAINS=$(echo "$FILE_NAME" | grep -oE '(https?://)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}'| sed 's/https\?:\/\///')
if [ -n "$FILTERED_DOMAINS" ]; then
    echo "$(date) - 过滤域名:$FILTERED_DOMAINS" >> "$LOG_FILE"
fi
#自动删除空文件夹以及种子文件
CHECK_CORE_FILE() {
    CORE_FILE="$(dirname $0)/core"
    if [[ -f "${CORE_FILE}" ]]; then
        . "${CORE_FILE}"
    else
        echo "!!! core file does not exist !!!"
        exit 1
    fi
}
CHECK_CORE_FILE "$@"
CHECK_PARAMETER "$@"
CHECK_FILE_NUM
CHECK_SCRIPT_CONF
GET_TASK_INFO
GET_DOWNLOAD_DIR
CONVERSION_PATH
CLEAN_UP
exit 0

保存为move_file.sh文件放到 aria2配置路径下 (P3TERX默认是在 /root/.aria2c目录下)
然后编辑/root/.aria2c目录下的aria2.conf文件
添加一个aria2下载完成后执行的函数 ,把脚本路径放到里面。on-download-complete=/root/.aria2c/move_file.sh

aria2pro22.png
使用dos2unix将文本文件从 DOS/MAC 格式转换为 UNIX 格式

dos2unix move_file.sh

需要给上运行权限chmod +x /root/.aria2c/move_file.sh

过滤掉的域名日志文件在脚本的同路径下。

这是过滤掉的域名信息

urldome.png

非特殊说明,本博所有文章均为博主原创。

评论啦~