From 803c1e8a4ae7b0603a37892c8de95a6760bdec71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Tue, 16 Dec 2014 01:47:33 +0100 Subject: [PATCH] =?UTF-8?q?backups=20des=20homes=20sur=20une=20machine=20s?= =?UTF-8?q?=C3=A9par=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backups/generate_configs.py | 61 +++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/backups/generate_configs.py b/backups/generate_configs.py index 48ec54af..9d5ec08d 100755 --- a/backups/generate_configs.py +++ b/backups/generate_configs.py @@ -19,44 +19,45 @@ import backups import os import pwd import grp +import socket rootpath = "/etc/backuppc/" if __name__ == "__main__": root = pwd.getpwnam('root').pw_uid wwwdata = grp.getgrnam("www-data").gr_gid - for hoteRsync in backups.RsyncHosts: - backup_folders = backups.RsyncHostsToBackup[hoteRsync] - backup_folders.update(backups.RsyncClassicalDirs) - for excluded in backups.RsyncHostsToExclude[hoteRsync]: - backup_folders.pop(excluded) - with open(rootpath + hoteRsync + ".pl", "w") as fichier: - fichier.write("""$Conf{RsyncShareName} = ['%(shares)s']; -$Conf{BackupFilesExclude} = { - %(excludes)s -}; -$Conf{IncrPeriod} = %(incr)s; -$Conf{FullPeriod} = %(full)s;""" % {'shares' : "', '".join(backup_folders.keys()), 'excludes' : "\n ".join(["'%s' => ['lost+found']," % nom for nom in backup_folders.keys()]), 'incr': backups.RsyncPeriods[hoteRsync][0], 'full': backups.RsyncPeriods[hoteRsync][1]}) - if backups.DumpPreUserCmd[hoteRsync]: - fichier.write("""\n$Conf{DumpPreUserCmd} = '%(dp)s';""" % {'dp':backups.DumpPreUserCmd[hoteRsync],}) - os.chmod(rootpath + hoteRsync + ".pl", 0644) - os.chown(rootpath + hoteRsync + ".pl", root, wwwdata) + if "babar" in socket.getfqdn(): + for hoteRsync in backups.RsyncHosts: + backup_folders = backups.RsyncHostsToBackup[hoteRsync] + backup_folders.update(backups.RsyncClassicalDirs) + for excluded in backups.RsyncHostsToExclude[hoteRsync]: + backup_folders.pop(excluded) + with open(rootpath + hoteRsync + ".pl", "w") as fichier: + fichier.write("""$Conf{RsyncShareName} = ['%(shares)s']; + $Conf{BackupFilesExclude} = { + %(excludes)s + }; - for homeDir in backups.HomeHosts: - with open(rootpath + "home-" + homeDir + ".pl", "w") as fichier: - fichier.write("""# Ces fichiers pointent vers zbee et servent à backuper les homes en séparé. -$Conf{ClientTimeout} = 86400; + $Conf{IncrPeriod} = %(incr)s; + $Conf{FullPeriod} = %(full)s;""" % {'shares' : "', '".join(backup_folders.keys()), 'excludes' : "\n ".join(["'%s' => ['lost+found']," % nom for nom in backup_folders.keys()]), 'incr': backups.RsyncPeriods[hoteRsync][0], 'full': backups.RsyncPeriods[hoteRsync][1]}) + if backups.DumpPreUserCmd[hoteRsync]: + fichier.write("""\n$Conf{DumpPreUserCmd} = '%(dp)s';""" % {'dp':backups.DumpPreUserCmd[hoteRsync],}) + os.chmod(rootpath + hoteRsync + ".pl", 0644) + os.chown(rootpath + hoteRsync + ".pl", root, wwwdata) -$Conf{XferMethod} = 'tar'; -$Conf{TarShareName} = ['/home-adh/%(share)s']; -$Conf{TarClientPath} = '/bin/tar'; -$Conf{SshPath} = '/usr/bin/ssh'; + if "omnomnom" in socket.getfqdn(): + for homeDir in backups.HomeHosts: + with open(rootpath + "home-" + homeDir + ".pl", "w") as fichier: + fichier.write("""# Ces fichiers servent à backuper les homes en séparé. + $Conf{ClientTimeout} = 86400; -$Conf{ClientNameAlias} = '%(myip)s'; + $Conf{XferMethod} = 'tar'; + $Conf{TarShareName} = ['/home/%(share)s']; + $Conf{TarClientPath} = '/usr/bin/env LC_ALL=C sudo /usr/local/bin/backuppc_tar -v -f - -C $shareName'; -$Conf{BackupFilesExclude} = { - '/home-adh/%(share)s' => ['lost+found'], -};""" % {'share' : homeDir, 'myip' : backups.ipnfs}) - os.chmod(rootpath + "home-" + homeDir + ".pl", 0644) - os.chown(rootpath + "home-" + homeDir + ".pl", root, wwwdata) + $Conf{BackupFilesExclude} = { + '/home-adh/%(share)s' => ['lost+found'], + };""" % {'share' : homeDir, 'myip' : backups.ipnfs}) + os.chmod(rootpath + "home-" + homeDir + ".pl", 0644) + os.chown(rootpath + "home-" + homeDir + ".pl", root, wwwdata)