Перейти к содержанию
Авторизация  
dislike

Autobackup На Java

Рекомендуемые сообщения

"Дело было вечером, делать было нечего". Решил написать автобекеп для баз данных на явке. За основу был взят ThreadPoolManager от l2p(взял его целиком, не стал изобретать велосипед) именно он будет отвечать за тайминг дампа баз данных. Скрипт не работает с базой данных напрямую, так что можете не боятся, дальше вашего сервера беккеп не уйдет. А реализует беккеп стандартная утилита mysqldump которая включена в субд MySql.

pre_1408649698__09.jpg

Установка:

  1. Файл jar кинуть в ваше папку с либами.
     
  2. Конфиг в папку с конфигами
     
  3. В батнике или sh файле с добавить перед мейн методом гс ru.dis.AutoBackup
     
  4. Папку backup кинуть в корень гс
     
  5. Если хотите использовать на windows то кинуть экзешник mysqldump в корень гс

java -server %java_settings% %java_opts% -cp config/xml;../serverslibs/*; ru.dis.AutoBackup l2ft.gameserver.GameServer
если хотите грузить отдельный процессом то
java -server %java_settings% %java_opts% -cp config/xml;../serverslibs/*; ru.dis.AutoBackup

Требования:

Убедитесь что в паке с либами лежит что то похожее

pre_1408703899__12.jpg

 

 

Ну вот собственно и все, тестируйте делайте предложения, если вдруг кому то будет интересно, то продолжу наработку.

В планах сделать

1)Реализовать учет дней недели

2)Удалять старые беккепы

3)Сделать рефакторинг, ибо сейчас всё реализуется в одном классе, а это не есть хорошо

 

up.

Добавлен конфиг

# Загружать как отдельный процесс(true) или же совместно с игровым сервером(false)
# Дефолт false
# Пример запуска совместно с гс java -server %java_settings% %java_opts% -cp config/xml;../serverslibs/*; ru.dis.AutoBackup l2ft.gameserver.GameServer
singleRun = false

Поправка загрузки самих конфигов, грузились не в том месте

 

https://yadi.sk/d/En7KER_qaEekp

Изменено пользователем dislike
  • Upvote 7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Молодец! Хорошая вещь.

Специально для тех кто по какой-то либо причине не умеет пользоваться cron на linux(я один из них) :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой посмотрел на скрипт через профилировщик и ужаснулся, что то я намудрил с потоками. Чуть позже выложу отлаженную версию.

 

Готово.

Изменено пользователем dislike

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в л2дотах уже при запуске ГСа был

вот пример:

set user=root

set pass=

set DBname=db-l2dot

set DBHost=localhost

set ctime=%time:~0,2%

if "%ctime:~0,1%" == " " (

set ctime=0%ctime:~1,1%

)

set ctime=%ctime%'%time:~3,2%'%time:~6,2%

echo ‡ ЇгбЄ - ЁЈа®ў®Ј® бҐаўҐа . . .

echo -------------------------------------

echo L2Dot.ru - Copyright 2011.

echo L2Dot Development.

echo -------------------------------------

echo „ в : %date%, ‚६п: %time%.

echo -------------------------------------

echo Џ®«­л© ЎҐЄ- Ї Ў §л-¤ ­­ле ў %date%-%ctime%_backup_full.sql

.\tools\mysqldump.exe %Ignore% --add-drop-table -h %DBHost% -u %user% --password=%pass% %DBname% > backup\%DATE%-%ctime%_backup_full.sql

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в л2дотах уже при запуске ГСа был

вот пример:

set user=root

set pass=

set DBname=db-l2dot

set DBHost=localhost

set ctime=%time:~0,2%

if "%ctime:~0,1%" == " " (

set ctime=0%ctime:~1,1%

)

set ctime=%ctime%'%time:~3,2%'%time:~6,2%

echo ‡ ЇгбЄ - ЁЈа®ў®Ј® бҐаўҐа . . .

echo -------------------------------------

echo L2Dot.ru - Copyright 2011.

echo L2Dot Development.

echo -------------------------------------

echo „ в : %date%, ‚६п: %time%.

echo -------------------------------------

echo Џ®«­л© ЎҐЄ- Ї Ў §л-¤ ­­ле ў %date%-%ctime%_backup_full.sql

.\tools\mysqldump.exe %Ignore% --add-drop-table -h %DBHost% -u %user% --password=%pass% %DBname% > backup\%DATE%-%ctime%_backup_full.sql

 

поправка оно было еще в фениксах и оч оч давно примерно тот же смысл что и уже Адаптировал Dis но грубо уже на любителя , кому то проще конфиг настроить )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это да, при запуске гс это понятно, просто если приходится чаще дамп делать или в строго определённое время, а человек не умеет пользоваться кроном, то скрипт должен пригодится.

Также можно сделать, что бы приложение запускалась как отельный процесс и будет работать независимо от гейм сервера.

Изменено пользователем dislike

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо конечно но в гугле полно тем как это делать)) да и тут 1000 раз было)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо конечно но в гугле полно тем как это делать)) да и тут 1000 раз было)

 

делать это оно а либы готовые для тех кто начинает это другое ) не каждый умеет это делать или делает а когда аяяяй то уже понимают что нужен был бекаб )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я из тех кто держит Java сервер на Windows Server, крона у нас нет к сожалению)

 

Сделал на винде так:

Создаем батник с кодом:

 

@ECHO Start! BAckup MYSQL BASE..Please Wait....

mysqldump -u root -p[пароль] [название бд] > z:\Backup\dump.%DATE%".sql

end

 

Ставим выполнение батника в планировщике задач, на нужное время и вуаля)

 

pre_1409442929__.png

 

В итоге будет сделан дамп через тот же mysqldump , в нужную папку, с указанием в файле даты дампа.

У меня дамп происходит в 5.11 утра каждый день. Выглядит это примерно так.

 

pre_1409444948__fc2c3db277f15f68673779bbc2ccb659.png

 

P.S. ТС спасибо, отличная работа. Многие ждали изобретения чего либо подобного.

Выложил свой способ, мало ли, может кому то пригодится.

Изменено пользователем laguerro

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...