• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Автобекап бд

WildDead

Знающий
Местный
Куратор Данных
Любитель реакций
Сообщения
299
Розыгрыши
0
Решения
1
Репутация
527
Реакции
963
Баллы
443

Если под ХФ, надо что-то менятЬ!?
 
Самое простое *.bat файлом и в планировщик заданий:
Код:
@ECHO OFF
set h=%time:~0,2%
set h=%h: =0%
set FullBackupDir=%date%_%h%%time:~3,2%%time:~6,2%

"C:\Program Files\MariaDB 10.11\bin\mysqldump.exe" -uЛогин -pПароль -hlocalhost --port=3306 la2 > C:\la2\BackupBase\la2-%FullBackupDir%.sql

rem =============================
rem ==== remove old folders =====
rem =============================

set sFolder=C:\la2\BackupBase
set /a iCount = 10

for /f "skip=%iCount% usebackq delims=" %%i in (
    `dir /b /a:-d /o:-d /t:w "%sFolder%"`
) do del /f /q "%sFolder%\%%~i"

endlocal
exit /b 0
 
Самое простое *.bat файлом и в планировщик заданий:
Код:
@ECHO OFF
set h=%time:~0,2%
set h=%h: =0%
set FullBackupDir=%date%_%h%%time:~3,2%%time:~6,2%

"C:\Program Files\MariaDB 10.11\bin\mysqldump.exe" -uЛогин -pПароль -hlocalhost --port=3306 la2 > C:\la2\BackupBase\la2-%FullBackupDir%.sql

rem =============================
rem ==== remove old folders =====
rem =============================

set sFolder=C:\la2\BackupBase
set /a iCount = 10

for /f "skip=%iCount% usebackq delims=" %%i in (
    `dir /b /a:-d /o:-d /t:w "%sFolder%"`
) do del /f /q "%sFolder%\%%~i"

endlocal
exit /b 0
Тоже имеет место быть.
И всё же
 
Talos, не у всех же сервер на винде, а значит пригодится и такой скрипт
Bash:
#!/bin/bash
DBHOST=localhost
USER=root
PASS=root
DBNAME=l2jdb

if [ ! -d ./backup ]; then mkdir ./backup; fi

mysqlcheck -h $DBHOST -u $USER --password=$PASS -s -r $DBNAME >> "backup/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME"-sql_check.log"
mysqldump -h $DBHOST -u $USER --password=$PASS $DBNAME | gzip > "backup/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME".gz"
 
не у всех же сервер на винде
Ок, тогда у кого на линуксе mssql крутиться.
=========Полный бекап
Код:
DECLARE @pathName NVARCHAR(512)
DECLARE @h NVARCHAR(512) = DATEPART ( hh , GETDATE() );
DECLARE @m NVARCHAR(512) = DATEPART ( mi , GETDATE() );
DECLARE @s NVARCHAR(512) = DATEPART ( ss , GETDATE() );
DECLARE @myTime NVARCHAR(512) = @h + '-' + @m + '-' + @s;
SET @pathName = '/var/opt/mssql/Backups-LA2/LA2/Full-base/LA2_' + Convert(varchar(10), GETDATE(), 105) + '[' + @myTime + ']' + '.bak'
BACKUP DATABASE [LA2] TO DISK = @pathName WITH RETAINDAYS = 4, NOFORMAT, NOINIT, NAME = N'LA2_full', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
===============удаление по колличеству
Код:
DECLARE @DeleteDate nvarchar(50)
DECLARE @DeleteDateTime datetime
SET @DeleteDateTime = DateAdd(hh, -0, GetDate()-4)
SET @DeleteDate = (Select Replace(Convert(nvarchar, @DeleteDateTime, 111), '/', '-') + 'T' + Convert(nvarchar, @DeleteDateTime, 108))
EXECUTE master.dbo.xp_delete_file 0, N'/var/opt/mssql/Backups-LA2/LA2/Full-base/',N'bak', @DeleteDate, 1
 
apt install cron systemctl enable cron crontab -e 30 5 * * * mysqldump -uroot -pPassword dbname > /root/dbname.sql
Ну и timestamp прикрутить
 
Во разошлись как))
В принципе кому как нравится - каждый делает по своему)
 
Bash:
Код:
#!/bin/bash
DBHOST=localhost
USER=root
PASS=root
DBNAME=l2jdb

if [ ! -d ./backup ]; then mkdir ./backup; fi

mysqlcheck -h $DBHOST -u $USER --password=$PASS -s -r $DBNAME >> "backup/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME"-sql_check.log"
mysqldump -h $DBHOST -u $USER --password=$PASS $DBNAME | gzip > "backup/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME".gz"
Немного переделал под себя:
#mysql_config_editor set --login-path=client --user=root --password
Код:
#!/bin/bash
DBHOST=localhost
DBNAME=Eternity

if [ ! -d ./Lineage ]; then mkdir ./Lineage; fi

mysqldump --login-path=client -h $DBHOST $DBNAME | gzip > "Lineage/`date +%Y-%m-%d_%H:%M:%S`-"$DBNAME".gz"

find /home/talos/Документы/Bases/Lineage -type f -name '*.gz' -mtime +2 -exec rm -rf {} \;
find /home/talos/L2JEternity/game/log/game -type f -name 'game.log.*' -mtime +2 -exec rm -rf {} \;
 
Talos, а как же проверка (mysqlcheck) таблиц и их ремонт при необходимости?
 
Назад
Сверху Снизу