From 74719d0171064b9c1e6f77cfb5a9b4ea31194821 Mon Sep 17 00:00:00 2001 From: BluLupo Date: Thu, 7 Mar 2024 16:46:11 +0100 Subject: [PATCH] Add files via upload --- backup_db/__pycache__/config.cpython-39.pyc | Bin 0 -> 446 bytes backup_db/config.py | 11 +++++++ .../jobs/__pycache__/backup_db.cpython-39.pyc | Bin 0 -> 880 bytes .../__pycache__/delete_files.cpython-39.pyc | Bin 0 -> 908 bytes backup_db/jobs/backup_db.py | 31 ++++++++++++++++++ backup_db/jobs/delete_files.py | 28 ++++++++++++++++ backup_db/main.py | 22 +++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 backup_db/__pycache__/config.cpython-39.pyc create mode 100644 backup_db/config.py create mode 100644 backup_db/jobs/__pycache__/backup_db.cpython-39.pyc create mode 100644 backup_db/jobs/__pycache__/delete_files.cpython-39.pyc create mode 100644 backup_db/jobs/backup_db.py create mode 100644 backup_db/jobs/delete_files.py create mode 100644 backup_db/main.py diff --git a/backup_db/__pycache__/config.cpython-39.pyc b/backup_db/__pycache__/config.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b6873eaa31ac128a64ae194baea4be8954e3c58 GIT binary patch literal 446 zcmY*V%}T>S5Z?SWjkUdqc=82$2@#Znh*T>Sq_jd6VF@go%-W<)lQf%H+N-{duav6? z?|Sp(BvI5^=9~HEZ+Dh=IxT_%J8$A0?Q2Q?ijJg@D)$kF1PCb4sDeCcQ~`BLx|)ZX zf1)7kqsl`BL9mWc6%?w0N_Eg^19WOY1AC3a7{t*-Fx&2N&lhRLQwxn0p%rAb?fD?K ze(tWe>lHn?x!l|zMZFQ72gi@YiR@kX>|{<&mwSsm0e9SO7A9j6Ukb*G7Guj8^04&V zjIDAW)*0Fam-(^GDkqmBrMnnOxRmQSg`!o@V-Tb-BsFk_3O@UTQ|At=rStv5S-_)6 zgdw*srlZ@*iDlcib0y>=ixcN(i0gROf>yFg%YP~7NfW_T^y*a6aaS#j*qsY6tN8D= Swb#Uk!aS=NIxlB@ppq{%<8gKX literal 0 HcmV?d00001 diff --git a/backup_db/config.py b/backup_db/config.py new file mode 100644 index 0000000..478ccec --- /dev/null +++ b/backup_db/config.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright Hersel Giannella + +class Config(object): + db_host = 'localhost' + db_user = 'root' + db_password = '' + backup_dir = 'backupdb' + retention_days = 7 \ No newline at end of file diff --git a/backup_db/jobs/__pycache__/backup_db.cpython-39.pyc b/backup_db/jobs/__pycache__/backup_db.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b7a2185d4926e295be663d6a5931a8d5b7314a11 GIT binary patch literal 880 zcmYjPPjAyO6t^Ac&(e160$e7POEvYdsuwO3nm_|-2N;J9rbU&eG%IUJQg`Gd@Kt=}fcOer;3e(EZ29;6^6cOHz2`)oj*npc2!3&CA@s9$?hX%}r?Aus z07DFCC|p?_;>IT-X{;4mU`a-EJG3$4D0P-Dw^NT<%MFf~KBG4nCJ9^2X3iHBwi!M~ zJ@+>-qoW=+&VeY#$wk%vv=~M4yJ^{1@3X4YW!=1cw%a}IzUm&wxIVoe6l^X30G9d+ zP;G0JVog#D7KLTcLGl${;8RrWQ3O$E_7s7DQ* z2&E03DlUyzMoN7Ul7$|NbTo<-uO7XSQpg|{MZsg86c>RO!EJOes5=B#noWRgICjLSynjfQ&D$Y{alR*A8j{KhV2 zQh-kWG0~>AdW-XMl5yj!>8O+<=1LhFM_Fd5VNd3gaQ zNLb>1A*(P01M{V;s4aNEHzP%!iqlNVg3joa%`$DP52SnJ+J33Jwn` zT48?I=?P$Me@f5cg1Wj#+xsA&cwp*hzX;42fypEEC{Njq$3DD6ZZr0g$;#E)f>yz{ z5$sN?J8{^HmEma`hm&e3a~X0iwBgOmGQJ!e=Oyu(o_I}tluqi~BIO}ZMJ8ly^7U}M zflh4^{`?*ub0zwshw5;QNtDVJ50kNqrQu=v_&R7Ja*1j#!ak;24;%L^&9(JLvH4(q zeu|~Fax;%A2XXIkJnAMw+0sY}X%s`fWimfeZbY`6qPH`9!(2!kaGB^6fq80um1l0Y z+Qiw&1_N$-#lZ0`hFf3pEI-EazdY^nkwHccFIv|8n9HtvY&Ra{HgNo8obhPM-MR%q z!he8zfVKa<-dyjz)m-V$2Lzrr2O^fzwXyl4y|ee`X|vU8b+))ZH2J7=^OS?mFh9^8 z{BqpzuFI>NqcdB-R$z;-l {backup_file}" + print(backup_cmd) + + # execute backup command + subprocess.call(backup_cmd, shell=True) + + # close database connection + conn.close() \ No newline at end of file diff --git a/backup_db/jobs/delete_files.py b/backup_db/jobs/delete_files.py new file mode 100644 index 0000000..cbcd46b --- /dev/null +++ b/backup_db/jobs/delete_files.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright Hersel Giannella + +import os +from config import Config +from datetime import datetime, timedelta + +def delete_sql_files(): + try: + # Verifica se la cartella esiste + if not os.path.exists(Config.backup_dir): + print(f"La cartella {Config.backup_dir} non esiste.") + return + + # Ottiene la data di 7 giorni fa + seven_days_ago = datetime.now() - timedelta(days=Config.retention_days) + + # Itera su tutti i file nella cartella + for filename in os.listdir(Config.backup_dir): + file_path = os.path.join(Config.backup_dir, filename) + # Verifica se il file ha estensione .sql e se è stato creato 7 giorni fa, quindi lo elimina + if filename.endswith(".sql") and datetime.fromtimestamp(os.path.getctime(file_path)).date() == seven_days_ago.date(): + os.remove(file_path) + print(f"File eliminato: {file_path}") + except Exception as e: + print(f"Si è verificato un errore durante l'eliminazione dei file: {e}") diff --git a/backup_db/main.py b/backup_db/main.py new file mode 100644 index 0000000..232538a --- /dev/null +++ b/backup_db/main.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright Hersel Giannella + +import time +import schedule +from jobs.delete_files import delete_sql_files +from jobs.backup_db import backup + +def get_time() -> str: + return time.strftime('%X (%d/%m/%y)') + +# Schedulazione del backup di tutti i database ogni giorno alle 4:00 AM +schedule.every().day.at("04:00").do(backup, dbname='dbname') +schedule.every().day.at("05:00").do(delete_sql_files) + +# Loop infinito per eseguire lo scheduler +while True: + schedule.run_pending() + print("eseguo job",get_time()) + time.sleep(1) \ No newline at end of file