1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) Автоматический бэкап игровой базы.

Тема в разделе 'PW Решённые вопросы', создана пользователем New-X, 20 фев 2016.

Статус темы:
Закрыта.
  1. TopicStarter Overlay

    New-X Пользователи

    Сообщения:
    401
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    1
    Тут мне сказали, что база способна сама бекап делать, но как я не понял.
    Возможно кто то настраивал? Будь те добры подскажите.
  2. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Чем тебя баш не устроил?
  3. TopicStarter Overlay

    New-X Пользователи

    Сообщения:
    401
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    1
    Устраивает, но тут я узнал, что можно обойтись и без костыля. Поэтому интересует данный вопрос.
  4. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Кто?
  5. TopicStarter Overlay

    New-X Пользователи

    Сообщения:
    401
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    1
    Алекс.
  6. mirthost Пользователи

    Сообщения:
    507
    Лайки:
    239
    Пол:
    Мужской
    Репутация:
    7
    Команда:
    free
    Алекс сказал, а дальше не сказал? ))
    Код:
    #!/bin/bash
    cd /путь до папки
    tar cvvzf  "/путь до папки с бекапом`date +%Y-%m-%d-%H-%M`.tar.gz" dbhomewdb > /путь лога/backup.log
    mysqldump --routines -uroot -pPASS BASENAME | gzip > "/путь до бекапа/mysqlbackup-`date +%Y-%m-%d-%H-%M`.sql.gz"
    Тыщ нравится это.
  7. TopicStarter Overlay

    New-X Пользователи

    Сообщения:
    401
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    1
    Такой бекап и я в состоянии настроить. Я говорю не о bash скрипте.
  8. mirthost Пользователи

    Сообщения:
    507
    Лайки:
    239
    Пол:
    Мужской
    Репутация:
    7
    Команда:
    free
    а чем этот не устраивает? У него есть косяк один, чистый бекап будет только когда все персы оффлайн, при рабочей базе могут быть ошибки. Интересно о каком другом бекапе речь идет.
  9. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    ТС имеет ввиду 'бекап игровой базы в реальном времени'.
    gamedbd, вроде как, поддерживает данный вариант бекапа.
  10. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    В gamedbd функция void __cdecl WDB::StorageEnv::backup(const char *__destdir, bool increment)
    Код:
    void __cdecl WDB::StorageEnv::backup(const char *__destdir, bool increment)
    {
       const char *v2; // eax@4
       const char *v3; // eax@4
       const char *v4; // eax@6
       const basic_string<char,std::char_traits<char>,std::allocator<char> > *v5; // [sp-2Ch] [bp-E4h]@0
       const char *v6; // [sp-20h] [bp-D8h]@1
       int v7; // [sp-14h] [bp-CCh]@1
       basic_string<char,std::char_traits<char>,std::allocator<char> > __lhs; // [sp+20h] [bp-98h]@5
       basic_string<char,std::char_traits<char>,std::allocator<char> > v9; // [sp+30h] [bp-88h]@5
       basic_string<char,std::char_traits<char>,std::allocator<char> > v10; // [sp+40h] [bp-78h]@4
       int len; // [sp+5Ch] [bp-5Ch]@1
       string scmd; // [sp+60h] [bp-58h]@1
       string destdir; // [sp+70h] [bp-48h]@1
       char buffer[32]; // [sp+80h] [bp-38h]@1
       tm *ptm; // [sp+A4h] [bp-14h]@1
       time_t t; // [sp+A8h] [bp-10h]@1
       bool incrementa; // [sp+AFh] [bp-9h]@1
    
       incrementa = increment;
       t = time(0);
       ptm = localtime(&t);
       sprintf(
         buffer,
         "%.4d%.2d%.2d-%.2d%.2d%.2d",
         ptm->tm_year + 1900,
         ptm->tm_mon + 1,
         ptm->tm_mday,
         ptm->tm_hour,
         ptm->tm_min,
         ptm->tm_sec);
       std::allocator<char>::allocator(&scmd);
       std::string::string(&destdir, __destdir, &scmd);
       std::allocator<char>::~allocator(&scmd);
       len = std::string::length(&destdir);
       if ( len > 0 && *(_BYTE *)std::string::operator[](&destdir, len - 1) != 47 )
         std::string::operator+=(&destdir, "/");
       v2 = (const char *)std::string::c_str(&destdir);
       mkdir(v2, 0x1EDu);
       std::string::operator+=(&destdir, buffer);
       v3 = (const char *)std::string::c_str(&destdir);
       mkdir(v3, 0x1EDu);
       std::allocator<char>::allocator(&v10);
       std::string::string(&scmd, "/bin/cp -r ", &v10);
       std::allocator<char>::~allocator(&v10);
       if ( !incrementa )
       {
         std::operator+<char,std::char_traits<char>,std::allocator<char>>(&__lhs, &WDB::StorageEnv::datadir, " ");
         std::operator+<char,std::char_traits<char>,std::allocator<char>>(&v9, &__lhs, v5);
         std::operator+<char,std::char_traits<char>,std::allocator<char>>(&v10, &v9, v6);
         std::string::operator+=(&scmd, &v10, v7);
         std::string::~string(&v10);
         std::string::~string(&v9);
         std::string::~string(&__lhs);
         std::string::operator+=(&scmd, ";/bin/cp -r ");
       }
       std::operator+<char,std::char_traits<char>,std::allocator<char>>(&v10, &WDB::StorageEnv::logdir, " ");
       std::operator+<char,std::char_traits<char>,std::allocator<char>>(&v9, &v10, v5);
       std::operator+<char,std::char_traits<char>,std::allocator<char>>(&__lhs, &v9, v6);
       std::string::operator+=(&scmd, &__lhs, v7);
       std::string::~string(&__lhs);
       std::string::~string(&v9);
       std::string::~string(&v10);
       v4 = (const char *)std::string::c_str(&scmd);
       system(v4);
       std::string::~string(&scmd);
       std::string::~string(&destdir);
    }
    Последнее редактирование: 21 фев 2016
  11. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Об этом способе еще раньше писал gouranga если не ошибаюсь, и я сказал что нужно сделать - просто создать файл (где посмотреть тоже сказал), куда уж проще? Нужно было всего лишь посмотреть конфиг и попробовать это сделать.
    [​IMG]
    JonMagon и Unix нравится это.
  12. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Чем же это лучше баша?)
  13. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Тем, что на время бекапа запись в базы не производится. Этот способ более безопасный, и как я понимаю через quit_lockfile можно также безопасно остановить сервис.
  14. TopicStarter Overlay

    New-X Пользователи

    Сообщения:
    401
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    1
    Так просто, я думал файл с какими то содержимым надо создавать.
Черновик сохранён Черновик удалён
Similar Threads
  1. New-X
    Ответов:
    5
    Просмотров:
    1.776
  2. wsok
    Ответов:
    21
    Просмотров:
    2.962
  3. 6apik

    бэкап

    6apik, 23 июл 2013, в разделе: Архив
    Ответов:
    3
    Просмотров:
    1.062
  4. Tails
    Ответов:
    6
    Просмотров:
    1.807
  5. wsok
    Ответов:
    30
    Просмотров:
    4.983
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей