#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2017, Florent Thiery import utils import socket import os def setup(interactive=True): CROND_TEMPLATE = '''# https://github.com/laurent22/rsync-time-backup 0 22 * * * root /usr/local/sbin/rsync_tmbackup.sh /etc root@{backup_server}:/backup/{hostname}/etc /etc/backup/excluded_patterns.txt 0 22 * * * root flock -n /etc/backup/home_backup.lock /usr/local/sbin/rsync_tmbackup.sh /home root@{backup_server}:/backup/{hostname}/home /etc/backup/excluded_patterns.txt''' if os.path.exists('/data'): CROND_TEMPLATE += '\n0 22 * * * root flock -n /etc/backup/data_backup.lock /usr/local/sbin/rsync_tmbackup.sh /data root@{backup_server}:/backup/{hostname}/data /etc/backup/excluded_patterns.txt' # crontab files can only contain lowercase and dashes, no _ or . cmds = [ 'cp rsync_tmbackup.sh /usr/local/sbin', 'mkdir -p /etc/backup', 'cp excluded_patterns.txt /etc/backup', 'cp /tmp/backup.cron /etc/cron.d/backup', ] server = utils.get_conf('BACKUP_SERVER', '') if server: if os.path.exists('/etc/cron.d/backup.cron'): print('/etc/cron.d/backup.cron already here, skipping install') else: with open('/tmp/backup.cron', 'w') as f: CROND = CROND_TEMPLATE.format(backup_server=server, hostname=socket.gethostname()) f.write(CROND) utils.run_commands(cmds) else: print('Missing BACKUP_SERVER in conf')