【网盘】通过Webdav把Alist的网盘(天翼)挂载到vps或本地,并配置宝塔自动备份

Alist安装&配置

docker安装Alist,并配置好网盘(本文使用天翼网盘),本文不涉及Alist配置

在宝塔文件里,根目录下新建文件夹【Tianyi】

安装和配置Rclone

一键安装脚本

curl https://rclone.org/install.sh | sudo bash

安装完后,输入 rclone config 命令进入交互式配置选项,按照提示一步一步来进行操作即可。如果你一脸懵逼,可以去看《Rclone 安装配置教程》来了解配置的详细过程

rclone config

输入n创建新挂载

【注意】这里需要注意,url写法一定要有/dav/作为结尾

Enter name for new remote.
name> Alist  #这里名字可以输入Alist

——————————————————————————
46 / WebDAV
   \ (webdav)

# 终端输入 46 选择webdav

——————————————————————————
#输入url,注意要以dav/结尾,例如:
http://127.0.0.1:端口号/dav/

——————————————————————————
5 / Other site/service or software
   \ (other)

# 选5,other webdav
——————————————————————————
Choose an alternative below. Press Enter for the default (n).
y) Yes, type in my own password
g) Generate random password
n) No, keep existing (default)
y/g/n> 

# 输入user后,选 y 输入password,并重复输入密码
# 剩下的直接按enter默认,高级选项也不用管

安装 fuse

挂载需要安装 fuse,根据自己的系统来选择安装命令:

# Debian/Ubantu
apt-get update && apt-get install -y fuse
# CentOS
yum install -y fuse

# 有可能还需要安装fuse3
yum install -y fuse3

挂载网盘

挂载网盘分为手动挂载和开机自动挂载,根据自己的需求来选择。

#挂载
rclone mount <网盘名称:网盘路径> <本地路径> [参数] --daemon
#取消挂载
fusermount -qzu <本地路径>点击复制

网盘名称为配置时填的 name网盘路径为网盘里的文件夹,留空为整个网盘,本地路径为 VPS 上的本地文件夹。参数可以查看官方文档根据需求进行选择。实际输入时不要有括号,这里只是为了更清楚的区分。--daemon 为进程守护参数,可后台运行。

使用示例

输入命令进行挂载操作:

 rclone mount Alist:/Tianyi/ /Tianyi --copy-links --allow-other --allow-non-empty --umask 000 --daemon

然后输入 df -h 命令查看挂载情况。

文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        486M     0  486M    0% /dev
tmpfs           496M     0  496M    0% /dev/shm
tmpfs           100M     0  100M    0% /run/user/0
Alist:Tianyi    1.0P     0  1.0P    0% /Tianyi    #这个就是刚挂载上去的

取消挂载:

fusermount -qzu /Tianyi

开机自动挂载

wget -N git.io/rcloned && nano rcloned

或:

【推荐】在 /etc/init.d下新建一个rcloned的文件,复制以下内容:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
NAME_BIN="rclone"
### BEGIN INIT INFO
# Provides:          rclone
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start rclone at boot time
# Description:       Enable rclone by daemon.
### END INIT INFO
NAME="Alist" #Rclone配置时填写的name
REMOTE='Tianyi'  #远程文件夹,网盘里的挂载的一个文件夹,留空为整个网盘
LOCAL='/Tianyi'  #挂载地址,VPS本地挂载目录
LOG="/$HOME/.rclone/rcloned.log"
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
RETVAL=0
check_running(){
	PID="$(ps -C $NAME_BIN -o pid= |head -n1 |grep -o '[0-9]\{1,\}')"
	if [[ ! -z ${PID} ]]; then
		return 0
	else
		return 1
	fi
}
do_start(){
	check_running
	if [[ $? -eq 0 ]]; then
		echo -e "${Info} $NAME_BIN (PID ${PID}) 正在运行..." && exit 0
	else
		fusermount -zuq $LOCAL >/dev/null 2>&1
		mkdir -p $LOCAL
		mkdir -p ${LOG%/*}
		sudo /usr/bin/rclone mount -vv $NAME:$REMOTE $LOCAL --copy-links --allow-other --allow-non-empty --umask 000 > "${LOG}" 2>&1 &
		sleep 2s
		check_running
		if [[ $? -eq 0 ]]; then
			echo -e "${Info} $NAME_BIN 启动成功 !"
		else
			echo -e "${Error} $NAME_BIN 启动失败 !"
		fi
	fi
}
do_stop(){
	check_running
	if [[ $? -eq 0 ]]; then
		kill -9 ${PID}
		RETVAL=$?
		if [[ $RETVAL -eq 0 ]]; then
			echo -e "${Info} $NAME_BIN 停止成功 !"
		else
			echo -e "${Error} $NAME_BIN 停止失败 !"
		fi
	else
		echo -e "${Info} $NAME_BIN 未运行"
		RETVAL=1
	fi
	fusermount -zuq $LOCAL >/dev/null 2>&1
}
do_status(){
	check_running
	if [[ $? -eq 0 ]]; then
		echo -e "${Info} $NAME_BIN (PID $(echo ${PID})) 正在运行..."
	else
		echo -e "${Info} $NAME_BIN 未运行 !"
		RETVAL=1
	fi
}
do_restart(){
	do_stop
	sleep 2s
	do_start
}
case "$1" in
	start|stop|restart|status)
	do_$1
	;;
	*)
	echo "使用方法: $0 { start | stop | restart | status }"
	RETVAL=1
	;;
esac
exit $RETVAL

修改内容:

NAME="Alist" #Rclone配置时填写的name
REMOTE='Tianyi'  #远程文件夹,网盘里的挂载的一个文件夹,留空为整个网盘
LOCAL='/Tianyi'  #挂载地址,VPS本地挂载目录

设置开机自启

mv rcloned /etc/init.d/rcloned # 移动到这个目录下,如果上一步是新建文件的方式,则跳过这步
chmod +x /etc/init.d/rcloned # 给权限
update-rc.d -f rcloned defaults # Debian/Ubuntu执行这个
chkconfig rcloned on # CentOS执行这个和下面
bash /etc/init.d/rcloned start

看到 [信息] rclone 启动成功 ! 即可。

管理挂载/取消挂载/自启动

开始挂载 
bash /etc/init.d/rcloned start

停止挂载 
bash /etc/init.d/rcloned stop

重新挂载 
bash /etc/init.d/rcloned restart

查看日志 
tail -f /$HOME/.rclone/rcloned.log

卸载自启挂载

bash /etc/init.d/rcloned stop
update-rc.d -f rcloned remove # Debian/Ubuntu
chkconfig rcloned off # CentOS
rm -f /etc/init.d/rcloned

配置宝塔自动备份

面板设置,配置到对应的Tianyi网盘的目录里,务必确认对应

计划任务页面里,执行《备份数据库》来测试是否成功

参考资料

rclone 官方文档

在 Debian/Ubuntu 上使用 rclone 挂载 OneDrive 网盘

本文作者:P3TERX

原文链接:https://p3terx.com/archives/linux-vps-uses-rclone-to-mount-network-drives-such-as-onedrive-and-google-drive.html

留下评论