tw22
This commit is contained in:
86
Backup/10 MedicusBackup.py
Normal file
86
Backup/10 MedicusBackup.py
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime
|
||||||
|
import traceback
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from EmailMessagingGraph import send_mail
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# CONFIG – TEST PC
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
GBAK = r"C:\Program Files\Firebird\Firebird_2_5_CGM\bin\gbak.exe"
|
||||||
|
DB = r"localhost/3050:Z:\Medicus 3\data\MEDICUS.FDB"
|
||||||
|
BACKUP_DIR = Path(r"D:\medicusbackup")
|
||||||
|
|
||||||
|
FB_USER = "SYSDBA"
|
||||||
|
FB_PASS = "masterkey"
|
||||||
|
|
||||||
|
MAIL_TO = "vladimir.buzalka@buzalka.cz"
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# MAIN
|
||||||
|
# =========================
|
||||||
|
|
||||||
|
def main():
|
||||||
|
BACKUP_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
now = datetime.now()
|
||||||
|
ts = now.strftime("%Y-%m-%d_%H-%M-%S")
|
||||||
|
|
||||||
|
fbk = BACKUP_DIR / f"MEDICUS_{ts}.fbk"
|
||||||
|
log = BACKUP_DIR / f"MEDICUS_{ts}.log"
|
||||||
|
|
||||||
|
cmd = [
|
||||||
|
GBAK,
|
||||||
|
"-b",
|
||||||
|
"-user", FB_USER,
|
||||||
|
"-pas", FB_PASS,
|
||||||
|
DB,
|
||||||
|
str(fbk),
|
||||||
|
"-v",
|
||||||
|
]
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(log, "w", encoding="utf-8") as f:
|
||||||
|
subprocess.run(
|
||||||
|
cmd,
|
||||||
|
stdout=f,
|
||||||
|
stderr=subprocess.STDOUT,
|
||||||
|
check=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
send_mail(
|
||||||
|
MAIL_TO,
|
||||||
|
"✅ MEDICUS – záloha OK (test PC)",
|
||||||
|
f"""Záloha MEDICUS proběhla úspěšně.
|
||||||
|
|
||||||
|
Čas: {now}
|
||||||
|
Soubor: {fbk}
|
||||||
|
Log: {log}
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
|
||||||
|
except Exception:
|
||||||
|
err = traceback.format_exc()
|
||||||
|
|
||||||
|
send_mail(
|
||||||
|
MAIL_TO,
|
||||||
|
"❌ MEDICUS – CHYBA ZÁLOHY (test PC)",
|
||||||
|
f"""Při záloze MEDICUS došlo k chybě.
|
||||||
|
|
||||||
|
Čas: {now}
|
||||||
|
|
||||||
|
Chyba:
|
||||||
|
{err}
|
||||||
|
|
||||||
|
Log:
|
||||||
|
{log}
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
46
Backup/Compugroup backup.txt
Normal file
46
Backup/Compugroup backup.txt
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
Upravená verze skriptu, prosím upravte si cesty, toto vše vložit do nějakého cmd souboru:
|
||||||
|
editují se pouze následující sekce:
|
||||||
|
rem /zalozeni slozek do kterych se ma zalohovat kdyz neexistuji/
|
||||||
|
rem /nastaveni serveru a portu a cest k db/
|
||||||
|
rem /zaloha/ - v případě že je soubor gbak umístěn jinde, je jiná cesta k Firebirdu
|
||||||
|
rem/odkud kam kopirovat/
|
||||||
|
@echo off
|
||||||
|
rem /nacteni aktualniho datumu a casu/
|
||||||
|
For /f "tokens=1-3 delims=/." %%a in ("%DATE%") do (set mydate=%%c-%%b-%%a)
|
||||||
|
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a-%%b)
|
||||||
|
@echo on
|
||||||
|
rem /zalozeni slozek do kterych se ma zalohovat kdyz neexistuji/
|
||||||
|
if not exist "C:\zalohy\MEDICUS" mkdir "C:\zalohy\MEDICUS"
|
||||||
|
if not exist "C:\backup\MEDICUS" mkdir "C:\backup\MEDICUS"
|
||||||
|
rem /nastaveni serveru a portu a cest k db/
|
||||||
|
set ufdb="localhost/3050:c:\Medicus\Medicus Komfort\data\sestavy.fdb"
|
||||||
|
rem /nastaveni cesty pro umisteni zalohy/
|
||||||
|
set ufbk="C:\zalohy\MEDICUS\MEDICUS3_%mydate%%mytime%.FBK" -y "C:\zalohy\MEDICUS\log%mydate%_%mytime%.txt"
|
||||||
|
rem /zaloha/
|
||||||
|
"C:\Program Files (x86)\Firebird\Firebird_2_5\bin\gbak" -b -user SYSDBA -pas masterke %ufdb% %ufbk% -v
|
||||||
|
rem/odkud kam kopirovat/
|
||||||
|
set odkud="C:\zalohy\MEDICUS*.*"
|
||||||
|
set kam="C:\backup\MEDICUS"
|
||||||
|
SET drv1=%odkud:~1,1%
|
||||||
|
SET drv2=%kam:~1,1%
|
||||||
|
if %drv1%==%drv2% goto :move
|
||||||
|
if not %drv1%==%drv2% goto :copy
|
||||||
|
:move
|
||||||
|
rem /presunuti do jineho umisteni/
|
||||||
|
move /Y %odkud% %kam%
|
||||||
|
goto :exit
|
||||||
|
:copy
|
||||||
|
rem /kopiruj a smaz/
|
||||||
|
copy /Y %odkud% %kam%
|
||||||
|
del /Q %odkud%
|
||||||
|
goto :exit
|
||||||
|
:exit
|
||||||
|
timeout /T 5
|
||||||
|
exit
|
||||||
|
Zajímavé odkazy rovněž zde:
|
||||||
|
https://docplayer.cz/665150-Databaze-firebird-zalohovani-obnoveni-roman-fic-1-29-14-databaze.html
|
||||||
|
http://www.epos.cz/obis4wiki/firebird:zalohovani_databazi_-_gbak
|
||||||
|
Pohodový den přeje
|
||||||
|
Mgr. Josef Kauc
|
||||||
|
KONZULTANT MEDICUS
|
||||||
Reference in New Issue
Block a user