🚀 Auto-deploy: BrainKP atualizado em 25/07/2026 19:26:55
This commit is contained in:
@@ -266,23 +266,41 @@ def cleanup_backups(backup_type):
|
||||
grouped[key] = []
|
||||
grouped[key].append(item)
|
||||
|
||||
deleted_count = 0
|
||||
errors = []
|
||||
import tempfile
|
||||
import os
|
||||
|
||||
to_delete_paths = []
|
||||
for key, group_items in grouped.items():
|
||||
# Sort by ModTime descending (newest first)
|
||||
group_items.sort(key=lambda x: x.get("ModTime", ""), reverse=True)
|
||||
# Keep first 2
|
||||
to_delete = group_items[2:]
|
||||
for item in to_delete:
|
||||
path = item.get("Path", item.get("Name"))
|
||||
full_remote_path = f"{remote}/{path}"
|
||||
cmd = ["rclone", "deletefile", full_remote_path, "--drive-root-folder-id", "1ey-5aABgHDtirxeJarWy0ZmeqQPVTYtm"]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
|
||||
to_delete_paths.append(item.get("Path", item.get("Name")))
|
||||
|
||||
deleted_count = 0
|
||||
errors = []
|
||||
|
||||
if to_delete_paths:
|
||||
with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:
|
||||
for p in to_delete_paths:
|
||||
f.write(p + '\n')
|
||||
list_file = f.name
|
||||
|
||||
cmd = [
|
||||
"rclone", "delete", remote,
|
||||
"--files-from", list_file,
|
||||
"--drive-root-folder-id", "1ey-5aABgHDtirxeJarWy0ZmeqQPVTYtm",
|
||||
"--drive-use-trash=false" # permanently delete to immediately free space
|
||||
]
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=300)
|
||||
os.remove(list_file)
|
||||
|
||||
if result.returncode == 0:
|
||||
deleted_count += 1
|
||||
deleted_count = len(to_delete_paths)
|
||||
else:
|
||||
errors.append(f"Failed to delete {path}: {result.stderr}")
|
||||
errors.append(f"Failed to bulk delete: {result.stderr}")
|
||||
|
||||
# invalidate cache
|
||||
global _stats_cache
|
||||
|
||||
Reference in New Issue
Block a user