[C++]AUTO LOG SİLME/YEDEK ALMA/ALINAN YEDEKLERİ SİLME ZAMAN AYARLI

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

Konusu vardı auto yedek alma bende üstüne log silme alınan yedekleri silmeyi ekledim
gereksiz görülürse kapatılabilir.

Sistem mantığı:
*6 saat'te bir yedek alır 24 saat'te 4 yedek
*3 saat'te bir logları siler
*48 saat'te bir alınan yedekleri siler 48 saat'te 8 yedek








Metin2 Sunucularında Otomatik Log Silme, Yedek Alma ve Zamanlanmış Yedek Temizleme Sistemi (C++)

Metin2 özel sunucuları geliştirirken sunucu performansını korumak ve veri güvenliğini sağlamak adına log yönetimi, yedekleme stratejileri ve bu verilerin zamanla büyümesini engellemek oldukça kritiktir. Bu yazıda, C++ tabanlı bir sistem üzerinden otomatik log silme, yedek alma ve alınan yedekleri belirli aralıklarla silme işlemlerini gerçekleştirecek bir yapıyı detaylandıracağız. Bu sistem sayesinde Metin2 sunucularınızın hem verimli çalışması hem de uzun vadeli veri bütünlüğü sağlanabilir.

Neden Otomatik Log ve Yedek Yönetimi?

Metin2 sunucularında loglar, hata takibi, olay kaydı, oyuncu eylemleri ve sistem durumu hakkında önemli bilgiler içerir. Ancak bu loglar zamanla binlerce satıra ulaşabilir ve disk alanını ciddi oranda tüketebilir. Benzer şekilde, yedekleme işlemleri de önemlidir ancak yedek dosyaları da sınırsız olarak çoğalırsa diskte yer kalmamasına neden olabilir. Bu yüzden zamanlanmış otomatik sistemler ile logları temizlemek, yedek almak ve eski yedekleri silmek büyük bir fayda sağlar.

C++ ile Zamanlanmış İşlemler

C++ dilinde zamanlanmış işlemler genellikle timer fonksiyonları ya da threadler ile yapılır. Örneğin, belirli aralıklarla log silme veya yedek alma gibi görevler, bir ana döngüye entegre edilebilir. Bunun için std::chrono ve std::thread kütüphaneleri kullanılabilir. Örnek olarak, her 24 saatte bir log temizliği ve haftada bir yedek alma işlemi ayarlanabilir.

Log Silme Fonksiyonu

Log silme işlemi için std::filesystem kullanarak log klasörünü tarayıp, belirtilen süreden daha eski olan dosyaları silebiliriz. Örneğin, 7 günden daha eski log dosyaları otomatik olarak silinebilir. Bu işlem, sistem performansını artırmak ve disk kullanımını optimize etmek açısından önemlidir.

Yedek Alma Sistemi

Yedek alma işlemi genellikle DB (database), auth, game sunucu dosyaları ve config ayarlarını kapsar. Bu işlemler için sistem komutları (örneğin Linux'ta 'cp', Windows'ta 'xcopy') C++ içerisinden std::system() fonksiyonu ile çağrılabilir. Yedek alma işlemini belirli zamanlarda otomatikleştirmek için cron job (Linux) ya da Task Scheduler (Windows) kullanılabilir.

Yedekleri Zamanlı Silme

Yedek dosyaları zamanla arttıkça disk alanı daralır. Bu yüzden örneğin 30 günden eski yedekleri otomatik olarak silmek iyi bir stratejidir. Yedek adlarına tarih eklenerek, bu tarihler üzerinden filtreleme yapılabilir. Böylece eski yedekler kolayca tespit edilip silinebilir.

Pratik Kod Yapısı

Aşağıda örnek C++ kod yapısı verilmiştir:

std::thread logCleanupThread([*] {
while (true) {
auto now = std::chrono::system_clock::now();
if (std::chrono::duration_cast<std::chrono::hours>(now - lastCleanup).count() >= 24) {
deleteOldLogs();
lastCleanup = now;
}
std::this_thread::sleep_for(std::chrono::minutes(1));
}
});

Bu yapı sayesinde log temizliği her 24 saatte bir çalışır. Benzer mantıkla yedekleme ve yedek silme işlemleri de entegre edilebilir.

Sonuç

Zamanlanmış otomatik log ve yedek işlemleri, Metin2 özel sunucularında uzun süreli stabilite ve veri güvenliği için kritik öneme sahiptir. C++ ile geliştirilen bu tür sistemler, sunucu yönetimini otomatikleştirerek zaman kazandırır ve insan hatalarını minimize eder. Bu yapıyı doğru şekilde kurmak, Metin2 geliştiricileri için verimli bir operasyon sunar.


Automatic Log Deletion, Backup Creation, and Time-Based Backup Cleanup System (C++) for Metin2 Servers

When developing private Metin2 servers, maintaining server performance and ensuring data security require effective management of logs, backup strategies, and controlling the growth of data over time. In this article, we will detail a structure based on C++ that allows for automatic log deletion, backup creation, and deleting old backups at scheduled intervals. This system ensures your Metin2 server operates efficiently while maintaining long-term data integrity.

Why Automatic Log and Backup Management?

In Metin2 servers, logs contain important information such as error tracking, event logging, player actions, and system status. However, these logs can grow to thousands of lines over time and consume significant disk space. Similarly, backup operations are critical, but if backup files multiply without limits, they can cause disk space shortages. Therefore, using scheduled automated systems to clean logs, take backups, and delete old backups provides great benefits.

Scheduled Operations with C++

In C++, scheduled operations are generally implemented using timer functions or threads. For example, tasks like cleaning logs or creating backups at specific intervals can be integrated into a main loop. For this purpose, the std::chrono and std::thread libraries can be used. As an example, log cleanup every 24 hours and weekly backup creation can be configured.

Log Deletion Function

To delete logs, we can use std::filesystem to scan the log folder and remove files older than a specified duration. For instance, log files older than 7 days can be automatically deleted. This operation is important for improving system performance and optimizing disk usage.

Backup Creation System

Backup operations typically cover DB (database), auth, game server files, and configuration settings. System commands (e.g., 'cp' on Linux, 'xcopy' on Windows) can be called from within C++ using the std::system() function. To automate backup processes at specific times, cron jobs (Linux) or Task Scheduler (Windows) can be utilized.

Time-Based Backup Deletion

As backup files accumulate over time, disk space shrinks. Therefore, automatically deleting backups older than, for example, 30 days is a good strategy. By appending dates to backup file names, filtering can be done based on those dates. Thus, old backups can be easily identified and deleted.

Practical Code Structure

An example C++ code structure is shown below:

std::thread logCleanupThread([*] {
while (true) {
auto now = std::chrono::system_clock::now();
if (std::chrono::duration_cast<std::chrono::hours>(now - lastCleanup).count() >= 24) {
deleteOldLogs();
lastCleanup = now;
}
std::this_thread::sleep_for(std::chrono::minutes(1));
}
});

With this structure, log cleanup runs every 24 hours. Similar logic can be applied to integrate backup creation and backup deletion operations.

Conclusion

Scheduled automatic log and backup operations are critically important for long-term stability and data security in private Metin2 servers. Systems developed with C++ automate server management, saving time and minimizing human errors. Properly implementing such structures provides efficient operations for Metin2 developers.
 

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

Geri
Üst Alt