def prepare_command(): log.mark('preparing couchdb') log.info('removing unneeded erlang packages') with config['couchdb_dir'].as_working_dir(): lib_dir = path('lib') for lib_name in rm_erl_libs: lib = lib_dir.dirs(lib_name) if lib: lib[0].rmtree() else: log.warn('could not find %s' % lib_name) for rm in [ 'erts-*/src', 'erts-*/include', 'erts-*/man', 'erts-*/doc', 'lib/*/src', 'lib/*/examples', 'lib/*/include', 'share/info', 'share/couchdb/www/docs/', ]: for p in path('.').glob(rm): p.rmtree(ignore_errors=True)
def unpack_command(): log.mark('unpacking packages') config['build_dir'].ensure_dir() with config['build_dir'].as_working_dir(): for fname in [config['geocouch_pkg'], config['couchdb_pkg'], config['openssl_pkg'], config['gdal_pkg'], config['geos_pkg'], config['proj4_pkg'], config['mapproxy_templates_pkg']]: log.info('unpacking %s', fname) tar = tarfile.open(fname) tar.extractall(members=no_repo(tar)) tar.close()
def unpack_command(): log.mark('unpacking packages') config['build_dir'].ensure_dir() with config['build_dir'].as_working_dir(): for fname in [ config['geocouch_pkg'], config['couchdb_pkg'], config['openssl_pkg'], config['gdal_pkg'], config['geos_pkg'], config['proj4_pkg'], config['mapproxy_templates_pkg'] ]: log.info('unpacking %s', fname) tar = tarfile.open(fname) tar.extractall(members=no_repo(tar)) tar.close()
def mysqldump(): for DB in config['databases']: # check/fix paths in BACKUP_DIR - remove trailing slash BACKUP_DIR = config['rsync']['backup_dir'] if not BACKUP_DIR[-1] == '/': pass else: BACKUP_DIR = config['rsync']['backup_dir'][:-1] # check/fix paths in mysql_backup_dir - add leading slash MYSQL_DIR = config['mysql']['backup_dir'] if MYSQL_DIR[0] == '/': pass else: MYSQL_DIR = '/' + MYSQL_DIR # check/fix paths in mysql_backup_dir - add trailing slash if MYSQL_DIR[-1] == '/': pass else: MYSQL_DIR = MYSQL_DIR + '/' # fix paths in DATETIME - add trailing slash DATETIME = time.strftime("%d-%m-%Y") DATETIME = DATETIME + '/' MYSQL_ROOT_DIR = BACKUP_DIR + MYSQL_DIR REAL_DIR = BACKUP_DIR + MYSQL_DIR + DATETIME # ensure that backup_dirs exist outdir = path(REAL_DIR) if not outdir.exists(): log.mark('Creating mysql dir %s' % outdir) outdir.makedirs() # dumping all databases sh('/usr/bin/echo Dumping %s >> %s' % (DB, config['rsync']['log_file'])) sh('/usr/bin/mysqldump -h %s -u %s -p%s %s | gzip -9 > %s%s.sql.gz' % (config['mysql']['server'], config['mysql']['user'], config['mysql']['password'], DB, REAL_DIR, DB)) sh('/usr/bin/echo Done >> %s' %config['rsync']['log_file']) # cleaning old databases in mysql_backup_dir sh('/usr/bin/find %s -type d -mtime +%s -exec /bin/rm -rf {} \; &>/dev/null' % (MYSQL_ROOT_DIR, config['find']['days']))
def rsync(): """ Sync everything from config['dirs'] to config['backup_dir'] """ for DIRS in config['dirs']: # check/fix paths in BACKUP_DIR - remove trailing slash BACKUP_DIR = config['rsync']['backup_dir'] if not config['rsync']['backup_dir'][-1] == '/': pass else: BACKUP_DIR = config['rsync']['backup_dir'][:-1] # check/fix paths in DIRS - add colon before dir and trailing slash in the end if DIRS[-1] == '/': REAL_DIR = DIRS pass else: REAL_DIR = DIRS + '/' if REAL_DIR[0] == ':': pass else: REAL_DIR = ':' + REAL_DIR # ensure that backup_dirs exist for dirname in config['dirs']: outdir = path( BACKUP_DIR + dirname) if not outdir.exists(): log.mark('Creating backup_dirs %s' % outdir) outdir.makedirs() # check/fix USER - add trailing @ to the username USER = config['rsync']['user'] if config['rsync']['user'][-1] == '@': pass else: USER = USER + '@' log.mark('Starting rsync.....') sh('/usr/bin/rsync %s %s%s%s %s%s &>>%s' % (config['rsync']['args'], USER, config['rsync']['server'], REAL_DIR, config['rsync']['backup_dir'][:-1], REAL_DIR[1:], config['rsync']['log_file']))
def prepare_geocouch_command(): log.mark('preparing geocouch') lib_geocouch_dir = config['couchdb_dir'] / 'lib' / 'geocouch' lib_geocouch_dir.ensure_dir() (config['geocouch_dir'] / 'ebin').copytree(lib_geocouch_dir / 'ebin')