# Backups all zope instances (any versions)
#
# Depends : zope_instance.py
-# Copyright (C) 2007-2008 Guillaume Pellerin
+# Copyright (C) 2007-2009 Guillaume Pellerin
import os
import sys
version = '0.2'
info = 'zope_backup v'+version+'\n'+ \
- """Copyright (C) 2007-2008 Guillaume Pellerin
+ """Copyright (C) 2007-2009 Guillaume Pellerin
Usage: zope_backup DIRECTORY
where DIRECTORY is the directory where you want to backup
the instances of the different versions of zope."""
+print info
-if len(sys.argv) < 2:
- sys.exit(info)
-else :
- backup_dir = sys.argv[1]
+backup_dir = sys.argv[-1]
+if os.path.exists(backup_dir):
+ sys.exit('This backup directory does not exists !')
z = ZopeInstall()
instances = z.get_instances()
for version in instances:
for instance in instances[version]:
z = ZopeInstance(version, instance)
- print z.get_instance_dir()
+ print 'Backuping : ' + z.get_instance_dir() + '...'
z.backup(backup_dir)
- print version + ': ' + instance + ' backuped !'
+ print version + ': ' + instance + ' backuped !'
if __name__ == '__main__':
backup_all()
print "Backup_all Zopes done !"
-
-
distribution used"""
def __init__(self):
- self.versions = ['2.7', '2.9', '2.8', '2.10']
- self.instance_main_dir = '/var/lib'
- self.zope_main_dir = '/usr/lib'
-
+ self.versions = ['2.7', '2.9', '2.8', '2.10']
+ self.instance_main_dir = '/var/lib'
+ self.zope_main_dir = '/usr/lib'
def get_instances(self):
"""Return all instances in all zope versions installed"""
self.instance_etc = self.instance_dir + os.sep + 'etc' + os.sep
self.instance_lib = self.instance_dir + os.sep + 'lib' + os.sep
self.repozo = self.zope_main_dir + os.sep + 'zope' + self.version + os.sep + 'bin' + os.sep + 'repozo.py'
- self.instance_backup_dir = self.backup_dir + os.sep + self.version + os.sep + self.instance
def get_instance_dir(self):
return self.instance_dir
os.system(command)
def untar(self, name, sub_dir):
- os.chdir(self.instance_backup_dir)
+ os.chdir(self.instance_dir)
command = 'tar xzf '+self.instance_backup_dir+os.sep+name+'.tar.gz && ' + \
'rsync -a --delete ' + self.instance_backup_dir+os.sep+sub_dir + \
' ' + sub_dir + os.sep + ' && ' + \
def backup(self, backup_dir):
"""Backup the instance"""
self.backup_dir = backup_dir
-
+ self.instance_backup_dir = self.backup_dir + os.sep + self.version + os.sep + self.instance
path = self.instance_backup_dir+ os.sep + 'Data'
if not os.path.exists(path):