Skip to content

Instantly share code, notes, and snippets.

@LogIN-
Created June 20, 2016 13:46
Show Gist options
  • Select an option

  • Save LogIN-/88fa5696e2cde48527f74b35022455d6 to your computer and use it in GitHub Desktop.

Select an option

Save LogIN-/88fa5696e2cde48527f74b35022455d6 to your computer and use it in GitHub Desktop.
Simple Backup of XEN Hosts - xm linux
# cfg.py START
""" Configuration File """
xenConfigBackupDir = '/etc/xen/vds/backup'
xenConfigDir = '/etc/xen/vds/'
xenImageDir = '/srv/xen/domains/'
backupTmpTarget = '/opt/scripts/xenbackup/backup/'
backupFinTarget = '/srv/xen/backup_xen'
backupDiskTarget = '/mnt/usbdisk'
# cfg.py END
# xenbackup.py START
#!/usr/bin/env python
import os
import cfg
import time
import sys
#if os.path.getsize(cfg.backupFinTarget):
# os.system('mount ' + cfg.backupFinTarget)
# if os.path.getsize(cfg.backupFinTarget):
# sys.exit()
for domain in os.listdir(cfg.xenConfigBackupDir):
domainName = domain.split('.')
domainName = domainName[0]
print "Stop: " + domainName
os.system('xm shutdown ' + domainName)
print "Wait: 100 seconds"
time.sleep(100)
""" definitions """
tarName = 'disk_' + domainName + '_' + time.strftime("%d%m%Y") + '.tar.gz'
imageFile = cfg.xenImageDir + domainName + '/disk.img'
if os.path.isfile(imageFile):
print "Start: copy and gzip"
os.system('tar cfz ' + cfg.backupTmpTarget + tarName + ' ' + imageFile)
print "ready copy"
print "Start: domain" + domain
os.system('xm create ' + cfg.xenConfigDir + domain)
time.sleep(60)
# os.system('cp ' + cfg.backupTmpTarget + tarName + ' ' + cfg.backupDiskTarget + '/' + domainName)
os.system('mv ' + cfg.backupTmpTarget + tarName + ' ' + cfg.backupFinTarget + '/' + domainName)
# xenbackup.py END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment