Update from Sync Service
This commit is contained in:
331
实践积累/AI工程/Rclone管理WebDAV笔记.md
Executable file
331
实践积累/AI工程/Rclone管理WebDAV笔记.md
Executable file
@@ -0,0 +1,331 @@
|
|||||||
|
# Rclone 管理 WebDAV 笔记
|
||||||
|
|
||||||
|
> 使用 rclone 命令行工具管理 Obsidian WebDAV 服务器
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ 实测成功!
|
||||||
|
|
||||||
|
**rclone 可以连接你的 WebDAV 服务器!**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 安装 rclone
|
||||||
|
|
||||||
|
### Linux/macOS/Windows
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 下载最新版本
|
||||||
|
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||||
|
unzip rclone-current-linux-amd64.zip
|
||||||
|
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
|
||||||
|
sudo chmod +x /usr/local/bin/rclone
|
||||||
|
rm -rf rclone-*-linux-amd64*
|
||||||
|
|
||||||
|
# 验证安装
|
||||||
|
rclone --version
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker 环境(无需安装)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 直接下载二进制文件
|
||||||
|
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||||
|
unzip rclone-current-linux-amd64.zip
|
||||||
|
./rclone-v*-linux-amd64/rclone --version
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 配置 WebDAV 远程
|
||||||
|
|
||||||
|
### 1. 交互式配置
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
# 步骤:
|
||||||
|
# n) 新建远程
|
||||||
|
# name: obsidian-webdav
|
||||||
|
# Storage: webdav
|
||||||
|
# URL: http://8.134.220.229:13803/实践积累
|
||||||
|
# vendor: other
|
||||||
|
# user: admin
|
||||||
|
# password: blackhill
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 手动创建配置文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/.config/rclone
|
||||||
|
|
||||||
|
cat > ~/.config/rclone/rclone.conf << 'EOF'
|
||||||
|
[obsidian-webdav]
|
||||||
|
type = webdav
|
||||||
|
url = http://8.134.220.229:13803/实践积累
|
||||||
|
vendor = other
|
||||||
|
user = admin
|
||||||
|
pass = blackhill
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ **注意**:某些 WebDAV 服务器不支持 Digest 认证,需要用 Basic 认证。
|
||||||
|
|
||||||
|
### 3. 测试连接
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 列出所有文件
|
||||||
|
rclone ls obsidian-webdav: --max-depth 5
|
||||||
|
|
||||||
|
# 列出所有文件夹
|
||||||
|
rclone lsd obsidian-webdav:
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
### 查看文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 列出根目录
|
||||||
|
rclone ls obsidian-webdav:
|
||||||
|
|
||||||
|
# 列出指定目录
|
||||||
|
rclone ls obsidian-webdav:AI工程
|
||||||
|
|
||||||
|
# 递归列出所有文件
|
||||||
|
rclone ls obsidian-webdav: --max-depth 10
|
||||||
|
|
||||||
|
# 按大小排序显示
|
||||||
|
rclone ls obsidian-webdav: --max-depth 1 | sort -k1 -n
|
||||||
|
```
|
||||||
|
|
||||||
|
### 上传文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 上传单个文件
|
||||||
|
rclone copy /path/to/file.md obsidian-webdav:目标文件夹/
|
||||||
|
|
||||||
|
# 上传整个目录
|
||||||
|
rclone copy /path/to/folder obsidian-webdav:目标文件夹/
|
||||||
|
|
||||||
|
# 示例:上传到 AI工程 文件夹
|
||||||
|
rclone copy ~/笔记/AI工程.md obsidian-webdav:AI工程/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 下载文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 下载单个文件
|
||||||
|
rclone copy obsidian-webdav:AI工程/code-reviewer技能.md /tmp/
|
||||||
|
|
||||||
|
# 下载整个文件夹
|
||||||
|
rclone copy obsidian-webdav:AI工程 /tmp/ai-folder/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 同步本地与远程
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 同步本地文件夹到 WebDAV(单向)
|
||||||
|
rclone sync /path/to/local obsidian-webdav:remote --progress
|
||||||
|
|
||||||
|
# 双向同步(需要小心使用)
|
||||||
|
rclone bisync /path/to/local obsidian-webdav:remote --progress
|
||||||
|
```
|
||||||
|
|
||||||
|
### 删除文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 删除远程文件
|
||||||
|
rclone delete obsidian-webdav:文件夹/文件名.md
|
||||||
|
|
||||||
|
# 删除空文件夹
|
||||||
|
rclone rmdir obsidian-webdav:空文件夹/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 搜索文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 搜索文件名包含关键字的文件
|
||||||
|
rclone ls obsidian-webdav: | grep "关键字"
|
||||||
|
|
||||||
|
# 搜索多个关键词
|
||||||
|
rclone ls obsidian-webdav: | grep -E "关键词1|关键词2"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 挂载为本地目录(可选)
|
||||||
|
|
||||||
|
将 WebDAV 挂载为本地文件夹,像操作本地文件一样使用。
|
||||||
|
|
||||||
|
### 需要 FUSE 支持
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Debian/Ubuntu 安装 fuse
|
||||||
|
sudo apt-get install fuse
|
||||||
|
|
||||||
|
# 检查 FUSE 可用
|
||||||
|
cat /proc/filesystems | grep fuse
|
||||||
|
```
|
||||||
|
|
||||||
|
### 挂载命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 创建挂载点
|
||||||
|
mkdir -p ~/obsidian-webdav
|
||||||
|
|
||||||
|
# 前台运行(测试用)
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
|
||||||
|
|
||||||
|
# 后台运行
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--daemon \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--allow-other
|
||||||
|
|
||||||
|
# 查看挂载状态
|
||||||
|
df -h | grep obsidian
|
||||||
|
|
||||||
|
# 卸载
|
||||||
|
fusermount -uz ~/obsidian-webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
### 开机自启(systemd)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
|
||||||
|
[Unit]
|
||||||
|
Description=rclone mount for Obsidian WebDAV
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--allow-other
|
||||||
|
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 启用服务
|
||||||
|
systemctl --user enable rclone-obsidian.service
|
||||||
|
systemctl --user start rclone-obsidian.service
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与 Obsidian Headless 配合使用
|
||||||
|
|
||||||
|
安装 rclone 后,可以配合 obsidian-headless 使用:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 挂载 WebDAV 为本地目录
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||||
|
|
||||||
|
# 2. 配置 obsidian-headless 使用该目录
|
||||||
|
echo "~/obsidian-webdav" > ~/.config/obsidian-headless/vault-path
|
||||||
|
|
||||||
|
# 3. 使用自然语言管理笔记
|
||||||
|
obs创建笔记 新想法
|
||||||
|
obs搜索笔记 关键字
|
||||||
|
obs列出所有
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 你的服务器配置
|
||||||
|
|
||||||
|
```
|
||||||
|
服务器: http://8.134.220.229:13803
|
||||||
|
路径: /实践积累
|
||||||
|
用户名: admin
|
||||||
|
密码: blackhill
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 连接返回 401 Unauthorized
|
||||||
|
|
||||||
|
**原因**:某些 WebDAV 服务器不支持 Digest 认证
|
||||||
|
|
||||||
|
**解决**:在配置文件中使用明文密码(rclone 会自动处理)
|
||||||
|
|
||||||
|
```
|
||||||
|
pass = blackhill # 不要加密
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 文件名中文乱码
|
||||||
|
|
||||||
|
**解决**:确保终端编码为 UTF-8
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export LANG=zh_CN.UTF-8
|
||||||
|
export LC_ALL=zh_CN.UTF-8
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 挂载后访问很慢
|
||||||
|
|
||||||
|
**解决**:使用 VFS 缓存模式
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--vfs-cache-max-age 168h \
|
||||||
|
--vfs-write-back 5s
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 挂载占用大量内存
|
||||||
|
|
||||||
|
**解决**:限制缓存大小
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--buffer-size 256M
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 完整工作流示例
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 配置远程
|
||||||
|
rclone config << 'EOF'
|
||||||
|
n
|
||||||
|
obsidian-webdav
|
||||||
|
webdav
|
||||||
|
http://8.134.220.229:13803/实践积累
|
||||||
|
other
|
||||||
|
admin
|
||||||
|
blackhill
|
||||||
|
y
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 2. 查看文件结构
|
||||||
|
rclone lsd obsidian-webdav:
|
||||||
|
|
||||||
|
# 3. 挂载为本地目录
|
||||||
|
mkdir -p ~/obsidian-webdav
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||||
|
|
||||||
|
# 4. 在 Obsidian 中直接使用
|
||||||
|
# 文件会自动同步到 WebDAV
|
||||||
|
|
||||||
|
# 5. 卸载
|
||||||
|
fusermount -uz ~/obsidian-webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 参考链接
|
||||||
|
|
||||||
|
- [rclone 官网](https://rclone.org)
|
||||||
|
- [rclone WebDAV 配置](https://rclone.org/webdav/)
|
||||||
|
- [obsidian-headless GitHub](https://github.com/imakid/obsidian-headless)
|
||||||
Reference in New Issue
Block a user