Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. from fabric.api import run, env, get, put
  2. from fabric.context_managers import cd
  3. import datetime
  4.  
  5. env.user = 'ec2-user'
  6. env.hosts = ['................us-east-1.elasticbeanstalk.com']
  7. env.key_filename = "......"
  8.  
  9. METABASE_DB_FILENAMES = ['metabase.db.mv.db', 'metabase.db.trace.db', 'metabase.db.lock.db']
  10.  
  11. def backup_metabase():
  12.     docker_image_name = run('sudo docker ps --format "{{.Names}}"')
  13.     for filename in METABASE_DB_FILENAMES:
  14.         command = "sudo docker cp %s:%s ." % (docker_image_name, filename)
  15.         run(command)
  16.     local_file_name = "metabasedb.tar.gz"
  17.     tar_command = "tar -caf %s %s" % (local_file_name, "metabase.db.*")
  18.     run(tar_command)
  19.     now_date = datetime.datetime.now().strftime('%Y_%m_%d')
  20.     downloaded_file_name = "metabasedb_%s.tar.gz" % now_date
  21.     get(local_file_name, downloaded_file_name)
  22.     delete_command = "rm -f %s" % " ".join(METABASE_DB_FILENAMES + [local_file_name])
  23.     run(delete_command)
  24.  
  25.    
  26. def restore_metabase():
  27.     input_file_name = "metabasedb.tar.gz"
  28.     restore_file_name = "metabaserestore.tar.gz"
  29.     put(input_file_name, restore_file_name)
  30.     tar_command = "tar -xvf %s" % restore_file_name
  31.     run(tar_command)
  32.     docker_image_name = run('sudo docker ps --format "{{.Names}}"')
  33.     for filename in METABASE_DB_FILENAMES:
  34.         command = "sudo docker cp ./%s %s:%s" % (filename, docker_image_name, filename)
  35.         run(command)
  36.     delete_command = "rm -f %s" % " ".join(METABASE_DB_FILENAMES + [restore_file_name])
  37.     run(delete_command)
  38.     restart_command = "sudo docker restart " + docker_image_name
  39.     run(restart_command)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement