mirror of
https://gitlab.sectorq.eu/jaydee/python.git
synced 2025-12-13 18:24:53 +01:00
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
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)
|
|
|
|
|