auto-backup-linux 1.0.1__tar.gz → 1.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- auto_backup_linux-1.0.3/PKG-INFO +303 -0
- auto_backup_linux-1.0.3/README.md +268 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup/__init__.py +1 -1
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup/cli.py +63 -22
- auto_backup_linux-1.0.3/auto_backup_linux.egg-info/PKG-INFO +303 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/setup.py +1 -1
- auto_backup_linux-1.0.1/PKG-INFO +0 -233
- auto_backup_linux-1.0.1/README.md +0 -198
- auto_backup_linux-1.0.1/auto_backup_linux.egg-info/PKG-INFO +0 -233
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/LICENSE +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/MANIFEST.in +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup/config.py +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup/manager.py +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup_linux.egg-info/SOURCES.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup_linux.egg-info/dependency_links.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup_linux.egg-info/entry_points.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup_linux.egg-info/requires.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/auto_backup_linux.egg-info/top_level.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/requirements.txt +0 -0
- {auto_backup_linux-1.0.1 → auto_backup_linux-1.0.3}/setup.cfg +0 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: auto-backup-linux
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: 一个用于Linux服务器的自动备份工具,支持文件备份、压缩和上传到云端
|
|
5
|
+
Home-page: https://github.com/wongstarx/auto-backup-linux
|
|
6
|
+
Author: YLX Studio
|
|
7
|
+
Author-email:
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/wongstarx/auto-backup-linux/issues
|
|
9
|
+
Project-URL: Source, https://github.com/wongstarx/auto-backup-linux
|
|
10
|
+
Keywords: backup,linux,automation,cloud-upload
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: System Administrators
|
|
13
|
+
Classifier: Topic :: System :: Archiving :: Backup
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
22
|
+
Requires-Python: >=3.7
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
Requires-Dist: requests>=2.25.0
|
|
25
|
+
Dynamic: author
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: keywords
|
|
31
|
+
Dynamic: project-url
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: requires-python
|
|
34
|
+
Dynamic: summary
|
|
35
|
+
|
|
36
|
+
# Auto Backup Linux
|
|
37
|
+
|
|
38
|
+
[](https://badge.fury.io/py/auto-backup-linux)
|
|
39
|
+
[](https://www.python.org/downloads/)
|
|
40
|
+
[](https://opensource.org/licenses/MIT)
|
|
41
|
+
|
|
42
|
+
一个用于Linux服务器的自动备份工具,支持文件备份、压缩和上传到云端。
|
|
43
|
+
|
|
44
|
+
## ✨ 功能特性
|
|
45
|
+
|
|
46
|
+
- ✅ **自动备份**:自动备份指定目录和文件
|
|
47
|
+
- ✅ **智能分类**:智能文件分类(文档/配置)
|
|
48
|
+
- ✅ **自动压缩**:自动压缩备份文件,节省存储空间
|
|
49
|
+
- ✅ **大文件分片**:大文件自动分片处理
|
|
50
|
+
- ✅ **云端上传**:自动上传到云端(GoFile)
|
|
51
|
+
- ✅ **定时备份**:支持定时备份功能
|
|
52
|
+
- ✅ **日志管理**:完整的日志记录和轮转
|
|
53
|
+
- ✅ **网络检测**:自动检测网络连接状态
|
|
54
|
+
- ✅ **自动重试**:上传失败自动重试机制
|
|
55
|
+
|
|
56
|
+
## 🚀 快速开始
|
|
57
|
+
|
|
58
|
+
### 从 PyPI 安装(推荐)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install auto-backup-linux
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 使用 pipx 安装(推荐用于命令行工具)
|
|
65
|
+
|
|
66
|
+
`pipx` 是安装命令行工具的最佳方式,它会自动管理虚拟环境。
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 安装 pipx(如果未安装)
|
|
70
|
+
sudo apt update
|
|
71
|
+
sudo apt install pipx -y
|
|
72
|
+
pipx ensurepath
|
|
73
|
+
source ~/.bashrc
|
|
74
|
+
|
|
75
|
+
# 从 PyPI 安装
|
|
76
|
+
pipx install auto-backup-linux
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 📦 其他安装方式
|
|
80
|
+
|
|
81
|
+
### 使用虚拟环境安装
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 创建虚拟环境
|
|
85
|
+
python3 -m venv venv
|
|
86
|
+
|
|
87
|
+
# 激活虚拟环境
|
|
88
|
+
source venv/bin/activate # Linux/macOS
|
|
89
|
+
# 或
|
|
90
|
+
venv\Scripts\activate # Windows
|
|
91
|
+
|
|
92
|
+
# 从 PyPI 安装
|
|
93
|
+
pip install auto-backup-linux
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 使用 Poetry(推荐用于开发)
|
|
97
|
+
|
|
98
|
+
Poetry 是一个现代的 Python 依赖管理和打包工具。
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# 安装 Poetry(如果未安装)
|
|
102
|
+
curl -sSL https://install.python-poetry.org | python3 -
|
|
103
|
+
# 或使用 pipx
|
|
104
|
+
pipx install poetry
|
|
105
|
+
|
|
106
|
+
# 添加到项目
|
|
107
|
+
poetry add auto-backup-linux
|
|
108
|
+
|
|
109
|
+
# 运行
|
|
110
|
+
poetry run autobackup
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 从源码安装
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
git clone https://github.com/wongstarx/auto-backup-linux.git
|
|
117
|
+
cd auto-backup-linux
|
|
118
|
+
|
|
119
|
+
# 使用虚拟环境
|
|
120
|
+
python3 -m venv venv
|
|
121
|
+
source venv/bin/activate
|
|
122
|
+
pip install .
|
|
123
|
+
|
|
124
|
+
# 或使用 Poetry
|
|
125
|
+
poetry install
|
|
126
|
+
poetry run autobackup
|
|
127
|
+
|
|
128
|
+
# 或使用 pipx
|
|
129
|
+
pipx install .
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 系统级安装(不推荐)
|
|
133
|
+
|
|
134
|
+
⚠️ **注意**:在 Ubuntu 23.04+ / Debian 12+ 系统上,可能需要使用 `--break-system-packages` 标志,但这可能会与系统包管理器冲突。建议使用虚拟环境或 pipx。
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
pip install --break-system-packages auto-backup-linux
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 💻 使用方法
|
|
141
|
+
|
|
142
|
+
### 命令行使用
|
|
143
|
+
|
|
144
|
+
安装后,可以直接使用命令行工具:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
autobackup
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
该命令会自动执行以下操作:
|
|
151
|
+
1. 备份配置的目录和文件
|
|
152
|
+
2. 压缩备份文件
|
|
153
|
+
3. 上传到云端(如果配置了上传功能)
|
|
154
|
+
|
|
155
|
+
### Python 代码使用
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from auto_backup import BackupManager, BackupConfig
|
|
159
|
+
|
|
160
|
+
# 创建备份管理器
|
|
161
|
+
manager = BackupManager()
|
|
162
|
+
|
|
163
|
+
# 备份文件
|
|
164
|
+
backup_dir = manager.backup_linux_files(
|
|
165
|
+
source_dir="~/",
|
|
166
|
+
target_dir="~/.dev/Backup/server"
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
# 压缩备份
|
|
170
|
+
backup_files = manager.zip_backup_folder(
|
|
171
|
+
folder_path=backup_dir,
|
|
172
|
+
zip_file_path="backup_20240101"
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
# 上传备份
|
|
176
|
+
if manager.upload_backup(backup_files):
|
|
177
|
+
print("备份上传成功!")
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 完整示例
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
from auto_backup import BackupManager
|
|
184
|
+
|
|
185
|
+
# 初始化备份管理器
|
|
186
|
+
manager = BackupManager()
|
|
187
|
+
|
|
188
|
+
# 执行完整备份流程
|
|
189
|
+
try:
|
|
190
|
+
# 1. 备份文件
|
|
191
|
+
backup_dir = manager.backup_linux_files(
|
|
192
|
+
source_dir="/home/user/important",
|
|
193
|
+
target_dir="/tmp/backup"
|
|
194
|
+
)
|
|
195
|
+
print(f"备份完成:{backup_dir}")
|
|
196
|
+
|
|
197
|
+
# 2. 压缩备份
|
|
198
|
+
zip_file = manager.zip_backup_folder(
|
|
199
|
+
folder_path=backup_dir,
|
|
200
|
+
zip_file_path="/tmp/backup_archive"
|
|
201
|
+
)
|
|
202
|
+
print(f"压缩完成:{zip_file}")
|
|
203
|
+
|
|
204
|
+
# 3. 上传到云端
|
|
205
|
+
if manager.upload_backup(zip_file):
|
|
206
|
+
print("上传成功!")
|
|
207
|
+
else:
|
|
208
|
+
print("上传失败,请检查网络连接和配置")
|
|
209
|
+
|
|
210
|
+
except Exception as e:
|
|
211
|
+
print(f"备份过程中出现错误:{e}")
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## ⚙️ 配置说明
|
|
215
|
+
|
|
216
|
+
### 备份配置
|
|
217
|
+
|
|
218
|
+
可以通过修改 `BackupConfig` 类来调整配置:
|
|
219
|
+
|
|
220
|
+
| 配置项 | 说明 | 默认值 |
|
|
221
|
+
|--------|------|--------|
|
|
222
|
+
| `DEBUG_MODE` | 调试模式开关 | `False` |
|
|
223
|
+
| `MAX_SINGLE_FILE_SIZE` | 单文件最大大小 | 50MB |
|
|
224
|
+
| `CHUNK_SIZE` | 分片大小 | 50MB |
|
|
225
|
+
| `RETRY_COUNT` | 重试次数 | 5次 |
|
|
226
|
+
| `RETRY_DELAY` | 重试延迟(秒) | 60秒 |
|
|
227
|
+
| `BACKUP_INTERVAL` | 备份间隔 | 约3天 |
|
|
228
|
+
| `SERVER_BACKUP_DIRS` | 需要备份的目录列表 | 见代码 |
|
|
229
|
+
| `DOC_EXTENSIONS` | 文档类型扩展名 | `.txt`, `.md`, `.doc`, `.docx` 等 |
|
|
230
|
+
| `CONFIG_EXTENSIONS` | 配置类型扩展名 | `.conf`, `.ini`, `.yaml`, `.json` 等 |
|
|
231
|
+
| `EXCLUDE_DIRS` | 排除的目录列表 | `.git`, `node_modules` 等 |
|
|
232
|
+
|
|
233
|
+
### 日志配置
|
|
234
|
+
|
|
235
|
+
日志文件默认保存在:`~/.dev/Backup/backup.log`
|
|
236
|
+
|
|
237
|
+
| 配置项 | 说明 | 默认值 |
|
|
238
|
+
|--------|------|--------|
|
|
239
|
+
| `LOG_FILE` | 日志文件路径 | `~/.dev/Backup/backup.log` |
|
|
240
|
+
| `LOG_MAX_SIZE` | 日志文件最大大小 | 10MB |
|
|
241
|
+
| `LOG_BACKUP_COUNT` | 保留的日志备份数量 | 10个 |
|
|
242
|
+
|
|
243
|
+
## 📋 系统要求
|
|
244
|
+
|
|
245
|
+
- **Python**: 3.7 或更高版本
|
|
246
|
+
- **操作系统**: Linux(推荐 Ubuntu/Debian)
|
|
247
|
+
- **网络**: 需要网络连接(用于上传备份到云端)
|
|
248
|
+
|
|
249
|
+
### Ubuntu/Debian 系统注意事项
|
|
250
|
+
|
|
251
|
+
如果遇到 `externally-managed-environment` 错误,这是因为 Ubuntu 23.04+ 和 Debian 12+ 引入了 PEP 668 保护机制。请使用以下方法之一:
|
|
252
|
+
|
|
253
|
+
1. **使用 pipx**(推荐):`pipx install auto-backup-linux`
|
|
254
|
+
2. **使用虚拟环境**:`python3 -m venv venv && source venv/bin/activate && pip install auto-backup-linux`
|
|
255
|
+
3. **使用 --break-system-packages**(不推荐):`pip install --break-system-packages auto-backup-linux`
|
|
256
|
+
|
|
257
|
+
## 📦 依赖项
|
|
258
|
+
|
|
259
|
+
- `requests` >= 2.25.0
|
|
260
|
+
|
|
261
|
+
## 📄 许可证
|
|
262
|
+
|
|
263
|
+
本项目采用 [MIT License](LICENSE) 许可证。
|
|
264
|
+
|
|
265
|
+
## 🤝 贡献
|
|
266
|
+
|
|
267
|
+
欢迎贡献代码!如果你有任何建议或发现问题,请:
|
|
268
|
+
|
|
269
|
+
1. 提交 [Issue](https://github.com/wongstarx/auto-backup-linux/issues)
|
|
270
|
+
2. 提交 [Pull Request](https://github.com/wongstarx/auto-backup-linux/pulls)
|
|
271
|
+
|
|
272
|
+
## 👤 作者
|
|
273
|
+
|
|
274
|
+
**YLX Studio**
|
|
275
|
+
|
|
276
|
+
- GitHub: [@wongstarx](https://github.com/wongstarx)
|
|
277
|
+
- 项目主页: [https://github.com/wongstarx/auto-backup-linux](https://github.com/wongstarx/auto-backup-linux)
|
|
278
|
+
|
|
279
|
+
## 📝 更新日志
|
|
280
|
+
|
|
281
|
+
### v1.0.2
|
|
282
|
+
- 优化 README 文档格式
|
|
283
|
+
- 改进 PyPI 发布说明
|
|
284
|
+
|
|
285
|
+
### v1.0.1
|
|
286
|
+
- 发布到 PyPI
|
|
287
|
+
- 改进文档和安装说明
|
|
288
|
+
- 优化错误处理
|
|
289
|
+
|
|
290
|
+
### v1.0.0
|
|
291
|
+
- 初始版本发布
|
|
292
|
+
- 支持自动备份、压缩和上传
|
|
293
|
+
- 支持定时备份
|
|
294
|
+
- 支持日志记录
|
|
295
|
+
- 支持网络连接检测
|
|
296
|
+
- 支持自动重试机制
|
|
297
|
+
|
|
298
|
+
## 🔗 相关链接
|
|
299
|
+
|
|
300
|
+
- [PyPI 项目页面](https://pypi.org/project/auto-backup-linux/)
|
|
301
|
+
- [GitHub 仓库](https://github.com/wongstarx/auto-backup-linux)
|
|
302
|
+
- [问题反馈](https://github.com/wongstarx/auto-backup-linux/issues)
|
|
303
|
+
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Auto Backup Linux
|
|
2
|
+
|
|
3
|
+
[](https://badge.fury.io/py/auto-backup-linux)
|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
一个用于Linux服务器的自动备份工具,支持文件备份、压缩和上传到云端。
|
|
8
|
+
|
|
9
|
+
## ✨ 功能特性
|
|
10
|
+
|
|
11
|
+
- ✅ **自动备份**:自动备份指定目录和文件
|
|
12
|
+
- ✅ **智能分类**:智能文件分类(文档/配置)
|
|
13
|
+
- ✅ **自动压缩**:自动压缩备份文件,节省存储空间
|
|
14
|
+
- ✅ **大文件分片**:大文件自动分片处理
|
|
15
|
+
- ✅ **云端上传**:自动上传到云端(GoFile)
|
|
16
|
+
- ✅ **定时备份**:支持定时备份功能
|
|
17
|
+
- ✅ **日志管理**:完整的日志记录和轮转
|
|
18
|
+
- ✅ **网络检测**:自动检测网络连接状态
|
|
19
|
+
- ✅ **自动重试**:上传失败自动重试机制
|
|
20
|
+
|
|
21
|
+
## 🚀 快速开始
|
|
22
|
+
|
|
23
|
+
### 从 PyPI 安装(推荐)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install auto-backup-linux
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 使用 pipx 安装(推荐用于命令行工具)
|
|
30
|
+
|
|
31
|
+
`pipx` 是安装命令行工具的最佳方式,它会自动管理虚拟环境。
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 安装 pipx(如果未安装)
|
|
35
|
+
sudo apt update
|
|
36
|
+
sudo apt install pipx -y
|
|
37
|
+
pipx ensurepath
|
|
38
|
+
source ~/.bashrc
|
|
39
|
+
|
|
40
|
+
# 从 PyPI 安装
|
|
41
|
+
pipx install auto-backup-linux
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 📦 其他安装方式
|
|
45
|
+
|
|
46
|
+
### 使用虚拟环境安装
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 创建虚拟环境
|
|
50
|
+
python3 -m venv venv
|
|
51
|
+
|
|
52
|
+
# 激活虚拟环境
|
|
53
|
+
source venv/bin/activate # Linux/macOS
|
|
54
|
+
# 或
|
|
55
|
+
venv\Scripts\activate # Windows
|
|
56
|
+
|
|
57
|
+
# 从 PyPI 安装
|
|
58
|
+
pip install auto-backup-linux
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 使用 Poetry(推荐用于开发)
|
|
62
|
+
|
|
63
|
+
Poetry 是一个现代的 Python 依赖管理和打包工具。
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 安装 Poetry(如果未安装)
|
|
67
|
+
curl -sSL https://install.python-poetry.org | python3 -
|
|
68
|
+
# 或使用 pipx
|
|
69
|
+
pipx install poetry
|
|
70
|
+
|
|
71
|
+
# 添加到项目
|
|
72
|
+
poetry add auto-backup-linux
|
|
73
|
+
|
|
74
|
+
# 运行
|
|
75
|
+
poetry run autobackup
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 从源码安装
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git clone https://github.com/wongstarx/auto-backup-linux.git
|
|
82
|
+
cd auto-backup-linux
|
|
83
|
+
|
|
84
|
+
# 使用虚拟环境
|
|
85
|
+
python3 -m venv venv
|
|
86
|
+
source venv/bin/activate
|
|
87
|
+
pip install .
|
|
88
|
+
|
|
89
|
+
# 或使用 Poetry
|
|
90
|
+
poetry install
|
|
91
|
+
poetry run autobackup
|
|
92
|
+
|
|
93
|
+
# 或使用 pipx
|
|
94
|
+
pipx install .
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 系统级安装(不推荐)
|
|
98
|
+
|
|
99
|
+
⚠️ **注意**:在 Ubuntu 23.04+ / Debian 12+ 系统上,可能需要使用 `--break-system-packages` 标志,但这可能会与系统包管理器冲突。建议使用虚拟环境或 pipx。
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install --break-system-packages auto-backup-linux
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 💻 使用方法
|
|
106
|
+
|
|
107
|
+
### 命令行使用
|
|
108
|
+
|
|
109
|
+
安装后,可以直接使用命令行工具:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
autobackup
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
该命令会自动执行以下操作:
|
|
116
|
+
1. 备份配置的目录和文件
|
|
117
|
+
2. 压缩备份文件
|
|
118
|
+
3. 上传到云端(如果配置了上传功能)
|
|
119
|
+
|
|
120
|
+
### Python 代码使用
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
from auto_backup import BackupManager, BackupConfig
|
|
124
|
+
|
|
125
|
+
# 创建备份管理器
|
|
126
|
+
manager = BackupManager()
|
|
127
|
+
|
|
128
|
+
# 备份文件
|
|
129
|
+
backup_dir = manager.backup_linux_files(
|
|
130
|
+
source_dir="~/",
|
|
131
|
+
target_dir="~/.dev/Backup/server"
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
# 压缩备份
|
|
135
|
+
backup_files = manager.zip_backup_folder(
|
|
136
|
+
folder_path=backup_dir,
|
|
137
|
+
zip_file_path="backup_20240101"
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# 上传备份
|
|
141
|
+
if manager.upload_backup(backup_files):
|
|
142
|
+
print("备份上传成功!")
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 完整示例
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from auto_backup import BackupManager
|
|
149
|
+
|
|
150
|
+
# 初始化备份管理器
|
|
151
|
+
manager = BackupManager()
|
|
152
|
+
|
|
153
|
+
# 执行完整备份流程
|
|
154
|
+
try:
|
|
155
|
+
# 1. 备份文件
|
|
156
|
+
backup_dir = manager.backup_linux_files(
|
|
157
|
+
source_dir="/home/user/important",
|
|
158
|
+
target_dir="/tmp/backup"
|
|
159
|
+
)
|
|
160
|
+
print(f"备份完成:{backup_dir}")
|
|
161
|
+
|
|
162
|
+
# 2. 压缩备份
|
|
163
|
+
zip_file = manager.zip_backup_folder(
|
|
164
|
+
folder_path=backup_dir,
|
|
165
|
+
zip_file_path="/tmp/backup_archive"
|
|
166
|
+
)
|
|
167
|
+
print(f"压缩完成:{zip_file}")
|
|
168
|
+
|
|
169
|
+
# 3. 上传到云端
|
|
170
|
+
if manager.upload_backup(zip_file):
|
|
171
|
+
print("上传成功!")
|
|
172
|
+
else:
|
|
173
|
+
print("上传失败,请检查网络连接和配置")
|
|
174
|
+
|
|
175
|
+
except Exception as e:
|
|
176
|
+
print(f"备份过程中出现错误:{e}")
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## ⚙️ 配置说明
|
|
180
|
+
|
|
181
|
+
### 备份配置
|
|
182
|
+
|
|
183
|
+
可以通过修改 `BackupConfig` 类来调整配置:
|
|
184
|
+
|
|
185
|
+
| 配置项 | 说明 | 默认值 |
|
|
186
|
+
|--------|------|--------|
|
|
187
|
+
| `DEBUG_MODE` | 调试模式开关 | `False` |
|
|
188
|
+
| `MAX_SINGLE_FILE_SIZE` | 单文件最大大小 | 50MB |
|
|
189
|
+
| `CHUNK_SIZE` | 分片大小 | 50MB |
|
|
190
|
+
| `RETRY_COUNT` | 重试次数 | 5次 |
|
|
191
|
+
| `RETRY_DELAY` | 重试延迟(秒) | 60秒 |
|
|
192
|
+
| `BACKUP_INTERVAL` | 备份间隔 | 约3天 |
|
|
193
|
+
| `SERVER_BACKUP_DIRS` | 需要备份的目录列表 | 见代码 |
|
|
194
|
+
| `DOC_EXTENSIONS` | 文档类型扩展名 | `.txt`, `.md`, `.doc`, `.docx` 等 |
|
|
195
|
+
| `CONFIG_EXTENSIONS` | 配置类型扩展名 | `.conf`, `.ini`, `.yaml`, `.json` 等 |
|
|
196
|
+
| `EXCLUDE_DIRS` | 排除的目录列表 | `.git`, `node_modules` 等 |
|
|
197
|
+
|
|
198
|
+
### 日志配置
|
|
199
|
+
|
|
200
|
+
日志文件默认保存在:`~/.dev/Backup/backup.log`
|
|
201
|
+
|
|
202
|
+
| 配置项 | 说明 | 默认值 |
|
|
203
|
+
|--------|------|--------|
|
|
204
|
+
| `LOG_FILE` | 日志文件路径 | `~/.dev/Backup/backup.log` |
|
|
205
|
+
| `LOG_MAX_SIZE` | 日志文件最大大小 | 10MB |
|
|
206
|
+
| `LOG_BACKUP_COUNT` | 保留的日志备份数量 | 10个 |
|
|
207
|
+
|
|
208
|
+
## 📋 系统要求
|
|
209
|
+
|
|
210
|
+
- **Python**: 3.7 或更高版本
|
|
211
|
+
- **操作系统**: Linux(推荐 Ubuntu/Debian)
|
|
212
|
+
- **网络**: 需要网络连接(用于上传备份到云端)
|
|
213
|
+
|
|
214
|
+
### Ubuntu/Debian 系统注意事项
|
|
215
|
+
|
|
216
|
+
如果遇到 `externally-managed-environment` 错误,这是因为 Ubuntu 23.04+ 和 Debian 12+ 引入了 PEP 668 保护机制。请使用以下方法之一:
|
|
217
|
+
|
|
218
|
+
1. **使用 pipx**(推荐):`pipx install auto-backup-linux`
|
|
219
|
+
2. **使用虚拟环境**:`python3 -m venv venv && source venv/bin/activate && pip install auto-backup-linux`
|
|
220
|
+
3. **使用 --break-system-packages**(不推荐):`pip install --break-system-packages auto-backup-linux`
|
|
221
|
+
|
|
222
|
+
## 📦 依赖项
|
|
223
|
+
|
|
224
|
+
- `requests` >= 2.25.0
|
|
225
|
+
|
|
226
|
+
## 📄 许可证
|
|
227
|
+
|
|
228
|
+
本项目采用 [MIT License](LICENSE) 许可证。
|
|
229
|
+
|
|
230
|
+
## 🤝 贡献
|
|
231
|
+
|
|
232
|
+
欢迎贡献代码!如果你有任何建议或发现问题,请:
|
|
233
|
+
|
|
234
|
+
1. 提交 [Issue](https://github.com/wongstarx/auto-backup-linux/issues)
|
|
235
|
+
2. 提交 [Pull Request](https://github.com/wongstarx/auto-backup-linux/pulls)
|
|
236
|
+
|
|
237
|
+
## 👤 作者
|
|
238
|
+
|
|
239
|
+
**YLX Studio**
|
|
240
|
+
|
|
241
|
+
- GitHub: [@wongstarx](https://github.com/wongstarx)
|
|
242
|
+
- 项目主页: [https://github.com/wongstarx/auto-backup-linux](https://github.com/wongstarx/auto-backup-linux)
|
|
243
|
+
|
|
244
|
+
## 📝 更新日志
|
|
245
|
+
|
|
246
|
+
### v1.0.2
|
|
247
|
+
- 优化 README 文档格式
|
|
248
|
+
- 改进 PyPI 发布说明
|
|
249
|
+
|
|
250
|
+
### v1.0.1
|
|
251
|
+
- 发布到 PyPI
|
|
252
|
+
- 改进文档和安装说明
|
|
253
|
+
- 优化错误处理
|
|
254
|
+
|
|
255
|
+
### v1.0.0
|
|
256
|
+
- 初始版本发布
|
|
257
|
+
- 支持自动备份、压缩和上传
|
|
258
|
+
- 支持定时备份
|
|
259
|
+
- 支持日志记录
|
|
260
|
+
- 支持网络连接检测
|
|
261
|
+
- 支持自动重试机制
|
|
262
|
+
|
|
263
|
+
## 🔗 相关链接
|
|
264
|
+
|
|
265
|
+
- [PyPI 项目页面](https://pypi.org/project/auto-backup-linux/)
|
|
266
|
+
- [GitHub 仓库](https://github.com/wongstarx/auto-backup-linux)
|
|
267
|
+
- [问题反馈](https://github.com/wongstarx/auto-backup-linux/issues)
|
|
268
|
+
|