以下教程,实现在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