pg_backup init

This commit is contained in:
jaydee
2023-03-16 08:28:47 +01:00
parent ea2ec70701
commit 705c607ac0

62
pg_backup.py Normal file
View File

@@ -0,0 +1,62 @@
import re
import subprocess
import os
import json
import sys
import time
import json
import datetime
import getopt
import requests
import logging
try:
opts, args = getopt.getopt(sys.argv[1:], "hbl:o:s:t:", ["command=", "help", "output=", "backup"])
except getopt.GetoptError as err:
# print help information and exit:
print(str(err)) # will print something like "option -a not recognized"
#usage()
sys.exit(2)
output = None
# QJ : getopts
OUTPUT_FILE = "pg_backup.sql"
for o, a in opts:
if o == "-h":
_ACTION = True
elif o in ("-b", "--backup"):
_BACKUP = True
elif o in ("-l", "--level"):
_LOG_LEVEL = a.upper()
elif o in ("-o", "--output"):
OUTPUT_FILE = a
elif o in ("-s", "--schema"):
SCHEMA = a
elif o in ("-t", "--tables"):
TABLES = a
else:
_WIZZARD = True
LOG_FILE = "/tmp/pg_backup.log"
if _LOG_LEVEL == "DEBUG":
logging.basicConfig(filename=LOG_FILE, level=logging.DEBUG, format='%(asctime)s : %(levelname)s : %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.debug('using debug loging')
elif _LOG_LEVEL == "ERROR":
logging.basicConfig(filename=LOG_FILE, level=logging.ERROR, format='%(asctime)s : %(levelname)s : %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.info('using error loging')
elif _LOG_LEVEL == "SCAN":
logging.basicConfig(filename=LOG_FILE, level=logging.DEBUG, format='%(asctime)s : %(levelname)s : %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.info('using error loging')
else:
logging.basicConfig(filename=LOG_FILE, level=logging.INFO, format='%(asctime)s : %(levelname)s : %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
cmnd = "sudo -u postgres pg_dump {} {} > {}".format(TABLES, SCHEMA, OUTPUT_FILE)
print(cmnd)
#status, output = subprocess.getstatusoutput(cmnd)