Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from fabric.api import run, env, get, put
- from fabric.context_managers import cd
- import datetime
- env.user = 'ec2-user'
- env.hosts = ['................us-east-1.elasticbeanstalk.com']
- env.key_filename = "......"
- METABASE_DB_FILENAMES = ['metabase.db.mv.db', 'metabase.db.trace.db', 'metabase.db.lock.db']
- def backup_metabase():
- docker_image_name = run('sudo docker ps --format "{{.Names}}"')
- for filename in METABASE_DB_FILENAMES:
- command = "sudo docker cp %s:%s ." % (docker_image_name, filename)
- run(command)
- local_file_name = "metabasedb.tar.gz"
- tar_command = "tar -caf %s %s" % (local_file_name, "metabase.db.*")
- run(tar_command)
- now_date = datetime.datetime.now().strftime('%Y_%m_%d')
- downloaded_file_name = "metabasedb_%s.tar.gz" % now_date
- get(local_file_name, downloaded_file_name)
- delete_command = "rm -f %s" % " ".join(METABASE_DB_FILENAMES + [local_file_name])
- run(delete_command)
- def restore_metabase():
- input_file_name = "metabasedb.tar.gz"
- restore_file_name = "metabaserestore.tar.gz"
- put(input_file_name, restore_file_name)
- tar_command = "tar -xvf %s" % restore_file_name
- run(tar_command)
- docker_image_name = run('sudo docker ps --format "{{.Names}}"')
- for filename in METABASE_DB_FILENAMES:
- command = "sudo docker cp ./%s %s:%s" % (filename, docker_image_name, filename)
- run(command)
- delete_command = "rm -f %s" % " ".join(METABASE_DB_FILENAMES + [restore_file_name])
- run(delete_command)
- restart_command = "sudo docker restart " + docker_image_name
- run(restart_command)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement