31 lines
880 B
Python
31 lines
880 B
Python
import zipfile
|
|
import datetime
|
|
from pathlib import Path
|
|
|
|
WEB_FOLDER = Path("plots")
|
|
BACKUP_FOLDER = Path("backups")
|
|
|
|
|
|
def create_backup():
|
|
"""Create a backup of the web folder."""
|
|
today = datetime.date.today().strftime("%Y%m%d")
|
|
backup_name = f"backup-{today}.zip"
|
|
backup_path = BACKUP_FOLDER / backup_name
|
|
|
|
BACKUP_FOLDER.mkdir(parents=True, exist_ok=True)
|
|
|
|
if backup_path.exists():
|
|
print(f"Backup already exists: {backup_path}")
|
|
else:
|
|
print(f"Creating backup: {backup_path}")
|
|
with zipfile.ZipFile(backup_path, "w", zipfile.ZIP_DEFLATED) as zipf:
|
|
for path in WEB_FOLDER.rglob("*"):
|
|
if path.is_file():
|
|
arcname = path.relative_to(WEB_FOLDER.parent)
|
|
zipf.write(path, arcname)
|
|
print("✅ Backup complete.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
create_backup()
|