doc: 修改文档
这个提交包含在:
@@ -36,14 +36,14 @@ backup/
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 创建目录并下载脚本与示例配置
|
# 创建目录并下载脚本与示例配置
|
||||||
mkdir -p ~/backup && cd ~/backup
|
mkdir -p /opt/backup && cd /opt/backup
|
||||||
curl -fsSL -o backup.sh https://git.suhang.me/suhang/scripts/raw/branch/release/backup/backup.sh
|
curl -fsSL -o backup.sh https://git.suhang.me/suhang/scripts/raw/branch/release/backup/backup.sh
|
||||||
curl -fsSL -o backup.conf https://git.suhang.me/suhang/scripts/raw/branch/release/backup/backup.conf
|
curl -fsSL -o backup.conf https://git.suhang.me/suhang/scripts/raw/branch/release/backup/backup.conf
|
||||||
chmod +x backup.sh
|
chmod +x backup.sh
|
||||||
chmod 600 backup.conf
|
chmod 600 backup.conf
|
||||||
|
|
||||||
# 编辑 backup.conf 后执行
|
# 编辑 backup.conf 后执行
|
||||||
bash backup.sh smb
|
bash /opt/backup/backup.sh smb
|
||||||
```
|
```
|
||||||
|
|
||||||
也可改用 `wget`:
|
也可改用 `wget`:
|
||||||
@@ -224,24 +224,52 @@ rclone lsd gdrive: # 验证可访问
|
|||||||
|
|
||||||
```cron
|
```cron
|
||||||
# 每天 03:10 跑一次
|
# 每天 03:10 跑一次
|
||||||
10 3 * * * /bin/bash /path/to/backup/backup.sh smb > /var/log/backup.log 2>&1
|
10 3 * * * /bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
|
|
||||||
# 每天 03:17 跑一次
|
# 每天 03:17 跑一次
|
||||||
17 3 * * * /bin/bash /path/to/backup/backup.sh smb > /var/log/backup.log 2>&1
|
17 3 * * * /bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
|
|
||||||
# 每两天 03:10 跑一次(按月内的奇数日触发:1、3、5……29、31)
|
# 每两天 03:10 跑一次(按月内的奇数日触发:1、3、5……29、31)
|
||||||
10 3 */2 * * /bin/bash /path/to/backup/backup.sh smb > /var/log/backup.log 2>&1
|
10 3 */2 * * /bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
|
|
||||||
# 每 5 天 03:10 跑一次(按月内日期号取模:1、6、11、16、21、26、31)
|
# 每 5 天 03:10 跑一次(按月内日期号取模:1、6、11、16、21、26、31)
|
||||||
10 3 */5 * * /bin/bash /path/to/backup/backup.sh smb > /var/log/backup.log 2>&1
|
10 3 */5 * * /bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
> `*/N` 是按月内日期号取模,并不是严格意义的「每 N×24 小时」。月末跨月时会出现间隔被截短的情况(例如 `*/5` 在 31 号触发后,次月 1 号又会触发);如对间隔严格要求,建议改用 systemd timer 的 `OnUnitActiveSec=5d`。
|
> `*/N` 是按月内日期号取模,并不是严格意义的「每 N×24 小时」。月末跨月时会出现间隔被截短的情况(例如 `*/5` 在 31 号触发后,次月 1 号又会触发);如对间隔严格要求,建议改用 systemd timer 的 `OnUnitActiveSec=5d`。
|
||||||
|
|
||||||
> 如果有多条任务都写到同一个日志文件,请改用不同的日志路径(例如 `/var/log/backup-0310.log`、`/var/log/backup-0317.log`),否则后一次会覆盖前一次。
|
> 如果有多条任务都写到同一个日志文件,请改用不同的日志路径(例如 `/opt/backup/backup-0310.log`、`/opt/backup/backup-0317.log`),否则后一次会覆盖前一次。
|
||||||
|
|
||||||
macOS 可用 `launchd` 或 `cron`(需要在「系统设置 → 隐私与安全性 → 完全磁盘访问权限」中授予 `cron` 权限以读取受保护目录)。
|
macOS 可用 `launchd` 或 `cron`(需要在「系统设置 → 隐私与安全性 → 完全磁盘访问权限」中授予 `cron` 权限以读取受保护目录)。
|
||||||
|
|
||||||
|
### 立即执行一次验证
|
||||||
|
|
||||||
|
写完 cron 后建议先手动跑一遍验证,避免等到凌晨才发现配置问题(密码、网络、目录权限等)。
|
||||||
|
|
||||||
|
**方法 A**:直接照搬 cron 那行命令在终端跑一次,看日志是否完整:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
|
tail -n 80 /opt/backup/backup.log
|
||||||
|
```
|
||||||
|
|
||||||
|
**方法 B**:用 cron 自身的环境跑一次(更接近真实定时执行的环境,能复现 PATH / 语言区域等差异)。临时把 cron 改成「下一分钟」触发:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 假设当前时间 21:34,把 cron 改成 21:35 跑一次
|
||||||
|
crontab -e
|
||||||
|
# 临时改成: 35 21 * * * /bin/bash /opt/backup/backup.sh smb > /opt/backup/backup.log 2>&1
|
||||||
|
# 等一分钟后:
|
||||||
|
tail -f /opt/backup/backup.log
|
||||||
|
# 验证通过后再 crontab -e 恢复成原计划(例如 10 3 * * *)
|
||||||
|
```
|
||||||
|
|
||||||
|
**方法 C**(最干脆):debug 模式直接前台跑,进度全在终端:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash /opt/backup/backup.sh smb --debug
|
||||||
|
```
|
||||||
|
|
||||||
## 远端目录结构
|
## 远端目录结构
|
||||||
|
|
||||||
每次备份在远端创建一个独立子目录(SMB 与 rclone 行为一致),内含分卷文件与 SHA256 清单:
|
每次备份在远端创建一个独立子目录(SMB 与 rclone 行为一致),内含分卷文件与 SHA256 清单:
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户