Notes/src/backup.py
2017-10-09 19:48:10 -04:00

53 lines
1.3 KiB
Python

import os
import re
from datetime import datetime
from shutil import copyfile
import config_provider
import utils
from sql import get_option, set_option, commit
def regular_backup():
now = utils.now_timestamp()
last_backup_date = int(get_option('last_backup_date'))
if now - last_backup_date > 43200:
backup_now()
cleanup_old_backups()
def backup_now():
now = utils.now_timestamp()
config = config_provider.get_config()
document_path = config['Document']['documentPath']
backup_directory = config['Backup']['backupDirectory']
date_str = datetime.utcnow().strftime("%Y-%m-%d %H:%M")
copyfile(document_path, backup_directory + "/" + "backup-" + date_str + ".db")
set_option('last_backup_date', now)
commit()
def cleanup_old_backups():
now = datetime.utcnow()
config = config_provider.get_config()
backup_directory = config['Backup']['backupDirectory']
for file in os.listdir(backup_directory):
match = re.search(r"backup-([0-9 -:]+)\.db", file)
if match:
date_str = match.group(1)
date = datetime.strptime(date_str, "%Y-%m-%d %H:%M")
if (now - date).days > 30:
print("Removing old backup - " + file)
os.remove(backup_directory + "/" + file)