artifacts/oci/PostgreSQL/backup/utils.py

40 lines
1.4 KiB
Python

import os
import yaml
def load_config():
with open('/app/config.yaml', 'r') as file:
config = yaml.safe_load(file)
return config
def setup_cron():
config = load_config()
cron_jobs = []
# 添加备份任务
backup_schedule = config['backup'].get('schedule')
if backup_schedule:
backup_command = f"/usr/bin/python /app/backup.py run_backup >> /proc/1/fd/1 2>&1"
cron_jobs.append(f"{backup_schedule} {backup_command}")
# 添加验证任务
verification_enabled = config['verification'].get('enabled', False)
if verification_enabled:
verification_schedule = config['verification'].get('schedule')
if verification_schedule:
verify_command = f"/usr/bin/python /app/backup.py verify_backup >> /proc/1/fd/1 2>&1"
cron_jobs.append(f"{verification_schedule} {verify_command}")
# 添加恢复任务(如果需要自动恢复)
# restore_schedule = config['restore'].get('schedule')
# if restore_schedule:
# restore_command = f"/usr/bin/python /app/restore.py run_restore >> /proc/1/fd/1 2>&1"
# cron_jobs.append(f"{restore_schedule} {restore_command}")
# 将所有 cron 任务写入文件
with open('/etc/cron.d/backup-cron', 'w') as cron_file:
for job in cron_jobs:
cron_file.write(f"{job}\n")
# 赋予 cron 任务文件适当的权限
os.chmod('/etc/cron.d/backup-cron', 0o644)