Last active
May 1, 2020 17:46
-
-
Save shamsway/b7a32d518264f5e79af5602e8c401d88 to your computer and use it in GitHub Desktop.
Copy oxidized network config backups to a managed volume
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import rubrik_cdm | |
import urllib3 | |
import os | |
import shutil | |
import logging | |
urllib3.disable_warnings() | |
rubrik = rubrik_cdm.Connect() | |
mvname = 'network-backups' | |
networkconfigs = '/etc/oxidized/configs' | |
backupdir = '/mnt/network-backups' | |
logfile = backupdir + '/network-backups.log' | |
logfile = '/tmp/network-backups.log' | |
begin_snapshot = rubrik.begin_managed_volume_snapshot(mvname) | |
# logging config | |
logging.basicConfig(filename=logfile, filemode='w', format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %H:%M:%S', level=logging.INFO) | |
logger = logging.getLogger(__name__) | |
# console handler | |
console = logging.StreamHandler() | |
console.setLevel(logging.INFO) | |
logging.getLogger("").addHandler(console) | |
logger.info('Managed Volume `{}` mounted at {} unlocked'.format(mvname, backupdir)) | |
src_files = os.listdir(networkconfigs) | |
for file_name in src_files: | |
full_file_name = os.path.join(networkconfigs, file_name) | |
if os.path.isfile(full_file_name): | |
logger.info('Copying {} to {}'.format(full_file_name, backupdir)) | |
try: | |
shutil.copy(full_file_name, backupdir) | |
except: | |
logging.error('Error copying {}'.format(full_file_name)) | |
shutil.copy(logfile, backupdir) | |
logger.info('Copy complete') | |
end_snapshot = rubrik.end_managed_volume_snapshot(mvname) | |
logger.info('Managed Volume `{}` locked'.format(mvname)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment