├── README.md ├── cd2-termux.sh ├── cd2.sh └── images ├── mac1.png ├── mac2.png ├── op1.png ├── op2.png ├── termux.png ├── update1.png └── update2.png /README.md: -------------------------------------------------------------------------------- 1 | 现官方clouddrive2已有app 2 | 请关注cd2频道: 3 | https://t.me/cloud_nas 4 | 此脚本仓库原作者好像删库了~我是之前fork的 5 | 改掉链接还可用,就先这么留着了【若是用不了请翻墙或者自己在http前+镜像加速链接】 6 | # 一键安装 Clouddrive2 脚本 7 | 脚本非官方出品,由于官方帮助不适合新手故写此脚本。指在帮助新手用户快速使用 clouddrive2 挂载网盘。 8 | 9 | ## 目录 10 | - [一键安装 Clouddrive2 脚本](#一键安装-clouddrive2-脚本) 11 | - [目录](#目录) 12 | - [安装](#安装) 13 | - [安装命令](#安装命令) 14 | - [卸载命令](#卸载命令) 15 | - [安卓](#安卓) 16 | - [安装 (未ROOT设备)](#安装-未root设备) 17 | - [安装 (已ROOT设备)](#安装-已root设备) 18 | - [卸载](#卸载) 19 | - [如何更新?](#如何更新) 20 | - [在哪运行?](#在哪运行) 21 | - [OpenWRT](#openwrt) 22 | - [Mac](#mac) 23 | - [Linux](#linux) 24 | - [安卓](#安卓-1) 25 | - [问与答](#问与答) 26 | - [通规问题](#通规问题) 27 | - [安装问题](#安装问题) 28 | - [安装后问题](#安装后问题) 29 | - [安卓问题](#安卓问题) 30 | 31 | 32 | 支持 33 | - [X] Linux 34 | - [X] MacOS 35 | - [X] OpenWRT 36 | - [X] Android-Termux 37 | - [X] 理论上支持所有安装了 docker 的设备如: iStore OS 38 | - [X] 理论上支持所有 OpenWRT 及其衍生的系统 39 | 40 | ## 安装 41 | ### 安装命令 42 | Mac、Linux、OpenWRT等 在「终端」运行下面的「命令」 43 | 44 | 不知道在哪里运行这些命令?[点击查看](#在哪运行) 45 | 46 | ```shell 47 | curl -fsSL "https://https://raw.githubusercontent.com/cshczh/clouddrive2/main/cd2.sh" | bash -s install 48 | ``` 49 | 50 | ### 卸载命令 51 | ```shell 52 | curl -fsSL "https://https://raw.githubusercontent.com/cshczh/clouddrive2/main/cd2.sh" | bash -s uninstall 53 | ``` 54 | 55 | ## 安卓 56 | 安卓在termux里运行下面的「命令」 57 | 58 | ### 安装 (未ROOT设备) 59 | ```shell 60 | curl -fsSL "https://raw.githubusercontent.com/cshczh/clouddrive2/main/cd2-termux.sh" | bash -s install 61 | ``` 62 | 63 | ### 安装 (已ROOT设备) 64 | ```shell 65 | curl -fsSL "https://raw.githubusercontent.com/cshczh/clouddrive2/main/cd2-termux.sh" | bash -s install root 66 | ``` 67 | 68 | ### 卸载 69 | ```shell 70 | curl -fsSL "https://raw.githubusercontent.com/cshczh/clouddrive2/main/cd2-termux.sh" | bash -s uninstall 71 | ``` 72 | 73 | ## 如何更新? 74 | 请使用官方内置的更新方式: 点击右上角的`!`号 75 | 76 | 77 | 78 | 79 | 80 | ## 在哪运行? 81 | ### OpenWRT 82 | 在左侧菜单里一般有「终端」或「TTYD 终端」,登录用户名一般为root,密码为你的OP密码。 83 | 如果没有, 请使用 ssh 连接. 84 | 85 | 86 | 87 | 88 | 89 | ### Mac 90 | 打开「启动器」在上面的「搜索框」搜索「终端」或「terminal」 91 | 92 | 第1步 93 | 94 | 95 | 第2步 96 | 97 | 98 | 99 | ### Linux 100 | Linux 桌面环境下的「终端」名称不同, 可自行查找 101 | 102 | ### 安卓 103 | 打开「Termux」输入命令 104 | 105 | 106 | 107 | ## 问与答 108 | 这里解决的问题主要来源于群友的反馈 109 | 110 | ### 通规问题 111 | 是否需要开代理? 112 | > 需要。脚本已冇了镜像加速。 113 | 114 | cd2安装在了哪里? 115 | > docker默认挂载点在 /CloudNAS 116 | > 安卓默认安装在/data/data/com.termux/files/home/clouddrive/ 117 | > 其它平台默认安装在 /opt/clouddrive/ 118 | 119 | ### 安装问题 120 | 提示:curl: (35) Recv failure: Connection reset by peer 121 | > 重启「终端」 122 | 123 | ### 安装后问题 124 | 登录一直提示连接超时 125 | > 用「卸载命令」再重装 126 | 127 | ### 安卓问题 128 | 为什么 termux 无法挂载网盘到本地? 129 | > 非Root用户无法挂载。 130 | 131 | 非 root 设备可以用 root 命令吗? 132 | > 不可以,用了会无法启动。 133 | -------------------------------------------------------------------------------- /cd2-termux.sh: -------------------------------------------------------------------------------- 1 | #!/data/data/com.termux/files/usr/bin/bash 2 | #set -x 3 | chmod +x "$0" 4 | 5 | if [ ! -n "$2" ]; then 6 | echo -e "\r\n${YELLOW_COLOR}非 Root 方式${RES}\r\n" 1>&2 7 | CHECK_ROOT="notroot" 8 | else 9 | if [[ $2 == "root" ]]; then 10 | echo -e "\r\n${YELLOW_COLOR}Root 方式${RES}\r\n" 1>&2 11 | CHECK_ROOT="root" 12 | pkg install tsu -y 13 | else 14 | echo -e "${RED_COLOR} 错误的命令${RES}" 15 | exit 1 16 | fi 17 | fi 18 | 19 | RED_COLOR='\e[1;31m' 20 | GREEN_COLOR='\e[1;32m' 21 | YELLOW_COLOR='\e[1;33m' 22 | BLUE_COLOR='\e[1;34m' 23 | PINK_COLOR='\e[1;35m' 24 | SHAN='\e[1;33;5m' 25 | RES='\e[0m' 26 | 27 | # Get platform 28 | if command -v uname >/dev/null 2>&1; then 29 | platform=$(uname -m) 30 | else 31 | platform=$(arch) 32 | fi 33 | 34 | ARCH="UNKNOWN" 35 | 36 | if [ "$platform" = "x86_64" ]; then 37 | ARCH="x86_64" 38 | elif [ "$platform" = "arm64" ]; then 39 | ARCH="aarch64" 40 | elif [ "$platform" = "aarch64" ]; then 41 | ARCH="aarch64" 42 | elif [ "$platform" = "armv7l" ]; then 43 | ARCH="armv7" 44 | else 45 | echo -e "${RED_COLOR}不支持的架构${RES}" 46 | exit 1 47 | fi 48 | 49 | pkg install termux-services -y 50 | if [ $? -eq 0 ]; then 51 | echo -e "下载完成" 52 | else 53 | echo -e "${RED_COLOR}网络中断,请检查网络${RES}" 54 | exit 1 55 | fi 56 | INSTALL() { 57 | # Download FUSE 58 | if [[ "$CHECK_ROOT" == "root" ]]; then 59 | echo -e "\r\n${GREEN_COLOR}下载 FUSE $VERSION ...${RES}" 60 | if [[ "$ARCH" == "aarch64" ]]; then 61 | curl -L https://xdaforums.com/attachments/fusermount_arm64-v8a-zip.4641672/ -o $HOME/fuse.zip $CURL_BAR 62 | elif [[ "$ARCH" == "armv7" ]]; then 63 | curl -L https://xdaforums.com/attachments/fusermount_armeabi-v7a-zip.4641674/ -o $HOME/fuse.zip $CURL_BAR 64 | else 65 | echo -e "${RED_COLOR}不支持的架构${RES}" 66 | fi 67 | 68 | if [ $? -eq 0 ]; then 69 | echo -e "FUSE 下载完成" 70 | else 71 | echo -e "${RED_COLOR}网络中断,请检查网络${RES}" 72 | exit 1 73 | fi 74 | unzip $HOME/fuse.zip -d $PREFIX/bin 75 | mv $PREFIX/bin/fusermount $PREFIX/bin/fusermount3 76 | chmod 777 $PREFIX/bin/fusermount3 77 | rm -rf $HOME/fuse.zip 78 | fi 79 | # Download clouddrive2 80 | mkdir -p $HOME/clouddrive 81 | INSTALL_PATH=$HOME/clouddrive 82 | clouddrive_version=$(curl -s https://api.github.com/repos/cloud-fs/cloud-fs.github.io/releases/latest | grep -Eo "\s\"name\": \"clouddrive-2-android-$ARCH-.+?\.tgz\"" | awk -F'"' '{print $4}') 83 | echo -e "\r\n${GREEN_COLOR}下载 clouddrive2 $VERSION ...${RES}" 84 | curl -L https://gh-proxy.com/https://github.com/cloud-fs/cloud-fs.github.io/releases/latest/download/$clouddrive_version -o $HOME/clouddrive.tgz $CURL_BAR 85 | if [ $? -eq 0 ]; then 86 | echo -e "clouddrive 下载完成" 87 | else 88 | echo -e "${RED_COLOR}网络中断,请检查网络${RES}" 89 | exit 1 90 | fi 91 | tar zxf $HOME/clouddrive.tgz -C $INSTALL_PATH/ 92 | mv $INSTALL_PATH/clouddrive-2*/* $INSTALL_PATH/ && rm -rf $INSTALL_PATH/clouddrive-2* 93 | if [ -f $INSTALL_PATH/clouddrive ]; then 94 | echo -e "${GREEN_COLOR}校验文件成功\r\n${RES}" 95 | else 96 | echo -e "${RED_COLOR}校验 clouddrive-2-android-$platform.tgz 文件失败!${RES}" 97 | exit 1 98 | fi 99 | # remove temp 100 | rm -rf $HOME/clouddrive.tgz 101 | } 102 | 103 | get-local-ipv4-using-hostname() { 104 | hostname -I 2>&- | awk '{print $1}' 105 | } 106 | 107 | # iproute2 108 | get-local-ipv4-using-iproute2() { 109 | # OR ip route get 1.2.3.4 | awk '{print $7}' 110 | ip -4 route 2>&- | awk '{print $NF}' | grep -Eo --color=never '[0-9]+(\.[0-9]+){3}' 111 | } 112 | 113 | # net-tools 114 | get-local-ipv4-using-ifconfig() { 115 | ( ifconfig 2>&- || ip addr show 2>&- ) | grep -Eo '^\s+inet\s+\S+' | grep -Eo '[0-9]+(\.[0-9]+){3}' | grep -Ev '127\.0\.0\.1|0\.0\.0\.0' 116 | } 117 | 118 | # 获取本机 IPv4 地址 119 | get-local-ipv4() { 120 | set -o pipefail 121 | get-local-ipv4-using-hostname || get-local-ipv4-using-iproute2 || get-local-ipv4-using-ifconfig 122 | } 123 | get-local-ipv4-select() { 124 | local ips=$(get-local-ipv4) 125 | local retcode=$? 126 | if [ $retcode -ne 0 ]; then 127 | return $retcode 128 | fi 129 | grep -m 1 "^192\." <<<"$ips" || \ 130 | grep -m 1 "^172\." <<<"$ips" || \ 131 | grep -m 1 "^10\." <<<"$ips" || \ 132 | head -n 1 <<<"$ips" 133 | } 134 | 135 | SESSIONS() { 136 | if [[ "$CHECK_ROOT" == "root" ]]; then 137 | cd_start="sudo ./clouddrive" 138 | else 139 | cd_start="./clouddrive" 140 | fi 141 | mkdir -p $PREFIX/var/service/clouddrive && touch $PREFIX/var/service/clouddrive/run 142 | cat >$PREFIX/var/service/clouddrive/run </dev/null 2>&1; then # $CURL_BAR 175 | CURL_BAR="--progress-bar" 176 | fi 177 | 178 | if [ "$1" = "uninstall" ]; then 179 | UNINSTALL 180 | elif [ "$1" = "install" ]; then 181 | INSTALL 182 | SESSIONS 183 | if [ -f "$INSTALL_PATH/clouddrive" ]; then 184 | SUCCESS 185 | else 186 | echo -e "${RED_COLOR} 安装失败${RES}" 187 | fi 188 | else 189 | echo -e "${RED_COLOR} 错误的命令${RES}" 190 | fi 191 | -------------------------------------------------------------------------------- /cd2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://github.com/sublaim/clouddrive2 3 | # INSTALL_PATH='/opt/clouddrive' 4 | chmod +x "$0" 5 | if [[ $EUID -ne 0 ]]; then 6 | echo -e "${YELLOW_COLOR}当前操作需要 root 权限,请输入您的密码后回车${RES}" 7 | exec sudo bash "$0" "$@" 8 | fi 9 | 10 | VERSION='latest' 11 | 12 | if [ ! -n "$2" ]; then 13 | INSTALL_PATH='/opt/clouddrive' 14 | else 15 | if [[ $2 == */ ]]; then 16 | INSTALL_PATH=${2%?} 17 | else 18 | INSTALL_PATH=$2 19 | fi 20 | if ! [[ $INSTALL_PATH == */clouddrive ]]; then 21 | INSTALL_PATH="$INSTALL_PATH/clouddrive" 22 | fi 23 | fi 24 | 25 | # Get_OS 26 | os_type=$(uname) 27 | if [[ "$os_type" == "Linux" ]]; then 28 | echo "当前系统为 Linux" 29 | os="linux" 30 | RED_COLOR='\e[1;31m' 31 | GREEN_COLOR='\e[1;32m' 32 | YELLOW_COLOR='\e[1;33m' 33 | BLUE_COLOR='\e[1;34m' 34 | PINK_COLOR='\e[1;35m' 35 | SHAN='\e[1;33;5m' 36 | RES='\e[0m' 37 | elif [[ "$os_type" == "Darwin" ]]; then 38 | echo "当前系统为 macOS" 39 | os="macos" 40 | RED_COLOR=$(printf '\033[31m') 41 | GREEN_COLOR=$(printf '\033[32m') 42 | YELLOW_COLOR=$(printf '\033[33m') 43 | BLUE_COLOR=$(printf '\033[1m') 44 | PINK_COLOR=$(printf '\033[35m') 45 | SHAN=$(printf '\033[5m') 46 | RES=$(printf '\033[0m') 47 | else 48 | echo -e "${RED_COLOR}系统未识别${RES}" 49 | exit 1 50 | fi 51 | 52 | clear 53 | 54 | 55 | # Get platform 56 | if command -v uname >/dev/null 2>&1; then 57 | platform=$(uname -m) 58 | else 59 | platform=$(arch) 60 | fi 61 | 62 | ARCH="UNKNOWN" 63 | 64 | if [ "$platform" = "x86_64" ]; then 65 | ARCH=amd64 66 | elif [ "$platform" = "aarch64" ]; then 67 | ARCH=arm64 68 | fi 69 | 70 | if [ "$UID" != "0" ]; then 71 | echo -e "\r\n${RED_COLOR}出错了,请使用 root 权限重试!${RES}\r\n" 1>&2 72 | exit 1 73 | elif [ "$ARCH" == "UNKNOWN" ]; then 74 | echo -e "\r\n${RED_COLOR}出错了${RES},一键安装目前仅支持 x86_64和arm64 平台。\r\n" 75 | exit 1 76 | elif ! command -v systemctl >/dev/null 2>&1; then 77 | if command -v opkg >/dev/null 2>&1; then 78 | if command -v docker >/dev/null 2>&1; then 79 | check_docker="exist" 80 | else 81 | if [ -e "/sbin/procd" ]; then 82 | check_procd="exist" 83 | else 84 | echo -e "\r\n${RED_COLOR}出错了,无法确定你当前的 Linux 发行版。${RES}\r\n" 85 | exit 1 86 | fi 87 | fi 88 | else 89 | echo -e "\r\n${RED_COLOR}出错了,无法确定你当前的 Linux 发行版。${RES}\r\n" 90 | exit 1 91 | fi 92 | else 93 | if command -v netstat >/dev/null 2>&1; then 94 | check_port=$(netstat -lnp | grep 19798 | awk '{print $7}' | awk -F/ '{print $1}') 95 | else 96 | echo -e "${GREEN_COLOR}端口检查 ... 不同Linux发行版如报错可忽略${RES}" 97 | if command -v yum >/dev/null 2>&1; then 98 | yum install net-tools -y >/dev/null 2>&1 99 | check_port=$(netstat -lnp | grep 19798 | awk '{print $7}' | awk -F/ '{print $1}') 100 | else 101 | apt-get update >/dev/null 2>&1 102 | apt-get install net-tools -y >/dev/null 2>&1 103 | check_port=$(netstat -lnp | grep 19798 | awk '{print $7}' | awk -F/ '{print $1}') 104 | fi 105 | fi 106 | fi 107 | 108 | CHECK() { 109 | if [ -f "$INSTALL_PATH/clouddrive" ]; then 110 | echo "此位置已经安装,请选择其他位置" 111 | exit 0 112 | fi 113 | if [ $check_port ]; then 114 | kill -9 $check_port 115 | fi 116 | if [ ! -d "$INSTALL_PATH/" ]; then 117 | mkdir -p $INSTALL_PATH 118 | else 119 | rm -rf $INSTALL_PATH && mkdir -p $INSTALL_PATH 120 | fi 121 | } 122 | 123 | INSTALL() { 124 | # Download macFUSE 125 | if [[ "$os_type" == "Darwin" ]]; then 126 | fuse_version=$(curl -s https://api.github.com/repos/osxfuse/osxfuse/releases/latest | grep -Eo '\s\"name\": \"macfuse-.+?\.dmg\"' | awk -F'"' '{print $4}') 127 | echo -e "\r\n${GREEN_COLOR}下载 macFUSE $VERSION ...${RES}" 128 | curl -L https://gh-proxy.com/https://github.com/osxfuse/osxfuse/releases/latest/download/$fuse_version -o /tmp/macfuse.dmg $CURL_BAR 129 | sudo spctl --master-disable 130 | if [ $? -eq 0 ]; then 131 | echo -e "macFUSE 下载完成" 132 | else 133 | echo -e "${RED_COLOR}网络中断,请检查网络${RES}" 134 | exit 1 135 | fi 136 | hdiutil mount /tmp/macfuse.dmg 137 | sudo installer -pkg "/Volumes/macFUSE/Install macFUSE.pkg" -target / 138 | hdiutil unmount /Volumes/macFUSE 139 | rm -rf /tmp/macfuse.dmg 140 | fi 141 | # Download clouddrive2 142 | clouddrive_version=$(curl -s https://api.github.com/repos/cloud-fs/cloud-fs.github.io/releases/latest | grep -Eo "\s\"name\": \"clouddrive-2-$os-$platform-.+?\.tgz\"" | awk -F'"' '{print $4}') 143 | echo -e "\r\n${GREEN_COLOR}下载 clouddrive2 $VERSION ...${RES}" 144 | curl -L https://gh-proxy.com/https://github.com/cloud-fs/cloud-fs.github.io/releases/latest/download/$clouddrive_version -o /tmp/clouddrive.tgz $CURL_BAR 145 | if [ $? -eq 0 ]; then 146 | echo -e "clouddrive 下载完成" 147 | else 148 | echo -e "${RED_COLOR}网络中断,请检查网络${RES}" 149 | exit 1 150 | fi 151 | tar zxf /tmp/clouddrive.tgz -C $INSTALL_PATH/ 152 | mv $INSTALL_PATH/clouddrive-2*/* $INSTALL_PATH/ && rm -rf $INSTALL_PATH/clouddrive-2* 153 | if [ -f $INSTALL_PATH/clouddrive ]; then 154 | echo -e "${GREEN_COLOR}校验文件成功\r\n${RES}" 155 | else 156 | echo -e "${RED_COLOR}校验 clouddrive-2-$os-$platform.tgz 文件失败!${RES}" 157 | exit 1 158 | fi 159 | # remove temp 160 | rm -f /tmp/clouddrive* 161 | } 162 | 163 | DOCKER() { 164 | # check op 165 | if command -v opkg >/dev/null 2>&1; then 166 | if ! grep -q "mount --make-shared /" "/etc/rc.local"; then 167 | sed -i '/exit 0/i\mount --make-shared /' "/etc/rc.local" 168 | fi 169 | fi 170 | # run docker 171 | if [ "$check_docker" == "exist" ]; then 172 | mount --make-shared $(df -P / | tail -1 | awk '{ print $6 }') 173 | echo -e "${GREEN_COLOR}正在下载 clouddrive 镜像,请稍候...${RES}" 174 | docker pull cloudnas/clouddrive2:latest 175 | docker run -d \ 176 | --name clouddrive \ 177 | --restart unless-stopped \ 178 | --env CLOUDDRIVE_HOME=/Config \ 179 | -v /CloudNAS:/CloudNAS:shared \ 180 | -v /Config:/Config \ 181 | -v /media:/media:shared \ 182 | --network host \ 183 | --pid host \ 184 | --privileged \ 185 | --device /dev/fuse:/dev/fuse \ 186 | cloudnas/clouddrive2:latest 187 | if [ $? -eq 0 ]; then 188 | echo "clouddrive 容器已成功运行" 189 | else 190 | echo -e "${RED_COLOR}clouddrive 容器未能成功运行${RES}" 191 | exit 1 192 | fi 193 | fi 194 | } 195 | 196 | get-local-ipv4-using-hostname() { 197 | hostname -I 2>&- | awk '{print $1}' 198 | } 199 | 200 | # iproute2 201 | get-local-ipv4-using-iproute2() { 202 | # OR ip route get 1.2.3.4 | awk '{print $7}' 203 | ip -4 route 2>&- | awk '{print $NF}' | grep -Eo --color=never '[0-9]+(\.[0-9]+){3}' 204 | } 205 | 206 | # net-tools 207 | get-local-ipv4-using-ifconfig() { 208 | ( ifconfig 2>&- || ip addr show 2>&- ) | grep -Eo '^\s+inet\s+\S+' | grep -Eo '[0-9]+(\.[0-9]+){3}' | grep -Ev '127\.0\.0\.1|0\.0\.0\.0' 209 | } 210 | 211 | # 获取本机 IPv4 地址 212 | get-local-ipv4() { 213 | set -o pipefail 214 | get-local-ipv4-using-hostname || get-local-ipv4-using-iproute2 || get-local-ipv4-using-ifconfig 215 | } 216 | get-local-ipv4-select() { 217 | local ips=$(get-local-ipv4) 218 | local retcode=$? 219 | if [ $retcode -ne 0 ]; then 220 | return $retcode 221 | fi 222 | grep -m 1 "^192\." <<<"$ips" || \ 223 | grep -m 1 "^172\." <<<"$ips" || \ 224 | grep -m 1 "^10\." <<<"$ips" || \ 225 | head -n 1 <<<"$ips" 226 | } 227 | 228 | SESSIONS() { 229 | if [[ "$os_type" == "Linux" ]]; then 230 | if [[ "$check_procd" == "exist" ]]; then 231 | touch /etc/init.d/clouddrive 232 | cat > /etc/init.d/clouddrive << EOF 233 | #!/bin/sh /etc/rc.common 234 | 235 | USE_PROCD=1 236 | 237 | START=99 238 | STOP=99 239 | 240 | start_service() { 241 | procd_open_instance 242 | procd_set_param command $INSTALL_PATH/clouddrive 243 | procd_set_param respawn 244 | procd_set_param pidfile /var/run/clouddrive.pid 245 | procd_close_instance 246 | } 247 | EOF 248 | chmod +x /etc/init.d/clouddrive 249 | /etc/init.d/clouddrive start 250 | /etc/init.d/clouddrive enable 251 | else 252 | cat >/etc/systemd/system/clouddrive.service </dev/null 2>&1 269 | systemctl enable clouddrive >/dev/null 2>&1 270 | fi 271 | elif [[ "$os_type" == "Darwin" ]]; then 272 | cat >$HOME/Library/LaunchAgents/clouddrive.plist < 274 | 275 | 276 | 277 | Label 278 | clouddirve 279 | KeepAlive 280 | 281 | ProcessType 282 | Background 283 | RunAtLoad 284 | 285 | WorkingDirectory 286 | $INSTALL_PATH 287 | ProgramArguments 288 | 289 | $INSTALL_PATH/clouddrive 290 | 291 | 292 | 293 | EOF 294 | launchctl load $HOME/Library/LaunchAgents/clouddrive.plist 295 | launchctl start $HOME/Library/LaunchAgents/clouddrive.plist 296 | fi 297 | } 298 | 299 | SUCCESS() { 300 | clear 301 | echo -e "\xe8\xb4\xad\xe4\xb9\xb0\xe4\xbc\x9a\xe5\x91\x98\xe5\xa1\xab\xe6\x8e\ 302 | \xa8\xe8\x8d\x90\xe7\xa0\x81\xe6\x9c\x80\xe9\xab\x98\xe4\xbc\x98\xe6\ 303 | \x83\xa0${GREEN_COLOR}\x31\x30\x30\xe5\x85\x83${RES}" 304 | echo -e "\xe4\xbc\x98\xe6\x83\xa0\xe7\xa0\x81\xef\xbc\x9a${GREEN_COLOR}\x58\x6d\x33\x4b\x32\x35\x44\x33${RES}\r\n" 305 | echo -e "${GREEN_COLOR}clouddrive2 安装成功!${RES}" 306 | echo -e "访问地址:${GREEN_COLOR}http://$(get-local-ipv4-select):19798/${RES}\r\n" 307 | } 308 | 309 | UNINSTALL() { 310 | if [ "$check_docker" == "exist" ]; then 311 | if docker ps -a --format "{{.Names}}" | grep -q "clouddrive"; then 312 | docker stop clouddrive 313 | docker rm clouddrive 314 | echo "clouddrive 服务已停止并移除" 315 | docker images --format "{{.Repository}}:{{.Tag}}" | grep "cloudnas/clouddrive2" | xargs docker rmi 316 | echo "clouddrive 镜像已移除" 317 | fi 318 | else 319 | echo -e "\r\n${GREEN_COLOR}卸载 clouddrive2 ...${RES}\r\n" 320 | echo -e "${GREEN_COLOR}停止进程${RES}" 321 | if [[ "$os_type" == "Darwin" ]]; then 322 | launchctl unload $HOME/Library/LaunchAgents/clouddrive.plist >/dev/null 2>&1 323 | launchctl stop $HOME/Library/LaunchAgents/clouddrive.plist >/dev/null 2>&1 324 | echo -e "${GREEN_COLOR}清除残留文件${RES}" 325 | rm -rf $INSTALL_PATH $HOME/Library/LaunchAgents/clouddrive.plist 326 | launchctl load $HOME/Library/LaunchAgents/clouddrive.plist >/dev/null 2>&1 327 | else 328 | if [[ "$check_procd" == "exist" ]]; then 329 | /etc/init.d/clouddrive stop 330 | /etc/init.d/clouddrive disable 331 | rm -rf $INSTALL_PATH "/etc/init.d/clouddrive" 332 | else 333 | systemctl stop clouddrive >/dev/null 2>&1 334 | systemctl disable clouddrive >/dev/null 2>&1 335 | echo -e "${GREEN_COLOR}清除残留文件${RES}" 336 | rm -rf $INSTALL_PATH "/etc/systemd/system/clouddrive.service" 337 | systemctl daemon-reload 338 | fi 339 | fi 340 | fi 341 | echo -e "\r\n${GREEN_COLOR}clouddrive2 已在系统中移除!${RES}\r\n" 342 | } 343 | 344 | 345 | # CURL 进度显示 346 | if curl --help | grep progress-bar >/dev/null 2>&1; then # $CURL_BAR 347 | CURL_BAR="--progress-bar" 348 | fi 349 | 350 | # The temp directory must exist 351 | if [ ! -d "/tmp" ]; then 352 | mkdir -p /tmp 353 | fi 354 | 355 | # Fuck bt.cn (BT will use chattr to lock the php isolation config) 356 | chattr -i -R $INSTALL_PATH >/dev/null 2>&1 357 | 358 | if [ "$1" = "uninstall" ]; then 359 | UNINSTALL 360 | elif [ "$1" = "install" ]; then 361 | if [ "$check_docker" == "exist" ]; then 362 | DOCKER 363 | SUCCESS 364 | else 365 | CHECK 366 | INSTALL 367 | SESSIONS 368 | if [ -f "$INSTALL_PATH/clouddrive" ]; then 369 | SUCCESS 370 | else 371 | echo -e "${RED_COLOR} 安装失败${RES}" 372 | fi 373 | fi 374 | else 375 | echo -e "${RED_COLOR} 错误的命令${RES}" 376 | fi 377 | -------------------------------------------------------------------------------- /images/mac1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/mac1.png -------------------------------------------------------------------------------- /images/mac2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/mac2.png -------------------------------------------------------------------------------- /images/op1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/op1.png -------------------------------------------------------------------------------- /images/op2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/op2.png -------------------------------------------------------------------------------- /images/termux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/termux.png -------------------------------------------------------------------------------- /images/update1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/update1.png -------------------------------------------------------------------------------- /images/update2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cshczh/clouddrive2/6f57bee99d1d0ec6733377483696d480752de159/images/update2.png --------------------------------------------------------------------------------