v0.2: Added dockerignore; Added SCHEDULE setting (#1); Updated libs;

This commit is contained in:
2022-11-26 22:13:32 +02:00
committed by Eugene Morozov
parent aab3850258
commit a139065611
7 changed files with 69 additions and 47 deletions

View File

@@ -5,7 +5,7 @@ The script provides functionality:
3. Scheduled to run every day
You can set some envs vars:
- DEBUG - run every hour if 1, default is 0
- SCHEDULE - can be monthly, weekly, daily (by default), hourly
- TIME_ZONE - timezone for datetime using in filenames, default is Europe/Tallinn
- COMPRESSION_LEVEL - level of ZSTD compression, default is 10
- PREFIX - prefix for backup filename, default is empty
@@ -30,7 +30,7 @@ import pytz
import schedule
from boto3.exceptions import S3UploadFailedError
DEBUG = int(os.getenv("DEBUG", 0))
SCHEDULE = os.getenv("SCHEDULE", "DAILY")
TIME_ZONE = pytz.timezone(os.getenv("TIME_ZONE", "Europe/Tallinn"))
PREFIX = os.getenv("PREFIX", "")
FOLDER_TO_BACKUP = os.getenv("FOLDER_TO_BACKUP", "/backup")
@@ -120,13 +120,23 @@ def run_threaded(job_func):
job_thread.start()
if not DEBUG:
print("Setting up task launch 'run_backup_files' every day")
schedule.every().day.at("01:05").do(run_threaded, run_backup_files)
else:
print("Setting up task launch 'run_backup_files' now and every hour")
run_threaded(run_backup_files)
schedule.every().hour.at("00:05").do(run_threaded, run_backup_files)
match SCHEDULE:
case "MONTHLY":
print("Scheduled to run backup task every 4 weeks")
schedule.every(4).weeks.do(run_threaded, run_backup_files)
case "WEEKLY":
print("Scheduled to run backup task every Monday")
schedule.every().monday.at("02:00").do(run_threaded, run_backup_files)
case "HOURLY":
print("Scheduled to run backup task every hour")
schedule.every().hour.at(":05").do(run_threaded, run_backup_files)
# For any other values, incl DAILY - run daily
case _:
print("Scheduled to run backup task every day at 02:00")
schedule.every().day.at("02:00").do(run_threaded, run_backup_files)
# Run first job immediately
schedule.run_all()
while True:
schedule.run_pending()