40 lines
1.4 KiB
Python
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)
|