Files
backup_OBS/readme.md
T
2026-03-16 16:33:04 +08:00

96 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# backup_OBS
基于 `bash + obsutil` 的 OBS 备份脚本,包含备份上传和历史清理两个入口:
- `backup.sh`:打包目录、生成 `sha256`、上传到 OBS、下载远端校验文件做一致性校验
- `clean_backups.sh`:按文件名日期清理旧备份
## 配置
先复制模板并填写实际配置:
```bash
cp env.conf.example env.conf
```
重点配置项:
- `OBS_BUCKET`OBS 桶名
- `LABEL`:机器或业务标识
- `BACKUP_DIR`:要备份的目录,当前格式为以空格分隔的路径列表
- `TG_BOT_TOKEN` / `TG_USER_ID`Telegram 通知配置,可留空
## 使用方式
备份:
```bash
./backup.sh
```
仅做打包自检,不上传:
```bash
./backup.sh --dry-run
```
检查远端前缀是否可访问:
```bash
./backup.sh --verify
```
清理旧备份:
```bash
./clean_backups.sh --retain-days=5
```
## exclude.list 规则
`exclude.list``tar --exclude-from` 读取,匹配的是归档内的相对路径,不是磁盘上的绝对路径。
不要写:
```text
/root/data/project/src/main.js
cache/
```
应该写相对路径或通配规则。
排除单个文件:
```text
project/src/main.js
```
或者:
```text
*/project/src/main.js
```
排除某类文件:
```text
*.log
*.tmp
```
排除一个目录,建议写两行:
```text
*/node_modules
*/node_modules/*
```
例如排除 `project/cache`
```text
*/project/cache
*/project/cache/*
```
当前自带的 `exclude.list` 已对常见目录采用这种写法,避免 `.cache/``node_modules/` 这类规则匹配不到的问题。