mirror of
https://gitlab.sectorq.eu/jaydee/python.git
synced 2025-12-13 18:24:53 +01:00
pg_backup init
This commit is contained in:
62
pg_backup.py
Normal file
62
pg_backup.py
Normal 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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user