Skip to content

Instantly share code, notes, and snippets.

@njadhav1
Created September 18, 2018 01:54
Show Gist options
  • Save njadhav1/4ce926172e861a8956a8c2c7cc18b369 to your computer and use it in GitHub Desktop.
Save njadhav1/4ce926172e861a8956a8c2c7cc18b369 to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
import pymysql
import argparse
import os
import sys
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders as Encoders
# parse an command line arguments
parser=argparse.ArgumentParser()
parser.add_argument("--host", help="db_hostname" ,nargs='?', default="mfs021.tuxhub.com")
parser.add_argument("--username" , help="db_username",nargs='?', default="root")
parser.add_argument("--password" , help="db_password",nargs='?', default="")
parser.add_argument("--db_name" ,help="db_name", nargs='?', default="metastore" )
parser.add_argument("--table_name" ,help="table_name", nargs='?', default="VERSION" )
args=parser.parse_args()
# Unpack varibales
MYSQL_HOST = args.host
MYSQL_USER = args.username
MYSQL_PASS = args.password
MYSQL_DB = args.db_name
MYSQL_TABLE = args.table_name
# email varibales
MAILTO = "njadhav@mapr.com"
MAILFROM = "mysql@kuber4.tuxhub.com"
def mail( message , body ):
msg=MIMEMultipart()
msg['From'] = MAILFROM
msg['To'] = MAILTO
msg['Subject'] = message
#msg['Body'] = body
# email with attchemanet
# files=["mysql.err"]
# for f in files:
# part = MIMEBase('application', "octet-stream")
# part.set_payload( open(f,"r").read() )
# Encoders.encode_base64(part)
# part.add_header('Content-Disposition', 'attachment; filename="mysql.err"')
# msg.attach(part)
server=smtplib.SMTP("localhost")
message = 'Subject: {}\n\n{}'.format(msg['Subject'], body)
#server.sendmail( msg['From'] ,msg['To'], msg['Subject'])
#server.sendmail( msg['From'] ,msg['To'], msg['Body'])
#server.sendmail( msg['From'] ,msg['To'], msg['Subject'], msg['Body'])
server.sendmail( msg['From'], msg['To'], message)
server.quit()
try:
mysql_connect = pymysql.connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB)
except (pymysql.Error) as e :
mail(f"{MYSQL_HOST} ERROR : In Connection" , str(e))
sys.exit(1)
if mysql_connect != "None":
print(f"Sucessful connection to {MYSQL_HOST} ")
create_conn=mysql_connect.cursor()
create_conn.execute(f"select * from {MYSQL_TABLE} ;")
# fetch all
fetch_result=create_conn.fetchall()
for get_rows in fetch_result :
print(get_rows)
with open("/tmp" + "/" + f"{MYSQL_TABLE}.sql" , "w" ) as db_sql_write :
db_sql_write.write(str(get_rows))
#fetch_one=create_conn.fetchone()
#while fetch_one is not None :
# print(fetch_one)
# fetch_one=create_conn.fetchone()
create_conn.close()
mysql_connect.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment