mailling script and database backup script

This commit is contained in:
ashutosh.nehete 2025-05-22 20:03:49 +05:30
parent 19ad3e0426
commit 4906291dc2
4 changed files with 227 additions and 0 deletions

View File

@ -0,0 +1,83 @@
import os
import datetime
import subprocess
import zipfile
# Configuration
DB_HOST = '147.93.98.152'
DB_USER = 'devuser'
DB_PASSWORD = 'AppUser@123$'
DB_NAME_PROD = 'MarcoBMSProd'
DB_NAME_STAGE = 'MarcoBMSStage'
DB_NAME_GITA = 'gitea'
DB_NAME_MEDIAWIKI = 'mediawiki'
DB_NAME_REDMINE = 'redmine'
BACKUP_DIR = "C:/gita/database/backup"
MYSQLDUMP_PATH = r'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe'
LOG_FILE = r'C:\gita\backup_log.txt'
print(BACKUP_DIR)
# Generate backup filename with timestamp
def build_path(database_name):
timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M')
backup_filename = f"{timestamp} - {database_name} database backup.sql"
backup_path = os.path.join(BACKUP_DIR, backup_filename)
return backup_path
# Perform backup using mysqldump
def build_command(name):
command = [
MYSQLDUMP_PATH,
f"-h{DB_HOST}",
f"-u{DB_USER}",
f"-p{DB_PASSWORD}",
]
command.append(name)
return command
def start_backup(database):
with open(build_path(database), "w") as out_file:
subprocess.run(build_command(database), stdout=out_file, check=True)
def upload_to_git():
try:
# Move to backup directory
os.chdir(BACKUP_DIR)
# Git commands
subprocess.run(["git", "add", "."], check=True)
commit_message = f"Backup commit on {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
subprocess.run(["git", "commit", "-m", commit_message], check=True)
subprocess.run(["git", "push"], check=True)
print("Backup files pushed to Git repository.")
except subprocess.CalledProcessError as e:
print(f"Git upload failed: {e}")
# Run backup and log
try:
print("Backup started.")
# Run MySQL backup for production
start_backup(DB_NAME_PROD)
# Run MySQL backup for staging
start_backup(DB_NAME_STAGE)
# Run MySQL backup for Gita
start_backup(DB_NAME_GITA)
# Run MySQL backup for Redmine
start_backup(DB_NAME_REDMINE)
# Run MySQL backup for Wiki
start_backup(DB_NAME_MEDIAWIKI)
upload_to_git()
print("Backup process completed successfully.")
except subprocess.CalledProcessError as e:
print(f"Backup failed: {e}")
exit(0)

View File

@ -0,0 +1,48 @@
import sys
import requests
from datetime import date, timedelta
if len(sys.argv) > 1:
date = sys.argv[1]
else:
date = date.today() - timedelta(days=1)
project_id = "2618eb89-2823-11f0-9d9e-bc241163f504"
base_url = "http://localhost:5032/api"
def login():
payload = {
"username": "admin@marcoaiot.com",
"password": "User@123"
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(f"{base_url}/auth/login",json=payload,headers=headers)
data = response.json()['data']
jwt = data["token"]
return jwt
def project_proccess(jwt,project_id,date):
headers = {
"Authorization": f"Bearer {jwt}",
"Content-Type": "application/json"
}
print(date)
response = requests.get(f"{base_url}/report/project-statistics/{project_id}?date={date}", headers=headers)
return response.status_code
try:
jwt = login()
code = project_proccess(jwt,project_id,date)
if code == 200:
print("Email sent")
else:
print(f"{code}")
except Exception as e:
print(f"An error occurred: {e}")

View File

@ -0,0 +1,48 @@
import sys
import requests
from datetime import date, timedelta
if len(sys.argv) > 1:
date = sys.argv[1]
else:
date = date.today() - timedelta(days=1)
project_id = "2618eb89-2823-11f0-9d9e-bc241163f504"
base_url = "https://api.marcoaiot.com/api"
def login():
payload = {
"username": "admin@marcoaiot.com",
"password": "User@123"
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(f"{base_url}/auth/login",json=payload,headers=headers)
data = response.json()['data']
jwt = data["token"]
return jwt
def project_proccess(jwt,project_id,date):
headers = {
"Authorization": f"Bearer {jwt}",
"Content-Type": "application/json"
}
print(date)
response = requests.get(f"{base_url}/report/project-statistics/{project_id}?date={date}", headers=headers)
return response.status_code
try:
jwt = login()
code = project_proccess(jwt,project_id,date)
if code == 200:
print("Email sent")
else:
print(f"{code}")
except Exception as e:
print(f"An error occurred: {e}")

View File

@ -0,0 +1,48 @@
import sys
import requests
from datetime import date, timedelta
if len(sys.argv) > 1:
date = sys.argv[1]
else:
date = date.today() - timedelta(days=1)
project_id = "2618eb89-2823-11f0-9d9e-bc241163f504"
base_url = "https://stageapi.marcoaiot.com/api"
def login():
payload = {
"username": "admin@marcoaiot.com",
"password": "User@123"
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(f"{base_url}/auth/login",json=payload,headers=headers)
data = response.json()['data']
jwt = data["token"]
return jwt
def project_proccess(jwt,project_id,date):
headers = {
"Authorization": f"Bearer {jwt}",
"Content-Type": "application/json"
}
print(date)
response = requests.get(f"{base_url}/report/project-statistics/{project_id}?date={date}", headers=headers)
return response.status_code
try:
jwt = login()
code = project_proccess(jwt,project_id,date)
if code == 200:
print("Email sent")
else:
print(f"{code}")
except Exception as e:
print(f"An error occurred: {e}")