MaviAyGames | Vrunner Core Üzerine Yazdırma Hatası Fix

  • Konuyu açan Konuyu açan kirici44
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 1
  • Gösterim Gösterim 108

kirici44

Üye
Üye
Mesaj
123
Çözümler
2
Beğeni
35
Puan
474
Ticaret Puanı
0
Vrunner ve Oto-Start Kullananlar İçin: Game.core ve DB.core Dosyalarını Tarihli Yedekleme Sistemi



Merhaba arkadaşlar,

Bildiğiniz üzere oyun sunucularımızda Vrunner veya benzeri "Auto-Start" scriptleri kullanıyoruz. Bu sistemler oyun düştüğünde (core verdiğinde) kanalı otomatik olarak tekrar açıyor. Ancak bu durumun büyük bir dezavantajı var:

Oyun tekrar açıldığında, oluşan game.core dosyasının üzerine yenisi yazılabiliyor veya dosya karmaşasında hangi core dosyasının ne zaman düştüğünü anlayamıyoruz. Hatanın kaynağını (GDB ile) çözmek için o anki core dosyasına ihtiyacımız var.

Sizlere hazırladığım bu ufak Shell scriptleri (wrapper) sayesinde, oyun veya DB her çöktüğünde oluşan core dosyasını silmek yerine ismine Tarih ve Saat ekleyerek saklayacağız.



1. ADIM: Game Dosyası İçin Script (core_game.sh)

Masaüstünde core_game.sh adında bir dosya oluşturun ve içine şunları yapıştırın. Bu script, channel klasörlerinin içine atılacaktır.

Kod:
Genişlet Daralt Kopyala
#!/bin/sh
# Oyun dosyasını başlat (Binary isminiz game ise dokunmayın)
./game

# Eğer oyun kapanırsa ve geriye bir core dosyası bırakırsa:
if [ -f "game.core" ]; then
    # Core dosyasının ismini Tarih_Saat.core formatına çevir
    mv game.core game_$(date +%Y%m%d_%H%M%S).core
fi



2. ADIM: DB Dosyası İçin Script (core_db.sh)

Masaüstünde core_db.sh adında bir dosya oluşturun ve içine şunları yapıştırın. Bu script, db klasörünün içine atılacaktır.

Kod:
Genişlet Daralt Kopyala
#!/bin/sh
# DB dosyasını başlat
./db

# Eğer DB kapanırsa ve core bırakırsa:
if [ -f "db.core" ]; then
    # Core dosyasının ismini Tarih_Saat.core formatına çevir
    mv db.core db_$(date +%Y%m%d_%H%M%S).core
fi



3. ADIM: Kurulum ve İzinler

  1. Hazırladığınız core_game.sh dosyasını tüm kanalların içine (channel1, channel2, game99 vb.) yani ./game dosyasının olduğu her yere atın.
  2. Hazırladığınız core_db.sh dosyasını db klasörünün içine atın.
  3. FileZilla veya Putty üzerinden bu dosyalara sağ tıklayıp 777 (Yazma/Okuma) izni verin.



4. ADIM: Başlatma (Start) Scriptini Düzenleme

Normalde start scriptinizde (admin_panel.sh veya start.sh) vrunner satırları şöyledir:

Eski Hali:
./vrunner --daemon --pid-path=pid --file=game
./vrunner --daemon --pid-path=pid --file=db

Bunu şu şekilde değiştiriyorsunuz. Artık vrunner direkt oyunu değil, bizim koruyucu scriptimizi başlatacak:

Yeni Hali:
./vrunner --daemon --pid-path=pid --file=core_game.sh
./vrunner --daemon --pid-path=pid --file=core_db.sh

Not: Game99 klasöründe de game dosyasını çağırıyorsanız oraya da core_game.sh atıp start komutunu ona göre düzenlemeyi unutmayın.
Örnek; Channel 1 - core1-core2-core3-core4 gibi tüm corelere atın dosyaları.


Sonuç:
Artık oyununuz bir hata verip çöktüğünde klasörünüzde şöyle dosyalar göreceksiniz:
game_20231220_1430.core
game_20231220_1845.core


Böylece hangi hatanın hangi saatte alındığını takip edebilirsiniz.
Herkese iyi forumlar!
 
Son düzenleme:
Geri
Üst