Eggdrop Yedekleme: Userfile, Chanfile ve Scriptleri Güvenceye Almak
İçindekiler
Bir Eggdrop botunun asıl değeri, yıllar içinde biriken verilerdir: Kimin hangi yetkiye sahip olduğu, hangi kanalda hangi ayarların yapıldığı, hangi kullanıcıların banlandığı, özenle yazılmış ve ince ayarı yapılmış scriptler. Bu verilerin kaybolması, botu sıfırdan kurmaktan çok daha büyük bir kayıptır. Disk arızası, yanlışlıkla silinen bir dosya, ele geçirilen bir sunucu veya hatalı bir script, bütün bu birikimi bir anda yok edebilir. Eggdrop yedekleme, bu riske karşı alınabilecek en basit ve en etkili önlemdir.
Neler Yedeklenmeli?
| Dosya | İçeriği | Önem |
|---|---|---|
| Userfile | Kullanıcılar, host'lar, bayraklar, parolalar, banlar | Kritik |
| Chanfile | Kanal listesi ve kanal ayarları | Çok yüksek |
| eggdrop.conf | Botun bütün yapılandırması | Çok yüksek |
| scripts klasörü | Yüklediğiniz ve yazdığınız scriptler | Yüksek |
| Script veri dosyaları | Seen, istatistik, puan gibi veriler | Orta-yüksek |
| Sertifika ve anahtar dosyaları | TLS ve SASL için | Yüksek |
| Log dosyaları | Geçmiş kayıtlar | İhtiyaca bağlı |
Userfile ve chanfile'ın adları eggdrop.conf'taki userfile ve chanfile ayarlarıyla belirlenir. Bu dosyaların yerini öğrenmek için yapılandırmanıza bakın. Ayarların ayrıntıları eggdrop.conf ayarları yazımızda.
Eggdrop'un Yerleşik Yedeği
Eggdrop, userfile'ı her kaydettiğinde bir önceki sürümün yedeğini de tutar. Ayrıca partyline'da .backup komutuyla elle yedek alabilirsiniz:
.backup
Bu komut, userfile ve chanfile'ın o anki hâlinin yedeğini oluşturur. Kullanıcı listesinde büyük değişiklikler yapmadan önce, örneğin toplu bayrak değişikliği veya botnet paylaşımını ilk kez açmadan önce, bu komutu çalıştırmak iyi bir alışkanlıktır.
Ancak yerleşik yedeğin önemli bir sınırlılığı vardır: Yedek, orijinal dosyayla aynı sunucuda, hatta aynı klasörde durur. Disk arızasında veya sunucunun tamamen kaybedilmesinde yedek de kaybolur. Bu yüzden yerleşik yedek tek başına yeterli değildir.
Otomatik Yedekleme
Elle yedek almak unutulabilir. Bu yüzden yedeklemeyi otomatikleştirmek gerekir. En basit yöntem, crontab'a günlük bir sıkıştırma komutu eklemektir:
0 4 * * * tar czf ~/yedek/eggdrop-$(date +\%F).tar.gz -C ~ eggdrop/bot.user eggdrop/bot.chan eggdrop/eggdrop.conf eggdrop/scripts
Bu satır her gece saat dörtte belirtilen dosyaları tarih içeren bir arşive sıkıştırır. Crontab'da % karakterinin önüne ters eğik çizgi konması gerektiğine dikkat edin. Dosya adlarını kendi yapılandırmanıza göre düzenleyin. Crontab kullanımını autobotchk ve crontab yazımızda anlattık.
Eski yedeklerin birikerek diski doldurmasını önlemek için belirli bir süreden eski arşivleri silen ikinci bir komut ekleyin. Örneğin son 14 günün yedeklerini tutmak çoğu bot için yeterlidir.
Sunucu Dışına Kopyalama
Bir yedeğin gerçek anlamda yedek olması için orijinalden farklı bir yerde durması gerekir. Seçenekler:
- Başka bir sunucu: Arşivleri SSH üzerinden başka bir sunucuya kopyalamak. Anahtar tabanlı kimlik doğrulama ile bu işlem otomatikleştirilebilir.
- Kişisel bilgisayar: Düzenli aralıklarla arşivleri kendi bilgisayarınıza indirmek.
- Bulut depolama: Arşivleri şifreleyip bir depolama hizmetine yüklemek.
Userfile parolaların özetlerini, host bilgilerini ve diğer hassas verileri içerir. Yedekleri sunucu dışına çıkarırken şifrelemeyi ihmal etmeyin. Şifrelenmemiş bir yedek, ele geçirildiğinde botunuzun kullanıcı listesini başkalarına açar. Güvenlik önlemleri için Eggdrop güvenliği yazımıza bakın.
Botnet'te Yedekleme
Botnet içinde userfile paylaşımı kullanıyorsanız her botun userfile'ı aynı içeriğe sahiptir. Bu, bir botun userfile'ı kaybolduğunda diğerlerinden geri alınabileceği anlamına gelir. Ancak bu bir yedekleme stratejisi değildir: Hub bottaki yanlış bir değişiklik veya kötü niyetli bir müdahale saniyeler içinde bütün botlara yayılır. Bu yüzden özellikle hub botun düzenli ve sunucu dışı yedeklerini almak çok önemlidir. Paylaşımın ayrıntıları userfile paylaşımı yazımızda.
Yedekten Geri Dönüş
Bir yedeği geri yüklemeniz gerektiğinde şu adımları izleyin:
- Botu kapatın: Partyline'da
.diekomutunu kullanın veya süreci sonlandırın. Bot çalışırken dosyaları değiştirirseniz bot kapanırken bellekteki eski veriyi dosyaya yazabilir. - Mevcut dosyaları kenara alın: Silmek yerine farklı bir isimle saklayın; belki daha sonra ihtiyaç duyarsınız.
- Yedeği açın ve dosyaları yerine kopyalayın.
- Dosya izinlerini kontrol edin: Dosyalar botu çalıştıran kullanıcıya ait olmalı ve başkaları tarafından okunamamalıdır.
- Botu başlatın ve partyline'da kullanıcı listesini, kanalları ve scriptleri kontrol edin.
Botnet içinde bir botu geri yüklüyorsanız, geri yüklenen eski userfile'ın paylaşım yoluyla diğer botlara yayılmamasına dikkat edin. Gerekirse geri yükleme sırasında botun botnet bağlantısını geçici olarak kesin.
Yedekleri Test Etmek
Hiç test edilmemiş bir yedek, var olduğu sanılan bir yedektir. Ayda bir kez yedek arşivini açıp dosyaların bozulmadığını ve beklenen içeriği taşıdığını kontrol edin. Daha da iyisi, yedeği ayrı bir test botuna yükleyip botun sorunsuz açıldığını görün. Bu tatbikat, gerçek bir kriz anında ne yapacağınızı bilmenizi sağlar ve geri yükleme sürecindeki eksikleri önceden ortaya çıkarır.
Gerçek Bir Senaryo
Bir botun sahibi, kullanıcı listesini temizlemek için hazırladığı bir scripti çalıştırıyor. Scriptteki bir hata nedeniyle yüzlerce kullanıcının bayrakları siliniyor ve bu değişiklik paylaşım yoluyla iki leaf bota da yayılıyor. Neyse ki bot sahibi her gece otomatik yedek alıyor ve yedekleri başka bir sunucuya kopyalıyor. Botları kapatıp hub'ın önceki gecenin userfile'ını geri yüklüyor, ardından botları sırayla açıyor. Leaf'ler hub'dan doğru listeyi alıyor. Toplam kayıp, son bir günde yapılan birkaç küçük değişiklikten ibaret kalıyor.
Yedekleme Sıklığı
Ne sıklıkla yedek almanız gerektiği, verilerinizin ne kadar hızlı değiştiğine bağlıdır. Kullanıcı listesi nadiren değişen küçük bir kanal botu için haftalık yedek yeterli olabilir. Her gün yeni kullanıcıların eklendiği, banların sürekli güncellendiği büyük bir botnet hub'ı için ise günlük, hatta günde birkaç kez yedek almak mantıklıdır. Kendinize şu soruyu sorun: Son yedekten bu yana yapılan değişiklikleri kaybetsem, bunları yeniden oluşturmak ne kadar sürer? Cevap birkaç dakikaysa seyrek yedek yeterlidir; cevap saatlerse yedekleme sıklığını artırın.
Sonuç
Yedekleme, bir sorun yaşanana kadar gereksiz görünen, sorun yaşandığında ise her şeyi kurtaran bir alışkanlıktır. Userfile, chanfile, yapılandırma ve scriptleri her gün otomatik yedekleyin, yedekleri şifreleyip sunucu dışına çıkarın, eski yedekleri temizleyin ve geri yükleme sürecini düzenli olarak test edin. Partyline üzerinden dosya aktarımı ve DCC özelliklerini öğrenmek için sıradaki rehberimiz DCC ve dosya transferi.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Eggdrop'ta en önemli yedeklenecek dosya hangisi?
Kullanıcı listesini içeren userfile en kritik dosyadır. Onu kanal ayarlarını içeren chanfile ve eggdrop.conf izler.
Eggdrop kendi yedeğini alır mı?
Evet, userfile için yerleşik bir yedek mekanizması vardır. Ancak bu yedek aynı sunucuda durduğu için sunucu dışına ayrı bir kopya almanız önerilir.
Yedeği nasıl geri yüklerim?
Botu kapatın, mevcut dosyaları kenara taşıyın, yedek dosyaları yerine kopyalayın ve botu yeniden başlatın.


