Newer
Older
#!/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')