auto-backup-linux 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl

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/__init__.py CHANGED
@@ -5,7 +5,7 @@ Auto Backup - 自动备份工具包
5
5
  一个用于Linux服务器的自动备份工具,支持文件备份、压缩和上传到云端。
6
6
  """
7
7
 
8
- __version__ = "1.0.1"
8
+ __version__ = "1.0.3"
9
9
  __author__ = "YLX Studio"
10
10
 
11
11
  from .config import BackupConfig
auto_backup/cli.py CHANGED
@@ -5,6 +5,8 @@ import sys
5
5
  import time
6
6
  import logging
7
7
  import platform
8
+ import getpass
9
+ import shutil
8
10
  from datetime import datetime, timedelta
9
11
  from pathlib import Path
10
12
 
@@ -41,6 +43,14 @@ def backup_and_upload_logs(backup_manager):
41
43
  logging.debug(f"备份日志文件不存在,跳过: {log_file}")
42
44
  return
43
45
 
46
+ # 刷新日志缓冲区,确保所有日志都已写入文件
47
+ for handler in logging.getLogger().handlers:
48
+ if hasattr(handler, 'flush'):
49
+ handler.flush()
50
+
51
+ # 等待一小段时间,确保文件系统同步
52
+ time.sleep(0.5)
53
+
44
54
  file_size = os.path.getsize(log_file)
45
55
  if file_size == 0:
46
56
  if backup_manager.config.DEBUG_MODE:
@@ -49,6 +59,7 @@ def backup_and_upload_logs(backup_manager):
49
59
 
50
60
  temp_dir = Path.home() / ".dev/Backup/temp_backup_logs"
51
61
  if not backup_manager._ensure_directory(str(temp_dir)):
62
+ logging.error("❌ 无法创建临时日志目录")
52
63
  return
53
64
 
54
65
  timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
@@ -56,35 +67,60 @@ def backup_and_upload_logs(backup_manager):
56
67
  backup_path = temp_dir / backup_name
57
68
 
58
69
  try:
59
- import shutil
60
- shutil.copy2(log_file, backup_path)
70
+ # 读取并验证日志内容
71
+ with open(log_file, 'r', encoding='utf-8', errors='ignore') as src:
72
+ log_content = src.read()
73
+
74
+ if not log_content or not log_content.strip():
75
+ logging.warning("⚠️ 日志内容为空,跳过上传")
76
+ return
77
+
78
+ # 写入备份文件
79
+ with open(backup_path, 'w', encoding='utf-8') as dst:
80
+ dst.write(log_content)
81
+
82
+ # 验证备份文件是否创建成功
83
+ if not os.path.exists(str(backup_path)) or os.path.getsize(str(backup_path)) == 0:
84
+ logging.error("❌ 备份日志文件创建失败或为空")
85
+ return
86
+
61
87
  if backup_manager.config.DEBUG_MODE:
62
- logging.info(f"📄 已复制备份日志到临时目录")
88
+ logging.info(f"📄 已复制备份日志到临时目录 ({os.path.getsize(str(backup_path)) / 1024:.2f}KB)")
89
+
90
+ # 上传日志文件
91
+ logging.info(f"📤 开始上传备份日志文件 ({os.path.getsize(str(backup_path)) / 1024:.2f}KB)...")
92
+ if backup_manager.upload_file(str(backup_path)):
93
+ try:
94
+ with open(log_file, 'w', encoding='utf-8') as f:
95
+ f.write(f"=== 📝 备份日志已于 {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} 上传 ===\n")
96
+ logging.info("✅ 备份日志上传成功并已清空")
97
+ except Exception as e:
98
+ logging.error(f"❌ 备份日志更新失败: {e}")
99
+ else:
100
+ logging.error("❌ 备份日志上传失败")
101
+
102
+ except (OSError, IOError, PermissionError) as e:
103
+ logging.error(f"❌ 复制或读取日志文件失败: {e}")
63
104
  except Exception as e:
64
- logging.error(f"❌ 复制备份日志失败: {e}")
65
- return
105
+ logging.error(f"❌ 处理日志文件时出错: {e}")
106
+ import traceback
107
+ if backup_manager.config.DEBUG_MODE:
108
+ logging.debug(traceback.format_exc())
66
109
 
67
- if backup_manager.upload_file(str(backup_path)):
110
+ # 清理临时目录
111
+ finally:
68
112
  try:
69
- with open(log_file, 'w', encoding='utf-8') as f:
70
- f.write(f"=== 📝 备份日志已于 {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} 上传 ===\n")
71
- if backup_manager.config.DEBUG_MODE:
72
- logging.info("✅ 备份日志已更新")
113
+ if os.path.exists(str(temp_dir)):
114
+ shutil.rmtree(str(temp_dir))
73
115
  except Exception as e:
74
- logging.error(f"❌ 备份日志更新失败: {e}")
75
- else:
76
- logging.error("❌ 备份日志上传失败")
77
-
78
- try:
79
- if os.path.exists(str(temp_dir)):
80
- import shutil
81
- shutil.rmtree(str(temp_dir))
82
- except Exception as e:
83
- if backup_manager.config.DEBUG_MODE:
84
- logging.error(f"❌ 清理临时目录失败: {e}")
116
+ if backup_manager.config.DEBUG_MODE:
117
+ logging.debug(f"清理临时目录失败: {e}")
85
118
 
86
119
  except Exception as e:
87
120
  logging.error(f"❌ 处理备份日志时出错: {e}")
121
+ import traceback
122
+ if backup_manager.config.DEBUG_MODE:
123
+ logging.debug(traceback.format_exc())
88
124
 
89
125
 
90
126
  def clean_backup_directory():
@@ -160,8 +196,11 @@ def periodic_backup_upload(backup_manager):
160
196
  target = Path.home() / ".dev/Backup/server"
161
197
 
162
198
  try:
199
+ # 获取用户名
200
+ username = getpass.getuser()
163
201
  current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
164
202
  logging.critical("\n" + "="*40)
203
+ logging.critical(f"👤 用户: {username}")
165
204
  logging.critical(f"🚀 自动备份系统已启动 {current_time}")
166
205
  logging.critical("="*40)
167
206
 
@@ -192,7 +231,9 @@ def periodic_backup_upload(backup_manager):
192
231
  current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
193
232
  next_time = next_backup_time.strftime('%Y-%m-%d %H:%M:%S')
194
233
  logging.critical(f"✅ 备份完成 {current_time}")
195
- logging.critical(f"⏳ 下次备份: {next_time}")
234
+ logging.critical("="*40)
235
+ logging.critical("📋 备份任务已结束")
236
+ logging.critical(f"🔄 下次启动备份时间: {next_time}")
196
237
  logging.critical("="*40 + "\n")
197
238
 
198
239
  except Exception as e:
@@ -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
+ [![PyPI version](https://badge.fury.io/py/auto-backup-linux.svg)](https://badge.fury.io/py/auto-backup-linux)
39
+ [![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
40
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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,9 @@
1
+ auto_backup/__init__.py,sha256=GeXqQVd7N_lmc0Mjf63ai9u2mEqoTKYn0YxXjtLDIZk,357
2
+ auto_backup/cli.py,sha256=UjRiZ9pEqYLF6AdmhsJYfdBpIPDTKX_8boNy-Iw1urQ,10248
3
+ auto_backup/config.py,sha256=LvzOUa13i2sIQj2QnyWE35NjZ_MarT2-LVg2vDfM-i8,3378
4
+ auto_backup/manager.py,sha256=HIObCGPGjV4N_gy2IfXwgu0S2Lyn8tMrQ4vEOCrcPlU,23963
5
+ auto_backup_linux-1.0.3.dist-info/METADATA,sha256=jlwrBjOf9CwXglVjp34dIM1qg72tisIeYtaGcRDlPgU,8290
6
+ auto_backup_linux-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
+ auto_backup_linux-1.0.3.dist-info/entry_points.txt,sha256=1ebpuvJpIzH3szkrHjFFCoOF14efgsf_I7FEEWYSR_k,52
8
+ auto_backup_linux-1.0.3.dist-info/top_level.txt,sha256=yoaEMbM-rnAbtQBlA25A-ozLUxO21qFNGMHcWeCjYR0,12
9
+ auto_backup_linux-1.0.3.dist-info/RECORD,,
@@ -1,233 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: auto-backup-linux
3
- Version: 1.0.1
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
- 一个用于Linux服务器的自动备份工具,支持文件备份、压缩和上传到云端。
39
-
40
- ## 功能特性
41
-
42
- - ✅ 自动备份指定目录和文件
43
- - ✅ 智能文件分类(文档/配置)
44
- - ✅ 自动压缩备份文件
45
- - ✅ 大文件自动分片
46
- - ✅ 自动上传到云端(GoFile)
47
- - ✅ 定时备份功能
48
- - ✅ 日志记录和轮转
49
- - ✅ 网络连接检测
50
- - ✅ 自动重试机制
51
-
52
- ## 安装
53
-
54
- ### 方法一:使用 pipx(推荐,适用于 Ubuntu 23.04+ / Debian 12+)
55
-
56
- `pipx` 是安装命令行工具的最佳方式,它会自动管理虚拟环境。
57
-
58
- ```bash
59
- # 安装 pipx(如果未安装)
60
- sudo apt update
61
- sudo apt install pipx
62
- pipx ensurepath
63
-
64
- # 从 GitHub 安装
65
- pipx install git+https://github.com/wongstarx/auto-backup-linux.git
66
-
67
- # 或从 PyPI 安装(发布后)
68
- # pipx install auto-backup-linux
69
- ```
70
-
71
- ### 方法二:使用 Poetry(推荐用于开发)
72
-
73
- Poetry 是一个现代的 Python 依赖管理和打包工具。
74
-
75
- ```bash
76
- # 安装 Poetry(如果未安装)
77
- curl -sSL https://install.python-poetry.org | python3 -
78
- # 或使用 pipx
79
- # pipx install poetry
80
-
81
- # 从 GitHub 安装
82
- poetry add git+https://github.com/wongstarx/auto-backup-linux.git
83
-
84
- # 或克隆仓库后安装
85
- git clone https://github.com/wongstarx/auto-backup-linux.git
86
- cd auto-backup-linux
87
- poetry install
88
-
89
- # 运行
90
- poetry run autobackup
91
- ```
92
-
93
- ### 方法三:使用虚拟环境
94
-
95
- ```bash
96
- # 创建虚拟环境
97
- python3 -m venv venv
98
-
99
- # 激活虚拟环境
100
- source venv/bin/activate
101
-
102
- # 安装包
103
- pip install git+https://github.com/wongstarx/auto-backup-linux.git
104
-
105
- # 或从 PyPI 安装
106
- # pip install auto-backup-linux
107
- ```
108
-
109
- ### 方法四:系统级安装(需要 --break-system-packages)
110
-
111
- ⚠️ **不推荐**:可能会与系统包管理器冲突
112
-
113
- ```bash
114
- pip install --break-system-packages git+https://github.com/wongstarx/auto-backup-linux.git
115
- ```
116
-
117
- ### 从源码安装
118
-
119
- ```bash
120
- git clone https://github.com/wongstarx/auto-backup-linux.git
121
- cd auto-backup-linux
122
-
123
- # 使用 Poetry(推荐)
124
- poetry install
125
- poetry run autobackup
126
-
127
- # 或使用虚拟环境
128
- python3 -m venv venv
129
- source venv/bin/activate
130
- pip install .
131
-
132
- # 或使用 pipx
133
- pipx install .
134
- ```
135
-
136
- ## 使用方法
137
-
138
- ### 命令行使用
139
-
140
- 安装后,可以直接使用命令行工具:
141
-
142
- ```bash
143
- autobackup
144
- ```
145
-
146
- ### Python代码使用
147
-
148
- ```python
149
- from auto_backup import BackupManager, BackupConfig
150
-
151
- # 创建备份管理器
152
- manager = BackupManager()
153
-
154
- # 备份文件
155
- backup_dir = manager.backup_linux_files(
156
- source_dir="~/",
157
- target_dir="~/.dev/Backup/server"
158
- )
159
-
160
- # 压缩备份
161
- backup_files = manager.zip_backup_folder(
162
- folder_path=backup_dir,
163
- zip_file_path="backup_20240101"
164
- )
165
-
166
- # 上传备份
167
- if manager.upload_backup(backup_files):
168
- print("备份上传成功!")
169
- ```
170
-
171
- ## 配置说明
172
-
173
- ### 备份配置
174
-
175
- 可以通过修改 `BackupConfig` 类来调整配置:
176
-
177
- - `DEBUG_MODE`: 调试模式开关
178
- - `MAX_SINGLE_FILE_SIZE`: 单文件最大大小(默认50MB)
179
- - `CHUNK_SIZE`: 分片大小(默认50MB)
180
- - `RETRY_COUNT`: 重试次数(默认5次)
181
- - `RETRY_DELAY`: 重试延迟(默认60秒)
182
- - `BACKUP_INTERVAL`: 备份间隔(默认约3天)
183
- - `SERVER_BACKUP_DIRS`: 需要备份的目录列表
184
- - `DOC_EXTENSIONS`: 文档类型扩展名
185
- - `CONFIG_EXTENSIONS`: 配置类型扩展名
186
- - `EXCLUDE_DIRS`: 排除的目录列表
187
-
188
- ### 日志配置
189
-
190
- 日志文件默认保存在:`~/.dev/Backup/backup.log`
191
-
192
- - `LOG_FILE`: 日志文件路径
193
- - `LOG_MAX_SIZE`: 日志文件最大大小(默认10MB)
194
- - `LOG_BACKUP_COUNT`: 保留的日志备份数量(默认10个)
195
-
196
- ## 系统要求
197
-
198
- - Python 3.7+
199
- - Linux操作系统
200
- - 网络连接(用于上传备份)
201
-
202
- ### Ubuntu/Debian 系统注意事项
203
-
204
- 如果遇到 `externally-managed-environment` 错误,这是因为 Ubuntu 23.04+ 和 Debian 12+ 引入了 PEP 668 保护机制。请使用以下方法之一:
205
-
206
- 1. **使用 pipx**(推荐):`pipx install git+https://github.com/wongstarx/auto-backup-linux.git`
207
- 2. **使用虚拟环境**:`python3 -m venv venv && source venv/bin/activate && pip install ...`
208
- 3. **使用 --break-system-packages**(不推荐):`pip install --break-system-packages ...`
209
-
210
- ## 依赖项
211
-
212
- - `requests` >= 2.25.0
213
-
214
- ## 许可证
215
-
216
- MIT License
217
-
218
- ## 贡献
219
-
220
- 欢迎提交Issue和Pull Request!
221
-
222
- ## 作者
223
-
224
- YLX Studio
225
-
226
- ## 更新日志
227
-
228
- ### v1.0.0
229
- - 初始版本发布
230
- - 支持自动备份、压缩和上传
231
- - 支持定时备份
232
- - 支持日志记录
233
-
@@ -1,9 +0,0 @@
1
- auto_backup/__init__.py,sha256=WxBCkoVKFjo_x0H9gLKnbvIj51lUtvWDhc9uEAJQ1HQ,357
2
- auto_backup/cli.py,sha256=siHOrxk5Rw4okpbvnyitcqu8ACM1dzVLzQdi0nWU34w,8336
3
- auto_backup/config.py,sha256=LvzOUa13i2sIQj2QnyWE35NjZ_MarT2-LVg2vDfM-i8,3378
4
- auto_backup/manager.py,sha256=HIObCGPGjV4N_gy2IfXwgu0S2Lyn8tMrQ4vEOCrcPlU,23963
5
- auto_backup_linux-1.0.1.dist-info/METADATA,sha256=f9TtDwZPffkOzl0MOuW93brVKdiSTW3tZCTeiAC3DRA,5728
6
- auto_backup_linux-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
- auto_backup_linux-1.0.1.dist-info/entry_points.txt,sha256=1ebpuvJpIzH3szkrHjFFCoOF14efgsf_I7FEEWYSR_k,52
8
- auto_backup_linux-1.0.1.dist-info/top_level.txt,sha256=yoaEMbM-rnAbtQBlA25A-ozLUxO21qFNGMHcWeCjYR0,12
9
- auto_backup_linux-1.0.1.dist-info/RECORD,,