以下教程,实现在Mac下,通过rclone挂载webdav,并自行判断是局域网和外网,自动加载不同脚本。
一、安装rclone与macfuse,网上有教程,自行搜索。
二、新建switch_webdav.sh,代码如下:

#!/bin/bash

# 定义变量
LOCAL_IP="10.110.1."
CURRENT_IP=$(ipconfig getifaddr en0)
MOUNT_POINT="$HOME/NAS"
LOG_FILE="$HOME/webdav_mount.log"

# 确保挂载目录存在
mkdir -p "$MOUNT_POINT"

# 检查当前 IP 地址,判断是否在内网
if [[ $CURRENT_IP == $LOCAL_IP* ]]; then
    echo "$(date) - 当前在内网,挂载本地 NAS" | tee -a "$LOG_FILE"
    rclone mount --daemon --allow-other --vfs-read-chunk-size=32M --poll-interval 15s --vfs-cache-mode writes --disable About nas_local:/ "$MOUNT_POINT"
else
    echo "$(date) - 当前在外网,挂载公网 NAS" | tee -a "$LOG_FILE"
    rclone mount nas_remote:/ "$MOUNT_POINT" --daemon
sudo rclone mount --daemon --allow-other --vfs-read-chunk-size=32M --poll-interval 15s --vfs-cache-mode writes --disable About nas_remote:/ "$MOUNT_POINT"
fi

三、通过crontab实现定时检测。

*/5 * * * * ~/switch_webdav.sh
Last modification:March 28th, 2025 at 10:02 pm
如果觉得我的文章对你有用,请随意赞赏