Debian怎么使用rclone挂载google drive

2023-06-15 10:26:32 debian 挂载 rclone

这篇文章主要讲解了“Debian怎么使用rclone挂载google drive”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Debian怎么使用rclone挂载google drive”吧!

Debian/Ubuntu

#安装rclone

nano rclone.sh

输入下列内容,并保存

#!/bin/bash
 
apt-get install -y nload htop fuse p7zip-full
 
KernelBit="$(getconf LONG_BIT)"
[[ "$KernelBit" == '32' ]] && KernelBitVer='i386'
[[ "$KernelBit" == '64' ]] && KernelBitVer='amd64'
[[ -z "$KernelBitVer" ]] && exit 1
cd /tmp
wget -O '/tmp/rclone.zip' "https://downloads.rclone.org/rclone-current-linux-$KernelBitVer.zip"
7z x /tmp/rclone.zip
cd rclone-*
cp -raf rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone
mkdir -p /usr/local/share/man/man1
cp -raf rclone.1 /usr/local/share/man/man1/
mandb

执行

bash rclone_debian

#初始化配置

rclone config

n) New remote

s) Set configuration password

q) Quit config

n/s/q> n

name> gdrive  #随便填,后面要用到

Type of storage to configure.

Choose a number from below, or type in your own value

 1 / Amazon Drive

    "amazon cloud drive"

 2 / Amazon S3 (also Dreamhost, Ceph, Minio)

    "s3"

 3 / Backblaze B2

    "b2"

 4 / Box

    "box"

 5 / Cache a remote

    "cache"

 6 / Dropbox

    "dropbox"

 7 / Encrypt/Decrypt a remote

    "crypt"

 8 / FTP Connection

    "ftp"

 9 / Google Cloud Storage (this is not Google Drive)

    "google cloud storage"

10 / Google Drive

    "drive"

11 / Hubic

    "hubic"

12 / Local Disk

    "local"

13 / Microsoft Azure Blob Storage

    "azureblob"

14 / Microsoft OneDrive

    "onedrive"

15 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)

    "swift"

16 / Pcloud

    "pcloud"

17 / QingCloud Object Storage

    "qingstor"

18 / SSH/SFTP Connection

    "sftp"

19 / Webdav

    "webdav"

20 / Yandex Disk

    "yandex"

21 / http Connection

    "http"

Storage> 10  #选择10,Google Drive

Google Application Client Id - leave blank normally.

client_id>  #留空 

Google Application Client Secret - leave blank normally.

client_secret>  #留空

Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.

service_account_file> 

Remote config

Use auto config?

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine or Y didn't work

y) Yes

n) No

y/n> n  #选择n

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth....  #复制到浏览器打开,获取验证码

Log in and authorize rclone for access

Enter verification code>  #填入上面获取到的验证码

Configure this as a team drive?

y) Yes

n) No

y/n> y  #选择y

Fetching team drive list...

No team drives found in your account--------------------

[dengxj]

client_id = 

client_secret = 

service_account_file = 

token = {"access_token":"ya29.GltFBd7UJN2qrxdG8FnG_rMuB18ogb8QlujdL7glvXtfV"}

team_drive = 

--------------------

y) Yes this is OK

e) Edit this remote

d) Delete this remote

y/e/d> y  #选择y

Current remotes:

Name                 Type

====                 ====

dengxj               drive

e) Edit existing remote

n) New remote

d) Delete remote

r) Rename remote

c) Copy remote

s) Set configuration password

q) Quit config

e/n/d/r/c/s/q> q  #选择q退出

挂载为磁盘

#新建本地文件夹,路径自己定,即下面的LocalFolder

mkdir /root/GoogleDrive

#挂载为磁盘

格式:

rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000

我们这里可以这样填

rclone mount gdrive: /root/GoogleDrive --allow-other --allow-non-empty --vfs-cache-mode writes

如需卸载磁盘

fusermount -qzu LocalFolder

三、自启动

(1)下载并编辑脚本

nano 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="" #rclone name名
REMOTE='' #远程文件夹
LOCAL='' #挂载地址
Green_font_prefix="" && Red_font_prefix="" && Green_background_prefix="" && Red_background_prefix="" && Font_color_suffix=""
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
sudo /usr/bin/rclone mount $NAME:$REMOTE $LOCAL --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 >/dev/null 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
do_start
}
case "$1" in
start|stop|restart|status)
do_$1
;;
*)
echo "使用方法: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL

修改其中的

NAME="" #rclone name名,及配置时输入的Name

REMOTE=’’ #远程文件夹,Google Drive网盘里的挂载的一个文件夹

LOCAL=’’ #挂载地址,VPS本地挂载目录

然后

#Debian系统

apt-get install sudo -y

#设置自启

mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults
bash /etc/init.d/rcloned start

相关文章