Oyun İçi GAME veya MYSQL yedekleme Sistemi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 43

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Mıgo sen artık putty den sıkıldın mı filezillaya girmemek için can mı atıyorsun al sana yedekleme kodu

Kod:
#include <cstdlib>  // system fonksiyonu için #include <ctime> ACMD(do_gm_yedekle) {     if (!ch)         return;     if (!ch->IsGM())     {         ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanmak için yetkiniz yok.");         return;     }     time_t now = time(nullptr);     struct tm* t = localtime(&now);     char buffer[256];     strftime(buffer, sizeof(buffer), "backup_%Y%m%d_%H%M%S.zip", t);     // Yedeklenecek dizin ve çıktı dosyası bak burayı kendi dosya konumuna göre     const char* source_dir = "/usr/game/";  // neredenyedek alsın     const char* backup_path ="/usr/";  // nereye atsın     // Komut örneği (Linux için zip arşivi) (he siz bunu tar yaparsınız artık (tar.gz)     char command[512];     snprintf(command, sizeof(command),         "zip -r %s%s %s",         backup_path, buffer, source_dir);     int result = system(command);     if (result == 0)     {         ch->ChatPacket(CHAT_TYPE_INFO, "Yedekleme başarılı: %s%s", backup_path, buffer);         sys_log(0, "GM_YEDEKLE: %s tarafından yedek alındı: %s%s", ch->GetName(), backup_path, buffer);     }     else     {         ch->ChatPacket(CHAT_TYPE_INFO, "Yedekleme başarısız oldu!");         sys_log(0, "GM_YEDEKLE: %s yedekleme hatası!", ch->GetName());     } }


Komut Kayıt
Kod:
void RegisterCommands() {     command_info.insert(std::make_pair("gmyedekle", do_gm_yedekle)); }



ha bak bu önemli ha dinle

system() fonksiyonu güvenlik riski taşır, komutlar dışarıdan gelecek parametreler olmadan kullan
yedeklenecek klasör ve yedek dosya yolu sunucu yapılandırmasına göre güncelle brem Yedekleme sonrası GM’ye işlem sonucu bildiriliyor.
Oyun İçi GAME veya MYSQL Yedekleme Sistemi

Metin2 özel sunucularında güvenliğin temeli olan yedekleme sistemleri, veri kaybını önleyerek uzun vadeli sunucu sürekliliğini sağlar. Bu sistemler özellikle GAME ve MYSQL veritabanlarında aktif olarak çalışan sunucularda kritik öneme sahiptir. Oyun içi verilerin korunması, karakter bilgileri, envanter içerikleri, hesap verileri gibi önemli yapıların bozulmaması için doğru tasarlanmış yedekleme süreçleri hayati rol oynar.

GAME Sunucusu Verilerinin Yedeklenmesi

GAME sunucusu, oyuncuların doğrudan etkileşimde bulunduğu ana yapıdır. Karakter seviyesi, envanter, eşya bilgileri, akademik sınıf verileri gibi tüm veriler GAME sunucusunda barındırılır. Bu nedenle GAME sunucusunun düzenli olarak yedeklenmesi büyük önem taşır. GAME sunucusu genellikle C++ tabanlı bir sistemdir ve Metin2 özel sunucularında src klasöründe bulunan game servisi çalışır durumdadır. Bu servisin veri dosyaları genellikle db ile entegre çalışır. Yedekleme işlemi sırasında GAME sunucusu durdurulmalı ya da veri tutarlılığı sağlanmalıdır.

MYSQL Veritabanı Yedekleme Yöntemleri

MYSQL veritabanları, Metin2 özel sunucularında hem auth hem de game verilerini barındırır. Bu veritabanlarının yedeklenmesi için komut satırı üzerinden mysqldump komutu tercih edilir. Örneğin:

mysqldump -u kullanıcı_adı -p veritabanı_adı > backup.sql

Bu işlem sayesinde auth ve game verileri ayrı ayrı ya da birleştirilmiş şekilde yedeklenebilir. Ayrıca otomatik yedekleme sistemleri Python scriptleri ile kolayca oluşturulabilir. Python ile yazılmış GUI arayüzlerle, sunucu yöneticileri kolayca yedek alma ve geri yükleme işlemlerini yapabilirler. Bu tür sistemler genellikle PyQt veya benzeri kütüphanelerle geliştirilir.

Otomatik Yedekleme Scriptleri

Otomatik yedekleme scriptleri, sunucu yöneticilerinin iş yükünü azaltır. Python veya bash tabanlı scriptler ile belirli aralıklarla yedek alma işlemleri yapılabilir. Bu scriptler cron job ile planlanabilir. Örneğin, her gece saat 02:00'de game ve auth veritabanlarını yedekleyen bir sistem kurulabilir. Bu tür scriptler py root ve uiscript yapılarıyla entegre çalışarak Metin2 sunucularında daha güçlü bir yedekleme altyapısı sağlar.

Yedekleme Sıkıştırma ve Depolama

Yedeklenen verilerin boyutunu azaltmak için sıkıştırma işlemleri yapılır. tar.gz formatı tercih edilir. Ayrıca yedekler farklı konumlarda depolanmalıdır. Bulut depolama sistemleri veya harici diskler tercih edilebilir. Metin2 özel sunucularında pack formatında verilerin taşınması da yaygındır. Bu sayede yedekler daha hızlı ve güvenli bir şekilde transfer edilebilir.

Yedekten Geri Yükleme İşlemi

Yedekten geri yükleme işlemi dikkatle yapılmalıdır. Özellikle game sunucusu ile db uyumu sağlanmalıdır. Geri yükleme işlemi sırasında GAME sunucusu mutlaka durdurulmalıdır. MYSQL üzerinde source backup.sql komutu ile yedek geri yüklenebilir. Bu işlem sırasında veri çakışmaları engellenmelidir.

Martysama ve Metin2 Development Araçları

Martysama gibi gelişmiş Metin2 geliştirme araçları, yedekleme süreçlerini kolaylaştırır. Bu tür araçlar genellikle C++ tabanlıdır ve Metin2Dev sistemleriyle uyumlu çalışır. Game Core, DB Core gibi yapılarla entegre yedekleme çözümleri sunar. Bu sayede sunucu geliştiricileri daha hızlı ve güvenli yedekleme süreçleri oluşturabilirler.

Sonuç

Oyun içi GAME ve MYSQL yedekleme sistemleri, Metin2 özel sunucularının sürekliliği için kritik öneme sahiptir. C++, Python tabanlı sistemler ve Metin2 özel sunucu geliştirme araçları ile güçlü ve otomatik yedekleme süreçleri oluşturulabilir. Veri kaybını önlemek, sunucu güvenliğini artırmak ve oyuncu memnuniyetini sağlamak açısından bu sistemler dikkatle planlanmalı ve uygulanmalıdır.


In-Game GAME or MYSQL Backup System

Backup systems are fundamental for security on Metin2 private servers, preventing data loss and ensuring long-term server continuity. These systems are particularly critical for active servers operating with GAME and MYSQL databases. Protecting in-game data such as character information, inventory contents, and account data requires properly designed backup processes to avoid corruption.

Backing Up GAME Server Data

The GAME server is the main structure that players directly interact with. All data including character levels, inventories, item information, and academic class data are stored within the GAME server. Therefore, regularly backing up the GAME server is extremely important. The GAME server is generally based on C++ and runs as the game service located in the src folder in Metin2 private servers. This service's data files typically integrate with db. During the backup process, the GAME server should either be stopped or data consistency must be ensured.

MYSQL Database Backup Methods

MYSQL databases store both auth and game data on Metin2 private servers. Command-line tools like mysqldump are preferred for backing up these databases. For example:

mysqldump -u username -p database_name > backup.sql

This allows auth and game data to be backed up separately or combined. Moreover, automatic backup systems can easily be created using Python scripts. GUI interfaces written in Python allow server administrators to easily perform backup and restore operations. Such systems are generally developed using libraries like PyQt.

Automatic Backup Scripts

Automatic backup scripts reduce the workload of server administrators. Scripts based on Python or bash can automate backups at specific intervals. These scripts can be scheduled using cron jobs. For instance, a system can be set up to back up game and auth databases every night at 02:00. Such scripts integrate with py root and uiscript structures to provide stronger backup infrastructure for Metin2 servers.

Backup Compression and Storage

To reduce the size of backed-up data, compression methods are used. The tar.gz format is preferred. Additionally, backups should be stored in different locations. Cloud storage systems or external disks can be used. In Metin2 private servers, transferring data in pack format is also common, allowing backups to be transferred faster and more securely.

Restoring from Backups

Restoring from backups must be done carefully. Compatibility between the game server and db must be ensured during restoration. The GAME server must be stopped during the restore process. The MYSQL database can be restored using the command source backup.sql. Data conflicts must be avoided during this process.

Martysama and Metin2 Development Tools

Tools like Martysama simplify backup processes for advanced Metin2 development. These tools are generally based on C++ and work seamlessly with Metin2Dev systems. They offer integrated backup solutions alongside structures like Game Core and DB Core. Thus, server developers can create faster and safer backup processes.

Conclusion

In-game GAME and MYSQL backup systems are critically important for the continuity of Metin2 private servers. Strong and automated backup processes can be established using C++, Python-based systems, and Metin2 private server development tools. These systems must be carefully planned and implemented to prevent data loss, enhance server security, and improve player satisfaction.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt