云服务器+ASS搭建动漫库+自动上传夸克网盘

1.云服务器

我选择的是Ubuntu22。

1.1 安装SSH服务并启用

Ⅰ:打开终端安装所需要的SSH服务
    sudo apt update                     # 更新系统软件包索引
    sudo apt install openssh-server     # 安装SSH服务
Ⅱ:开启SSH服务以及查看SSH服务
    sudo systemctl status ssh           # 查看SSH服务是否被启动
    sudo systemctl start ssh            # 开启SSH服务
    sudo systemctl stop ssh             # 关闭SSH服务
    sudo systemctl restart ssh          # 重启SSH服务

安装合理上网软件

参考文章:https://ry.huaji.store/2020/08/Linux-magic-network/
密钥过期需要参考这个:https://daeuniverse.pages.dev/

2.docker搭建服务

ASS搭建参考博客:https://catcat.blog/docker-ani-rss.html
docker命令:https://blog.youkuaiyun.com/Python_0011/article/details/140313812
Docker-compose命令大全及配置文件详解:https://pythondjango.cn/python/tools/3-docker-compose/

docker-compose.yaml

services:
  ani-rss:
    container_name: ani-rss
    volumes:
      - /root/docker/ani-rss/config:/config
      - /root/docker/ani-rss/downloads:/download  # 下载的存储路径 需要和ani-rss保持一致
    ports:
      - 7789:7789
    environment:
      - PORT=7789
      - CONFIG=/config
      - TZ=Asia/Shanghai
    restart: always
    image: wushuo894/ani-rss
  
  qbittorrent:
    image: nevinee/qbittorrent  
    container_name: qbittorrent-mikan
    restart: always
    tty: true
    network_mode: bridge
    hostname: qbitorrent
    stop_grace_period: 10m
    volumes:
      - /root/docker/ani-rss/downloads:/download   # 下载的存储路径 需要和ani-rss保持一致
    tmpfs:
      - /tmp
    environment:
      - QB_USERNAME=admin
      - QB_PASSWORD=admin
      - WEBUI_PORT=15768   #qb 的 web 端口
      - BT_PORT=34567       # BT端口
      - PUID=0        
      - PGID=0        
    ports:
      - 15768:15768           # qb web 端口映射
      - 34567:34567      
      - 34567:34567/udp 


3.遇到的问题

3.1 重启docker,网页端无法访问

需要打开ip转发
参考博客:https://www.freesion.com/article/4855501464/#Docker_1
即使这样开启,有时候网页端某明奇妙突然就挂了,只能再开启一次。
检查转发状态

sysctl net.ipv4.ip_forward

打开并修改

vim /etc/sysctl.conf

使配置生效

sysctl -p

4.自动上传夸克网盘并删除文件

脚本如下

#!/bin/bash
set -euo pipefail

# ====== 可配参数 ======
SRC_DIR="/root/docker/ani-rss/downloads"     # 本地待上传目录
DST_FOLDER="/动漫"                           # 夸克网盘目标文件夹
LOCK_FILE="/tmp/auto_upload_mp4.lock"        # 防并发锁文件
RETRY=3                                      # 上传失败重试次数
STABLE_WAIT=5                                # 文件大小检测间隔秒数
# =====================

ts(){ date +"%F %T"; }

# 防并发锁
if [ -e "$LOCK_FILE" ] && kill -0 "$(cat "$LOCK_FILE")" 2>/dev/null; then
  echo "$(ts) [INFO] 已有任务在运行,跳过本次执行。"
  exit 0
fi
echo $$ > "$LOCK_FILE"
trap 'rm -f "$LOCK_FILE"' EXIT

echo "$(ts) ===== 开始扫描目录: $SRC_DIR ====="

# 扫描所有 mp4 文件
shopt -s nullglob
mp4_files=("$SRC_DIR"/*.mp4)

if [ ${#mp4_files[@]} -eq 0 ]; then
  echo "$(ts) [INFO] 未发现待上传的 MP4 文件。"
  exit 0
fi

for file in "${mp4_files[@]}"; do
  filename="$(basename "$file")"

  # 跳过临时下载文件(.part、.tmp)
  if [[ "$filename" == *.part || "$filename" == *.tmp ]]; then
    echo "$(ts) [SKIP] 跳过临时文件: $filename"
    continue
  fi

  # 检查文件是否稳定(大小不再变化)
  size1=$(stat -c%s "$file" 2>/dev/null || echo 0)
  sleep "$STABLE_WAIT"
  size2=$(stat -c%s "$file" 2>/dev/null || echo 0)

  if [ "$size1" -ne "$size2" ]; then
    echo "$(ts) [SKIP] 文件仍在写入中,跳过: $filename"
    continue
  fi

  echo "$(ts) [INFO] 开始上传: $filename"
  success=false
  for ((i=1; i<=RETRY; i++)); do
    if quarkpan upload "$file" --folder "$DST_FOLDER"; then
      echo "$(ts) [SUCCESS] 上传成功: $filename"
      success=true
      break
    else
      echo "$(ts) [WARN] 第 $i 次上传失败,5 秒后重试..."
      sleep 5
    fi
  done

  if [ "$success" = true ]; then
    echo "$(ts) [CLEANUP] 删除本地文件: $filename"
    rm -f "$file"
  else
    echo "$(ts) [FAIL] 文件上传失败: $filename,保留文件以便下次重试。"
  fi
done

echo "$(ts) ===== 本轮任务完成 ====="


再设置个定时任务就可以了

《Linux多线程服务端编程 使用Muduo网络》是一本介绍Linux多线程服务端编程的书籍,其中涉及了Muduo网络的使用。Muduo网络是一个开源的C++网络,提供了异步事件驱动的网络编程框架,旨在简化网络编程的复杂性。 该书详细介绍了如何使用Muduo网络搭建多线程服务端,包括网络编程的基本知识、并发编程的原理、Muduo网络的架构和使用方法等内容。通过学习本书,读者可以掌握Linux下多线程服务端编程的基本概念和技术,了解网络编程的基本原理和常用技术,以及熟悉Muduo网络的使用方法。 Muduo网络通过事件驱动的机制实现了高效的网络编程,能够处理并发连接和大量的网络请求。它采用了Reactor模式,通过事件循环和I/O多路复用技术实现高效率的网络通信。另外,Muduo网络还提供了一些常用的网络编程工具和组件,如定时器、线程池和日志记录等,帮助开发者更方便地构建高性能的网络服务。 《Linux多线程服务端编程 使用Muduo网络》PDF可以通过夸克网盘进行分享。夸克网盘是一个免费的在线存储和分享平台,通过上传PDF文件到夸克网盘,可以将这本书分享给其他人。用户可以在夸克网盘上搜索该书名,找到对应的分享链接,然后可以下载或在线阅读该书的PDF版本。 通过这本书的学习和夸克网盘的分享,读者可以更加深入地了解Linux下的多线程服务端编程和Muduo网络的使用,提升自己的网络编程技术。同时,分享这本书也能帮助其他人更好地学习和使用这个网络,促进技术的交流和分享。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值