25 Апр


2020

Простой скрипт для бекапа

Понадобилось бекапить раз в n дней определенный файлы на стационарном пэка, загрузил значит триальную версию с эп стора, а она работает как-то через раз, да и стоит что-то в районе 5 баксов (не то чтобы жалко было, но тык оно и не работает должным образом). По факту что там делать то..кронтаб задача да простенький скрипт на питоне (конечно можно и на баше, но как-то на питоне сподручнее получилось).

 

import subprocess
import os
from time import time
from datetime import datetime

SRC_PATH = '/Users/<USER>/<PATH>/'
DST_PATH = '/Users/<USER>/<PATH>'

def make_backup():
    filename = f'{datetime.now().strftime("%Y-%m-%d")}.tar.gz'
    subprocess.call(['tar', '-czf', f'{DST_PATH}/{filename}', SRC_PATH])


def remove_old_backups():
    now = time()
    for f in os.listdir(DST_PATH):
        if os.stat(os.path.join(DST_PATH,f)).st_mtime < now - 60*60*24*2: # время очистки старых версий, 48ч
            os.remove(os.path.join(DST_PATH, f))

make_backup()
remove_old_backups()

Писалось на коленке, поэтому как получилось

Ну и собственно crontab -e

0 18 * * * /usr/bin/python3 /Users/<PATH>/backup.py
скрипты