- 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:
#!/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:
#!/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
- 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.
- Hazırladığınız core_db.sh dosyasını db klasörünün içine atın.
- 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!
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:
