Fork me on GitHub

Mac开机自启挂载WebDav

开机自动挂载WebDav

安装rclone

# 安装 rclone 和 macfuse
# brew install rclone无法使用从官网下载
curl https://downloads.rclone.org/rclone-current-osx-amd64.zip -o rclone.zip
unzip rclone.zip
cd rclone-*-osx-amd64
sudo cp rclone /usr/local/bin/
rclone version

#安装macfuse
brew install --cask macfuse

创建配置

# 创建配置
rclone config    # 或手动编辑vi ~/.config/rclone/rclone.conf

创建配置时会要求输入webdav的url,用户名、密码。

[webdav]
type = webdav
url = https://your.webdav.server/path
vendor = other
user = your-username
pass = your-password(rclone obscure 密码获得)

手动挂载配置文件中的远程连接

手动测试挂载WebDav

#webdav对应上面配置文件中的[webdav]
rclone mount webdav: $HOME/WebDAVDrive \
  --vfs-cache-mode minimal \
  --dir-cache-time 1h \
  --allow-other

需要启用内核扩展
image

挂载WebDav脚本

nano ~/mount-webdav.sh   # 粘贴脚本内容
chmod +x ~/mount-webdav.sh

脚本内容如下

#!/bin/bash

MOUNT_POINT="$HOME/WebDAVDrive"
REMOTE_NAME="webdav"

# 检查挂载点是否存在,不存在则创建
[ ! -d "$MOUNT_POINT" ] && mkdir -p "$MOUNT_POINT"

# 检查是否已挂载
mount | grep "$MOUNT_POINT" > /dev/null
if [ $? -eq 0 ]; then
    echo "$MOUNT_POINT is already mounted."
    exit 0
fi

# 执行挂载
rclone mount "$REMOTE_NAME": "$MOUNT_POINT" \
  --vfs-cache-mode minimal \
  --allow-other \
  --dir-cache-time 12h \
  --poll-interval 1m \
  --log-file "$HOME/rclone-webdav.log" \
  --daemon

echo "WebDAV mounted to $MOUNT_POINT"

测试挂载

# 测试挂载
~/mount-webdav.sh
#卸载
umount ~/WebDAVDrive

开机自启

#进入到~/Library/LaunchAgents目录下面
cd ~/Library/LaunchAgents
#如果没有则新建
mkdir -p ~/Library/LaunchAgents
#新建 ~/Library/LaunchAgents/com.autumn.webdav.mount.plist并输入内容
cat <<EOF > ~/Library/LaunchAgents/com.autumn.webdav.mount.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.autumn.webdav.mount</string>

    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>$HOME/mount-webdav.sh</string>
    </array>

    <key>RunAtLoad</key>
    <true/>

    <key>StandardOutPath</key>
    <string>$HOME/mount-webdav.log</string>

    <key>StandardErrorPath</key>
    <string>$HOME/mount-webdav.err</string>
</dict>
</plist>
EOF

•RunAtLoad:表示开机或登录时自动运行。
•ProgramArguments:按数组形式写命令,每一段一个
•日志会写入 ~/mount-webdav.log 和 ~/mount-webdav.err。
注册开机启动任务

#加载 launchd 任务
launchctl load ~/Library/LaunchAgents/com.autumn.webdav.mount.plist
#禁用自启动
launchctl unload ~/Library/LaunchAgents/com.autumn.webdav.mount.plist
#查看是否生效
launchctl list | grep com.autumn.webdav.mount

设置通用里直接选择登录时打开

image

posted @ 2025-04-21 21:26  秋夜雨巷  阅读(738)  评论(0)    收藏  举报