Renz
Осваивающий
- Сообщения
- 63
- Репутация
- 37
AutoIt: 3.3.6.1
Версия: 1.0
Категория: База данных
Описание:
Программа для создания backups баз данных firebird.
Создание бекапа базы данных по шаблону:
название базы данных +дата(YYYYMMDD)+время(hhmm)+backup.bak
Архивация бекапа.
Отправка на FTP.
Для настройки параметров запустить программу с ключем "-s"
Код/Пример:
Файл: BackupFireBird_v1
Снимок:
История версий:
Источник: autoit-script.ru
Автор: Renz
Версия: 1.0
Категория: База данных
Описание:
Программа для создания backups баз данных firebird.
Создание бекапа базы данных по шаблону:
название базы данных +дата(YYYYMMDD)+время(hhmm)+backup.bak
Архивация бекапа.
Отправка на FTP.
Для настройки параметров запустить программу с ключем "-s"
Код/Пример:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <FTPEx.au3>
If FileExists ( @ScriptDir & "\setup.ini" ) = 0 Then
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Server", "localhost:" ) ;1
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Base", "" ) ;2
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "User", "SYSDBA" ) ;3
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Pass", "masterkey" ) ;4
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Backup", "" ) ;5
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "FireBird", "" ) ;6
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Server", "" ) ;1
IniWrite( @ScriptDir & "\setup.ini", "FTP", "User", "" ) ;2
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Pass", "" ) ;3
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Dir", "/" ) ;4
IniWrite( @ScriptDir & "\setup.ini", "FTP", "UsePostFTP", "" ) ;5
EndIf
$aSetupFireBird = IniReadSection(@ScriptDir & "\setup.ini", "FireBird" )
Global $sServer = $aSetupFireBird[1][1]
Global $sBase = $aSetupFireBird[2][1]
Global $sUser = $aSetupFireBird[3][1]
Global $sPass = $aSetupFireBird[4][1]
Global $sPathBackup = $aSetupFireBird[5][1]
Global $sPathFirebird = $aSetupFireBird[6][1]
$aSetupFTP = IniReadSection(@ScriptDir & "\setup.ini", "FTP" )
Global $sServerFTP = $aSetupFTP[1][1]
Global $sUserFTP = $aSetupFTP[2][1]
Global $sPassFTP = $aSetupFTP[3][1]
Global $sDirFTP = $aSetupFTP[4][1]
Global $sUsePostFTP = $aSetupFTP[5][1]
If $CmdLine[0] > 0 Then
If $CmdLine[1] = "-s" Then
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Setting backup firebird", 505, 238, 192, 114)
$Group1 = GUICtrlCreateGroup("FireBird", 8, 8, 289, 217)
$ServerInput = GUICtrlCreateInput($sServer, 56, 24, 233, 21)
$BaseInput = GUICtrlCreateInput($sBase, 55, 53, 201, 21)
$Label1 = GUICtrlCreateLabel("Server", 16, 24, 35, 17)
$Label2 = GUICtrlCreateLabel("Base", 16, 56, 28, 17)
$UserInput = GUICtrlCreateInput($sUser, 55, 85, 233, 21)
$Label3 = GUICtrlCreateLabel("User", 16, 88, 26, 17)
$PassInput = GUICtrlCreateInput($sPass, 56, 112, 233, 21)
$Label4 = GUICtrlCreateLabel("Pass", 16, 112, 27, 17)
$BackupInput = GUICtrlCreateInput($sPathBackup, 87, 141, 169, 21)
$Label5 = GUICtrlCreateLabel("Path backup", 16, 144, 65, 17)
$SelectBackup = GUICtrlCreateButton("...", 264, 144, 27, 17)
$FireBirdInput = GUICtrlCreateInput($sPathFirebird, 87, 165, 169, 21)
$SelectFirebird = GUICtrlCreateButton("...", 264, 168, 27, 17)
$Label6 = GUICtrlCreateLabel("Path FireBird", 16, 168, 64, 17)
$SelectBase = GUICtrlCreateButton("...", 264, 56, 27, 17)
$ControlButtton = GUICtrlCreateButton("Control", 16, 192, 75, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("FTP", 304, 8, 193, 185)
$PostFTP = GUICtrlCreateCheckbox("Post", 312, 120, 177, 17)
$ServerFTPInput = GUICtrlCreateInput($sServerFTP, 344, 24, 145, 21)
$UserFTPInput = GUICtrlCreateInput($sUserFTP, 344, 48, 145, 21)
$PassFTPInput = GUICtrlCreateInput($sPassFTP, 344, 72, 145, 21, $ES_PASSWORD)
$Label7 = GUICtrlCreateLabel("Server", 312, 24, 35, 17)
$Label8 = GUICtrlCreateLabel("User", 312, 48, 26, 17)
$Label9 = GUICtrlCreateLabel("Pass", 312, 72, 27, 17)
$Label10 = GUICtrlCreateLabel("Dir", 312, 96, 25, 17)
$DirFTPInput = GUICtrlCreateInput($sDirFTP, 344, 96, 145, 21)
If $sUsePostFTP = "1" Then
GUICtrlSetState ( $PostFTP, $GUI_CHECKED )
Else
GUICtrlSetState ( $ServerFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $UserFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $PassFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $DirFTPInput, $GUI_DISABLE )
EndIf
GUICtrlCreateGroup("", -99, -99, 1, 1)
$SaveButton = GUICtrlCreateButton("Save", 424, 200, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
Case $nMsg = $SelectBackup
$sSelectFolder = FileSelectFolder( "Select dir backup","",1 )
If $sSelectFolder <> "" Then
$sPathBackup = $sSelectFolder
GUICtrlSetData ( $BackupInput, $sPathBackup )
EndIf
Case $nMsg = $SelectBase
$sSelectFile = FileOpenDialog ( "Select file base", "","All (*.*)" )
If $sSelectFile <> "" Then
$sBase = $sSelectFile
GUICtrlSetData ( $BaseInput, $sBase )
EndIf
Case $nMsg = $SelectFirebird
$sSelectFolder = FileSelectFolder( "Select dir backup","", 1 )
If $sSelectFolder <> "" Then
$sPathFirebird = $sSelectFolder
GUICtrlSetData ( $FireBirdInput, $sPathFirebird )
EndIf
Case $nMsg = $ControlButtton
ReadParam()
ControlConnectFireBird()
Case $nMsg = $SaveButton
ReadParam()
SaveParam()
Case $nMsg = $PostFTP
If GUICtrlRead ( $PostFTP) = 1 Then
$sUsePostFTP = "1"
GUICtrlSetState ( $ServerFTPInput, $GUI_ENABLE )
GUICtrlSetState ( $UserFTPInput, $GUI_ENABLE )
GUICtrlSetState ( $PassFTPInput, $GUI_ENABLE )
GUICtrlSetState ( $DirFTPInput, $GUI_ENABLE )
ElseIf GUICtrlRead ( $PostFTP) = 4 Then
$sUsePostFTP = ""
GUICtrlSetState ( $ServerFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $UserFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $PassFTPInput, $GUI_DISABLE )
GUICtrlSetState ( $DirFTPInput, $GUI_DISABLE )
EndIf
EndSelect
WEnd
Exit
Else
MsgBox(0,"",'Incorrectly specified' &@CRLF& 'Run script with param. "-s"')
Exit
EndIf
EndIf
If $sServer = "" OR $sPathFirebird = "" OR $sBase = "" OR $sUser = "" OR $sPass = "" OR $sPathBackup = "" Then
MsgBox(0,"Error",'Not all parameters are indicated ' &@CRLF& 'Run script with param. "-s"' )
Exit
Else
$sNameBase = StringRight($sBase, StringLen($sBase)-StringInStr( $sBase,"\",0,-1))
$sNameBase = StringLeft( $sNameBase, StringInStr( $sNameBase,".",0,1)-1)
$sDate = ""& @YEAR & @MON & @MDAY & "_" & @HOUR & @MIN
$sTemplateBackupName = $sNameBase &"_"& $sDate & "_backup.bak"
$sKeyGbak = "-b -g "& $sBase &" "& $sPathBackup &"\"&$sTemplateBackupName &" -user " & $sUser & " -pass " & $sPass
ShellExecuteWait("gbak.exe",$sKeyGbak, $sPathFirebird, "open", @SW_HIDE)
Install7z()
$sTemplate7z = $sNameBase &"_"& $sDate & "_backup.7z"
$sKey7z = "a -t7z "& $sPathBackup &"\"&$sTemplate7z & " -mx3 " & $sPathBackup&"\"&$sTemplateBackupName & " -ssw"
ShellExecuteWait( "7z.exe", $sKey7z, @ScriptDir, "open", @SW_HIDE)
FileDelete ( $sPathBackup&"\"&$sTemplateBackupName )
PostFTP()
EndIf
Func PostFTP()
If $sUsePostFTP <> "" Then
If $sServerFTP = "" OR $sUserFTP = "" OR $sUserFTP = "" OR $sPassFTP = "" OR $sDirFTP Then
$OpenFTP = _FTP_Open('FTP')
$Conn = _FTP_Connect($OpenFTP, $sServerFTP, $sUserFTP, $sPassFTP ,1 )
If $Conn <> 0 Then
_FTP_FilePut($Conn, $sPathBackup &"\"& $sTemplate7z, $sDirFTP & $sTemplate7z)
EndIf
$Ftpc = _FTP_Close($OpenFTP)
EndIf
EndIf
Return
EndFunc
Func Install7z()
FileInstall ("C:\Program Files\7-Zip\7z.exe",@ScriptDir&"\7z.exe")
FileInstall ("C:\Program Files\7-Zip\7z.dll",@ScriptDir&"\7z.dll")
EndFunc
Func SaveParam()
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Server", $sServer ) ;1
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Base", $sBase ) ;2
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "User", $sUser ) ;3
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Pass", $sPass ) ;4
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "Backup", $sPathBackup ) ;5
IniWrite( @ScriptDir & "\setup.ini", "FireBird", "FireBird", $sPathFirebird ) ;6
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Server", $sServerFTP ) ;1
IniWrite( @ScriptDir & "\setup.ini", "FTP", "User", $sUserFTP ) ;2
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Pass", $sPassFTP ) ;3
IniWrite( @ScriptDir & "\setup.ini", "FTP", "Dir", $sDirFTP ) ;4
IniWrite( @ScriptDir & "\setup.ini", "FTP", "UsePostFTP", $sUsePostFTP ) ;5
EndFunc
Func ReadParam()
$sServer = StringStripWS( GUICtrlRead ($ServerInput),3)
$sBase = StringStripWS( GUICtrlRead ($BaseInput) ,3)
$sUser = StringStripWS( GUICtrlRead ($UserInput) ,3)
$sPass = StringStripWS( GUICtrlRead ($PassInput) ,3)
$sPathBackup = StringStripWS( GUICtrlRead ($BackupInput) ,3)
$sPathFirebird = StringStripWS( GUICtrlRead ($FireBirdInput) ,3)
$sServerFTP = StringStripWS( GUICtrlRead ($ServerFTPInput),3)
$sUserFTP = StringStripWS( GUICtrlRead ($UserFTPInput),3)
$sPassFTP = StringStripWS( GUICtrlRead ($PassFTPInput),3)
$sDirFTP = StringStripWS( GUICtrlRead ($DirFTPInput),3)
If GUICtrlRead ( $PostFTP) = 1 Then
$sUsePostFTP = "1"
ElseIf GUICtrlRead ( $PostFTP) = 4 Then
$sUsePostFTP = ""
EndIf
EndFunc
Func ControlConnectFireBird()
If $sServer = "" OR $sPathFirebird = "" OR $sBase = "" OR $sUser = "" OR $sPass = "" Then
MsgBox(0,"Error","Not all parameters are indicated")
Return
EndIf
$sFileOUT = @TempDir&"\"&"OUTFB.txt"
$fileOUT = FileOpen ( $sFileOUT, 2 )
FileClose($fileOUT)
$sKeyIsql =" -o " & $sFileOUT & " -u " & $sUser & " -p " & $sPass & " " & $sServer & $sBase
$pidIsql = Run($sPathFirebird &"\"& "isql.exe " & $sKeyIsql, $sPathFirebird, @SW_HIDE, $STDERR_MERGED + $STDOUT_CHILD )
StdioClose ( $pidIsql )
Sleep(1500)
If FileReadLine ( $sFileOUT, 1 ) <> "" Then
MsgBox(0,"",FileReadLine ( $sFileOUT, 1 ))
Else
MsgBox(0,"Error","Don't connect to " & $sBase)
EndIf
Return
EndFunc
Файл: BackupFireBird_v1
Снимок:
История версий:
1.
Источник: autoit-script.ru
Автор: Renz