Backups
Przykład skryptu.
Skrypt sklada sie z 2 części plik bat i sql
Wymagania:
directory c:\backups
envirnment variables %BACKUP_USER%
%BACKUP_PASS%
Plik bat
Batchfile : : SKRYPT BACKUP
: : LAST Version 2024-12-23
: : 01 ZMIENNE KTORE MOZNA WYKORZYSTAC POZNIEJ DO DAT %yy%%mm%%dd%
FOR /f "tokens=1-4 delims=/-. " %% G IN ( 'date /t' ) DO ( call : s_fixdate %% G %% H %% I %% J)
goto : s_print_the_date
: s_fixdate
if " %1 :~0,1%" GTR "9" shift
FOR /f "skip=1 tokens=2-4 delims=(-)" %% G IN ( 'echo.^|date' ) DO (
set %% G = %1 & set %% H = %2 & set %% I = %3 )
goto : eof
: s_print_the_date
: :md %yy%%mm%%dd%
: : 02 DB BACKUP DODAC C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\
"SQLCMD.EXE" -S localhost -p -i c:\backups\backup.sql >> c:\BACKUPS\log.txt
: : 03 DB ZIP -sdel usuwa po sukcesie, opcjonalnie del *.7z /q
c:
cd c:\backups
FOR %% i IN ( *.bak) DO "C:\Program Files\7-Zip\7z.exe" a " %% ~ni.7z" " %% i" -sdel
: : 06 MAPOWANIE
: : Uwaga w przypadku hetznera subaccount maja taki tempalte sciezek , dla uzytkownika glonwego jest to \backup
NET USE \\%BACKUP_USER% .your-storagebox.de\%BACKUP_USER% /d
NET USE \\%BACKUP_USER% .your-storagebox.de\%BACKUP_USER% /u:%BACKUP_USER% %BACKUP_PASS%
: : 07 MOVE SQL BACKUPS /x exclude hidden ,
Robocopy c:\backups \\%BACKUP_USER% .your-storagebox.de\%BACKUP_USER% \DB-BACKUP *.7z /MOV /W:5 /Z /XA:H
: : 0 Mirror DATASTORE
Robocopy C:\DATA\DATASTORE \\%BACKUP_USER% .your-storagebox.de\%BACKUP_USER% \DATASTORE-MIRROR /MIR /W:5 /Z /XA:H
: : 09 MIRROR IIS
Robocopy C:\inetpub\wwwroot \\%BACKUP_USER% .your-storagebox.de\%BACKUP_USER% \IIS-MIRROR /MIR /W:5 /Z
: : OPCJA DB SYNC , eliminacja tabel konfiguracyjnych i logów kv store jest wylaczony specjalnie
: : db.sync.exe --silent --source Data Source=10.10.10.10;Initial Catalog=platforma-api;User ID=username;password=password --target Data Source=localhost;Initial Catalog=platforma-api;User ID=paandauser;Password=password --exclude [app].[log],[Hangfire].*,[app].[Audit],[app].[log_ddl],[dbo].[request],[app].[hosting],[app].[app],[app].[kvstore]
: : OPCJA SEND TO AWS / wyamga dodanie credentiali
: : aws s3 mv c:\backups\ s3://backup-7272351852/surchem/sql/ --recursive --exclude "*" --include "*.7z"
: : aws s3 sync c:\data\client.platformacrm.pl\ s3://backup-7272351852/client/data/
: : OPCJA JASPER
: : c:
: : cd "C:\Program Files\jasperreports-server-cp-4.7.0\buildomatic"
: : js-export --everything --output-zip d:\data\backup\%yy%%mm%%dd%\%yy%%mm%%dd%!jasper.zip
: : pause
Plik SQL
SQL --sqlcmd.exe -S localhost -p -i c:\backups\backup.sql >> c:\backups\log.txt
DECLARE @ name VARCHAR ( 50 ) -- database name
DECLARE @ fileName VARCHAR ( 256 ) -- filename for backup
DECLARE @ path VARCHAR ( 256 ) = 'c:\BACKUPS\' -- path for backup files
DECLARE @ fileDate VARCHAR ( 20 ) = CONVERT ( VARCHAR ( 20 ), GETDATE (), 112 ) -- used for file name
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master . dbo . sysdatabases
WHERE name not in ( 'master' , 'tempdb' , 'model' , 'msdb' ) --exclude
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @ name
WHILE @@ FETCH_STATUS = 0
BEGIN
SET @ fileName = @ path + @ fileDate + '_' + @ name + '.BAK'
BACKUP DATABASE @ name TO DISK = @ fileName -- WITH COMPRESSION is not supported on express
FETCH NEXT FROM db_cursor INTO @ name
END
CLOSE db_cursor
DEALLOCATE db_cursor