예제 #1
0
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)
예제 #2
0
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()
예제 #3
0
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()
예제 #4
0
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)
예제 #5
0
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']))
예제 #6
0
파일: rsync.py 프로젝트: ntpetrov/pybackup
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']))
예제 #7
0
파일: build.py 프로젝트: gr2m/gbi-client
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')
예제 #8
0
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')