Created
February 24, 2021 02:07
-
-
Save benzBrake/9c5fc87aaef8f352fc3bcabdf3bbd698 to your computer and use it in GitHub Desktop.
transmission 下载完成自动上传
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# transmission远程 登陆用户名 | |
USERNAME="" | |
# transmission 远程 登陆密码 | |
PASSWORD="" | |
# transmission download 目录 | |
DLDIR="/data/Transmission/bt/downloads" | |
# rcone 上传目录 | |
RemoteDIR="unlimited:/Downloads" | |
# 过滤关键字 | |
FILTER_STR=".txt .url .chm .mht .gif .htm 扫码 2048 padding_file 澳门 激情 交友 扫码 直播" | |
# 删除过滤文件 | |
REMOVE_FLAG=1 | |
# 日志文件输出目录 | |
LOG_PATH="/data/trans_autoupload.log" | |
# 日期格式化 | |
DATA_TIME=$(date +"%y-%m-%d %H:%M:%S") | |
#==================================================================== | |
function upFile() { | |
NAME=$@ #因为参数可能带空格,需要看成一个用$@,否则只能取空格前面的字符串 | |
if [[ -e "$DLDIR/$NAME" ]]; then #判断文件是否存在 | |
local _dir=$(echo $NAME | awk -F/ '{print $1}') | |
local _name=${NAME##*/} | |
#判断是否存在上传成功的标记文件 | |
if [[ -e "$DLDIR/$NAME.isupload" ]]; then | |
echo "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b...已上传 or 已删除" | |
return | |
fi | |
#检测是否已经上传 | |
if [[ -e "${DLDIR}/$NAME.isupload" ]]; then | |
echo -ne "\b\b\b\b\b\b\b\b\b...已上传" | |
return | |
fi | |
#过滤关键字 | |
#检测是否已经跳过 | |
if [[ -e "${DLDIR}/$NAME.isskiped" ]]; then | |
echo -ne "\b\b\b\b\b\b\b\b\b...已跳过" | |
return | |
fi | |
for str in ${FILTER_STR}; do | |
if [[ ${_name} =~ ${str} ]]; then | |
if [[ $REMOVE_FLAG -eq 1 ]]; then | |
eval "rm -f "\'$DLDIR/$NAME\'"" | |
echo -ne "\b\b\b\b\b\b\b\b\b...已删除" | |
else | |
eval "touch "\'"$DLDIR/$NAME\'"".isskiped" | |
echo -ne "\b\b\b\b\b\b\b\b\b...已跳过" | |
fi | |
return | |
fi | |
done | |
#上传 | |
echo -ne "\b\b\b\b\b\b\b\b\b...上传中" | |
eval "rclone move "\'$DLDIR/$NAME\'" "\'$RemoteDIR/$_dir\'"" | |
if [[ $? == '0' ]]; then | |
touch "$DLDIR/$NAME.isupload" | |
echo $DATA_TIME $NAME "上传成功" >>$LOG_PATH 2>&1 | |
fi | |
fi | |
} | |
function Start() { | |
for i in $(transmission-remote --auth $USERNAME:$PASSWORD -l | grep "Finished" | awk '{print $1}' | grep -v ID); do | |
echo $DATA_TIME "TASK:$i" | |
transmission-remote --auth $USERNAME:$PASSWORD -t $i -f | grep -v '#' | grep -E "100%" | awk '{for (i=2; i<7; i++){$i=""} print $0}' | while read ID NAME; do | |
upFile $NAME #把获取的$NAME传给 upFile函数 | |
done | |
done | |
} | |
Start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment