chore: .gitignore 排除 ./data/ 运行时目录
之前只忽略了 backend/data/ 和 backend/logs/,bind mount 后 数据落在项目根 ./data/backend、./data/logs 等子目录。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -43,3 +43,6 @@ backups/
|
||||
|
||||
# Docker
|
||||
docker-compose.override.yml
|
||||
|
||||
# bind mount data 目录(运行时生成)
|
||||
data/
|
||||
|
||||
@@ -1,299 +0,0 @@
|
||||
2026-06-22 18:31:38 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 18:31:38 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 18:31:38 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 18:31:38 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 18:31:38 | INFO | app.main | Application ready
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | [10:32:10] Backup started: run_id=7 job=app-dir-test trigger=manual
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | [10:32:10] Metadata: filename=app-dir-test-app-20260622-183210.tar.gz content_type=application/gzip
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | [10:32:10] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | [10:32:10] Streaming backup to storage key=app-dir-test/2026-06-22/app-dir-test-app-20260622-183210.tar.gz ...
|
||||
2026-06-22 18:32:10 | INFO | app.core.backup.directory | Taring directory /app (exclude=['.git', '__pycache__', 'node_modules'])
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | [10:32:10] Backup success: size=63600 bytes sha256=530e79b90471 elapsed=0s
|
||||
2026-06-22 18:32:10 | INFO | app.core.executor | Backup run_id=7 finished status=success
|
||||
2026-06-22 18:35:48 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 18:35:48 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 18:35:48 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 18:35:48 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 18:35:48 | INFO | app.main | Application ready
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | [10:36:21] Backup started: run_id=8 job=app-dir-test trigger=manual
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | [10:36:21] Metadata: filename=app-dir-test-app-20260622-183621.tar.gz content_type=application/gzip
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | [10:36:21] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | [10:36:21] Streaming backup to storage key=app-dir-test/2026-06-22/app-dir-test-app-20260622-183621.tar.gz ...
|
||||
2026-06-22 18:36:21 | INFO | app.core.backup.directory | Taring directory /app (exclude=['.git', '__pycache__', 'node_modules'])
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | [10:36:21] Backup success: size=127360 bytes sha256=3af4260e15ab elapsed=0s
|
||||
2026-06-22 18:36:21 | INFO | app.core.executor | Backup run_id=8 finished status=success
|
||||
2026-06-22 18:44:59 | INFO | app.core.executor | [10:44:59] Backup started: run_id=9 job=mysql_tmp trigger=manual
|
||||
2026-06-22 18:44:59 | INFO | app.core.executor | [10:44:59] Metadata: filename=mysql_tmp-asset_management-20260622-184459.sql.gz content_type=application/gzip
|
||||
2026-06-22 18:44:59 | INFO | app.core.executor | [10:44:59] Storage test: ok=True msg=OK: writable /app/backup_data
|
||||
2026-06-22 18:44:59 | INFO | app.core.executor | [10:44:59] Streaming backup to storage key=mysql_tmp/2026-06-22/mysql_tmp-asset_management-20260622-184459.sql.gz ...
|
||||
2026-06-22 18:44:59 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 18:44:59 | ERROR | app.core.executor | Backup run_id=9 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 88, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 84, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 95, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2002: "Can't connect to server on '10.168.1.209' (115)" when trying to connect
|
||||
2026-06-22 18:44:59 | ERROR | app.core.executor | [10:44:59] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2002: "Can't connect to server on '10.168.1.209' (115)" when trying to connect
|
||||
2026-06-22 18:44:59 | INFO | app.core.executor | Backup run_id=9 finished status=failed
|
||||
2026-06-22 18:46:29 | INFO | app.core.executor | [10:46:29] Backup started: run_id=10 job=back_mysql trigger=manual
|
||||
2026-06-22 18:46:29 | INFO | app.core.executor | [10:46:29] Metadata: filename=back_mysql-asset_management-20260622-184629.sql.gz content_type=application/gzip
|
||||
2026-06-22 18:46:29 | INFO | app.core.executor | [10:46:29] Storage test: ok=True msg=OK: writable /app/backup_data
|
||||
2026-06-22 18:46:29 | INFO | app.core.executor | [10:46:29] Streaming backup to storage key=back_mysql/2026-06-22/back_mysql-asset_management-20260622-184629.sql.gz ...
|
||||
2026-06-22 18:46:29 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=127.0.0.1
|
||||
2026-06-22 18:46:29 | ERROR | app.core.executor | Backup run_id=10 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 88, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 84, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 95, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2002: "Can't connect to server on '127.0.0.1' (115)" when trying to connect
|
||||
2026-06-22 18:46:29 | ERROR | app.core.executor | [10:46:29] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2002: "Can't connect to server on '127.0.0.1' (115)" when trying to connect
|
||||
2026-06-22 18:46:29 | INFO | app.core.executor | Backup run_id=10 finished status=failed
|
||||
2026-06-22 18:53:57 | INFO | app.core.executor | [10:53:57] Backup started: run_id=11 job=mysql_backuop trigger=manual
|
||||
2026-06-22 18:53:57 | INFO | app.core.executor | [10:53:57] Metadata: filename=mysql_backuop-asset_management-20260622-185357.sql.gz content_type=application/gzip
|
||||
2026-06-22 18:53:57 | INFO | app.core.executor | [10:53:57] Storage test: ok=True msg=OK: writable /app/backup_data
|
||||
2026-06-22 18:53:57 | INFO | app.core.executor | [10:53:57] Streaming backup to storage key=mysql_backuop/2026-06-22/mysql_backuop-asset_management-20260622-185357.sql.gz ...
|
||||
2026-06-22 18:53:57 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 18:53:57 | ERROR | app.core.executor | Backup run_id=11 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 88, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 84, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 95, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 18:53:57 | ERROR | app.core.executor | [10:53:57] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 18:53:57 | INFO | app.core.executor | Backup run_id=11 finished status=failed
|
||||
2026-06-22 18:54:42 | INFO | app.core.executor | [10:54:42] Backup started: run_id=12 job=asset-mgmt-test trigger=manual
|
||||
2026-06-22 18:54:42 | INFO | app.core.executor | [10:54:42] Metadata: filename=asset-mgmt-test-asset_management-20260622-185442.sql.gz content_type=application/gzip
|
||||
2026-06-22 18:54:42 | INFO | app.core.executor | [10:54:42] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 18:54:42 | INFO | app.core.executor | [10:54:42] Streaming backup to storage key=asset-mgmt-test/2026-06-22/asset-mgmt-test-asset_management-20260622-185442.sql.gz ...
|
||||
2026-06-22 18:54:42 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 18:54:42 | ERROR | app.core.executor | Backup run_id=12 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 88, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 84, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 95, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 18:54:42 | ERROR | app.core.executor | [10:54:42] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 18:54:42 | INFO | app.core.executor | Backup run_id=12 finished status=failed
|
||||
2026-06-22 19:03:33 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 19:03:33 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 19:03:33 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:03:33 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:03:33 | INFO | app.main | Application ready
|
||||
2026-06-22 19:03:37 | INFO | app.core.executor | [11:03:37] Backup started: run_id=13 job=asset-mgmt-test trigger=manual
|
||||
2026-06-22 19:03:37 | INFO | app.core.executor | [11:03:37] Metadata: filename=asset-mgmt-test-asset_management-20260622-190337.sql.gz content_type=application/gzip
|
||||
2026-06-22 19:03:37 | INFO | app.core.executor | [11:03:37] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:03:37 | INFO | app.core.executor | [11:03:37] Streaming backup to storage key=asset-mgmt-test/2026-06-22/asset-mgmt-test-asset_management-20260622-190337.sql.gz ...
|
||||
2026-06-22 19:03:37 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 19:03:37 | ERROR | app.core.executor | Backup run_id=13 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 91, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 87, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 101, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=7): mysqldump: unknown variable 'ssl-mode=DISABLED'
|
||||
2026-06-22 19:03:37 | ERROR | app.core.executor | [11:03:37] Backup failed: RuntimeError: mysqldump failed (exit=7): mysqldump: unknown variable 'ssl-mode=DISABLED'
|
||||
2026-06-22 19:03:37 | INFO | app.core.executor | Backup run_id=13 finished status=failed
|
||||
2026-06-22 19:04:42 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 19:04:42 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 19:04:42 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:04:42 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:04:42 | INFO | app.main | Application ready
|
||||
2026-06-22 19:04:46 | INFO | app.core.executor | [11:04:46] Backup started: run_id=14 job=asset-mgmt-test trigger=manual
|
||||
2026-06-22 19:04:46 | INFO | app.core.executor | [11:04:46] Metadata: filename=asset-mgmt-test-asset_management-20260622-190446.sql.gz content_type=application/gzip
|
||||
2026-06-22 19:04:46 | INFO | app.core.executor | [11:04:46] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:04:46 | INFO | app.core.executor | [11:04:46] Streaming backup to storage key=asset-mgmt-test/2026-06-22/asset-mgmt-test-asset_management-20260622-190446.sql.gz ...
|
||||
2026-06-22 19:04:46 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 19:04:46 | ERROR | app.core.executor | Backup run_id=14 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 91, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 87, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 101, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 19:04:46 | ERROR | app.core.executor | [11:04:46] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 19:04:46 | INFO | app.core.executor | Backup run_id=14 finished status=failed
|
||||
2026-06-22 19:06:06 | INFO | app.core.executor | [11:06:06] Backup started: run_id=15 job=asset-mgmt-test trigger=manual
|
||||
2026-06-22 19:06:06 | INFO | app.core.executor | [11:06:06] Metadata: filename=asset-mgmt-test-asset_management-20260622-190606.sql.gz content_type=application/gzip
|
||||
2026-06-22 19:06:06 | INFO | app.core.executor | [11:06:06] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:06:06 | INFO | app.core.executor | [11:06:06] Streaming backup to storage key=asset-mgmt-test/2026-06-22/asset-mgmt-test-asset_management-20260622-190606.sql.gz ...
|
||||
2026-06-22 19:06:06 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 19:06:06 | ERROR | app.core.executor | Backup run_id=15 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 91, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 87, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/mysql.py", line 101, in produce
|
||||
raise RuntimeError(
|
||||
RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 19:06:06 | ERROR | app.core.executor | [11:06:06] Backup failed: RuntimeError: mysqldump failed (exit=2): mysqldump: Got error: 2026: "TLS/SSL error: self-signed certificate in certificate chain" when trying to connect
|
||||
2026-06-22 19:06:06 | INFO | app.core.executor | Backup run_id=15 finished status=failed
|
||||
2026-06-22 19:07:37 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 19:07:37 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 19:07:37 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:07:37 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:07:37 | INFO | app.main | Application ready
|
||||
2026-06-22 19:07:41 | INFO | app.core.executor | [11:07:41] Backup started: run_id=16 job=asset-mgmt-test trigger=manual
|
||||
2026-06-22 19:07:41 | INFO | app.core.executor | [11:07:41] Metadata: filename=asset-mgmt-test-asset_management-20260622-190741.sql.gz content_type=application/gzip
|
||||
2026-06-22 19:07:41 | INFO | app.core.executor | [11:07:41] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:07:41 | INFO | app.core.executor | [11:07:41] Streaming backup to storage key=asset-mgmt-test/2026-06-22/asset-mgmt-test-asset_management-20260622-190741.sql.gz ...
|
||||
2026-06-22 19:07:41 | INFO | app.core.backup.mysql | Executing mysqldump for db=asset_management host=10.168.1.209
|
||||
2026-06-22 19:07:42 | INFO | app.core.executor | [11:07:42] Backup success: size=762354 bytes sha256=f30fa0971e2c elapsed=0s
|
||||
2026-06-22 19:07:42 | INFO | app.core.executor | Backup run_id=16 finished status=success
|
||||
2026-06-22 19:10:48 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 19:10:48 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 19:10:48 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:10:48 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:10:48 | INFO | app.main | Application ready
|
||||
2026-06-22 19:13:14 | INFO | app.main | Database tables ensured
|
||||
2026-06-22 19:13:14 | INFO | app.main | Existing users found (1), skip admin init
|
||||
2026-06-22 19:13:14 | INFO | apscheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:13:14 | INFO | app.scheduler.scheduler | Scheduler started
|
||||
2026-06-22 19:13:14 | INFO | app.main | Application ready
|
||||
2026-06-22 19:13:43 | INFO | app.core.executor | [11:13:43] Backup started: run_id=17 job=influxdb-v2-test trigger=manual
|
||||
2026-06-22 19:13:43 | INFO | app.core.executor | [11:13:43] Metadata: filename=influxdb-v2-test-2-my-bucket-20260622-191343.tar.gz content_type=application/gzip
|
||||
2026-06-22 19:13:43 | INFO | app.core.executor | [11:13:43] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:13:43 | INFO | app.core.executor | [11:13:43] Streaming backup to storage key=influxdb-v2-test/2026-06-22/influxdb-v2-test-2-my-bucket-20260622-191343.tar.gz ...
|
||||
2026-06-22 19:13:43 | INFO | app.core.backup.influxdb | Running: influx backup --bucket my-bucket --org my-org --host http://10.168.1.209:8086 --token *** /tmp/influxbk_influxdb-v2-test_u90psu8e/data
|
||||
2026-06-22 19:13:43 | ERROR | app.core.executor | Backup run_id=17 failed
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 91, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 87, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/influxdb.py", line 65, in produce
|
||||
await self._backup_v2(backup_dir)
|
||||
File "/app/app/core/backup/influxdb.py", line 111, in _backup_v2
|
||||
raise RuntimeError(
|
||||
RuntimeError: influx backup failed (exit=1): 2026/06/22 19:13:43 INFO: Downloading metadata snapshot
|
||||
Error: failed to backup metadata: failed to download metadata snapshot: 401 Unauthorized: unauthorized access
|
||||
|
||||
2026-06-22 19:13:43 | ERROR | app.core.executor | [11:13:43] Backup failed: RuntimeError: influx backup failed (exit=1): 2026/06/22 19:13:43 INFO: Downloading metadata snapshot
|
||||
Error: failed to backup metadata: failed to download metadata snapshot: 401 Unauthorized: unauthorized access
|
||||
|
||||
2026-06-22 19:13:43 | INFO | app.core.executor | Backup run_id=17 finished status=failed
|
||||
2026-06-22 19:14:07 | INFO | app.core.executor | [11:14:07] Backup started: run_id=18 job=influxdb-v1-test trigger=manual
|
||||
2026-06-22 19:14:07 | INFO | app.core.executor | [11:14:07] Metadata: filename=influxdb-v1-test-1-telegraf-20260622-191407.tar.gz content_type=application/gzip
|
||||
2026-06-22 19:14:07 | INFO | app.core.executor | [11:14:07] Storage test: ok=True msg=OK: writable /app/data/backups
|
||||
2026-06-22 19:14:07 | INFO | app.core.executor | [11:14:07] Streaming backup to storage key=influxdb-v1-test/2026-06-22/influxdb-v1-test-1-telegraf-20260622-191407.tar.gz ...
|
||||
2026-06-22 19:14:07 | INFO | app.core.backup.influxdb | InfluxDB v1 backup via HTTP API: db=telegraf host=127.0.0.1:8086
|
||||
2026-06-22 19:14:07 | ERROR | app.core.executor | Backup run_id=18 failed
|
||||
Traceback (most recent call last):
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 72, in map_httpcore_exceptions
|
||||
yield
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 377, in handle_async_request
|
||||
resp = await self._pool.handle_async_request(req)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
|
||||
raise exc from None
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
|
||||
response = await connection.handle_async_request(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
|
||||
raise exc
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
|
||||
stream = await self._connect(request)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 124, in _connect
|
||||
stream = await self._network_backend.connect_tcp(**kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp
|
||||
return await self._backend.connect_tcp(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
|
||||
with map_exceptions(exc_map):
|
||||
File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
|
||||
self.gen.throw(typ, value, traceback)
|
||||
File "/usr/local/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
|
||||
raise to_exc(exc) from exc
|
||||
httpcore.ConnectError: All connection attempts failed
|
||||
|
||||
The above exception was the direct cause of the following exception:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/backup/influxdb.py", line 143, in _backup_v1
|
||||
resp = await client.get(url, params=params)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1814, in get
|
||||
return await self.request(
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1585, in request
|
||||
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1674, in send
|
||||
response = await self._send_handling_auth(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1702, in _send_handling_auth
|
||||
response = await self._send_handling_redirects(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1739, in _send_handling_redirects
|
||||
response = await self._send_single_request(request)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1776, in _send_single_request
|
||||
response = await transport.handle_async_request(request)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 376, in handle_async_request
|
||||
with map_httpcore_exceptions():
|
||||
File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
|
||||
self.gen.throw(typ, value, traceback)
|
||||
File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 89, in map_httpcore_exceptions
|
||||
raise mapped_exc(message) from exc
|
||||
httpx.ConnectError: All connection attempts failed
|
||||
|
||||
The above exception was the direct cause of the following exception:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/app/app/core/executor.py", line 91, in run_backup
|
||||
size, sha = await storage.upload_stream(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/app/app/core/storage/local.py", line 55, in upload_stream
|
||||
async for chunk in source:
|
||||
File "/app/app/core/executor.py", line 87, in _consume_with_progress
|
||||
async for chunk in backup.produce():
|
||||
File "/app/app/core/backup/influxdb.py", line 67, in produce
|
||||
await self._backup_v1(backup_dir)
|
||||
File "/app/app/core/backup/influxdb.py", line 145, in _backup_v1
|
||||
raise RuntimeError(f"InfluxDB v1 HTTP 请求失败: {e}") from e
|
||||
RuntimeError: InfluxDB v1 HTTP 请求失败: All connection attempts failed
|
||||
2026-06-22 19:14:07 | ERROR | app.core.executor | [11:14:07] Backup failed: RuntimeError: InfluxDB v1 HTTP 请求失败: All connection attempts failed
|
||||
2026-06-22 19:14:07 | INFO | app.core.executor | Backup run_id=18 finished status=failed
|
||||
Reference in New Issue
Block a user