pythin_auth_barman_backup

This is an old revision of the document!


With python we can also automate the barman backup and the zabbix monitoring as follows:

<Code:bash|Source> import os import sys sys.path.append('/opt/applications/management-tools/apps/nms-scripts/service/scripts/functions/') sys.path.append('/opt/applications/management-tools/apps/nms-scripts/service/scripts/conf/') import zabbixconfig from zabbixconfig import zabbixmetric

def run_barmanbackup():

  try:
      print('Starting Backup')
      stream = os.popen('barman list-backup pgsql')
      failed_bkp_id = ""
      last_backup_id = ""
      failed_backups = 0
      total_backups = 0
      for line in stream.read().splitlines():
          if "FAILED" in line:
              failed_backups += 1
              failed_bkp_id = line.split(" ")[1]
              print('Found failed backup %s, will delete it.' % failed_bkp_id)
              delete_command = ('barman delete pgsql %s' % failed_bkp_id)
              os.system(delete_command)
          last_backup_id = line.split(" ")[1]
          total_backups += 1
      if total_backups - failed_backups >= 3:
          print('We have at least two healthy backups, will delete the last one: %s' % last_backup_id)
          delete_command = ('barman delete pgsql %s' % last_backup_id)
          os.system(delete_command)
      barman = os.popen('barman backup pgsql')
      output = barman.read()
      print(output)
      if output in 'ERROR':
          print("Failed running barman PostgreSQL backup")
          packet = zabbixmetric('bkp_status', "ERROR - FAILED running barman PostgreSQL backup")
      else:
          print("Backup run successfully")
          packet = zabbixmetric('bkp_status', "Backup completed successfully")
  except Exception as err:
      print(f'Failed running barman PostgreSQL backup : {err}')
      packet = zabbixmetric(f'bkp_status', 'ERROR - FAILED running barman PostgreSQL backup : {err}')

run_barmanbackup() </Cod>

That script will keep 3 backups on the barman server.

  • pythin_auth_barman_backup.1636020858.txt.gz
  • Last modified: 2021/11/04 10:14
  • by andonovj