FiveM sunucusu nasıl yedeklenir: veritabanı, kaynaklar ve txData

FiveM sunucunuzu yedekleyin: mysqldump veya HeidiSQL veritabanı için, kaynaklar, server.cfg ve txData, zamanlanmış yedeklemeler, sunucu dışı kopyalar ve geri yükleme.

Disk ölür, kötü bir betik bir tabloyu düşürür, ev sahibi hesabınızı kapatır veya yanlış klasörü silersiniz. Sunucunun tek kopyası sunucuda ise, sıfırdan başlarsınız ve oyuncularınız karakterlerini kaybederler. Bu rehber neler yedeklemeli, nasıl otomatikleştirilmeli ve nasıl geri yüklenmeli.

Neler yedeklenmeli

Ne Neden Nerede
Veritabanı Karakterler, para, otolar, envanterler, oyuncuların sahip olduğu her şey MariaDB veya MySQL
server.cfg Sunucu ayarlarınız ve başlama sırası sunucu veri klasörü
resources klasörü Betikleriniz ve yapılandırma dosyaları sunucu veri klasörü
txData txAdmin ayarları, yönetici hesapları, yasaklama geçmişi ve işlem günlüğü txData klasörü

FiveM sunucu ikilileri (eserler) yedeklemeye ihtiyaç duymaz. Bunları yeniden indirebilirsiniz; bkz. sunucu eserlerini güncelleme.

Dikkat: server.cfg, lisans anahtarı, veritabanı şifresi ve Discord belirteçlerini tutabilir. Yedeklemeleri özel tutun ve hiçbir zaman halka açık bir yere yayınlamayın.

Veritabanını yedekleyin

mysqldump ile

mysqldump, MariaDB ve MySQL ile birlikte gelir. Kullanıcı ve veritabanı adını sizinle değiştirin:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction, sunucuyu kilitlemeden InnoDB tablolarının tutarlı bir kopyasını alır.
  • --routines saklı prosedürleri içerir.
  • --databases, CREATE DATABASE deyimini ekler, bu nedenle geri yükleme daha basitdir.

Tarihi dosya adına koyun, böylece kopyalar birbirini üzerine yazmaz:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > "backup_$(date +%F).sql"

Parola istemi olmadan çalıştırmak için kimlik bilgilerini korumalı bir seçenek dosyasında depolayın (örneğin Linux'ta ~/.my.cnf) komutla yazıp yazmak yerine.

HeidiSQL ile

Grafik bir araç tercih ederseniz:

  1. HeidiSQL'de sunucuya bağlanın.
  2. Veritabanının sağ tarafındaki düğmesine basın ve Veritabanını SQL olarak dışa aktarın seçeneğini seçin.
  3. Tüm tabloları seçin, yapı için Oluştur ve veri için Ekle seçin ve hedef dosyayı seçin.
  4. Dışa aktar'a tıklayın.

Riskli değişikliklerden önce bunu elle yapın. Düzenli yedeklemeler için otomatikleştirin.

Dosyaları yedekleyin

Tutmak istediğiniz klasörleri sıkıştırın:

bash
tar -czf server_files_$(date +%F).tar.gz server.cfg resources txData

Windows'ta, PowerShell aynı şeyi yapabilir:

powershell
Compress-Archive -Path server.cfg, resources, txData -DestinationPath "server_files_$(Get-Date -Format yyyy-MM-dd).zip"

Bu öğeleri tutan klasörden çalıştırın veya tam yollar kullanın. Yedeklemeleriniz çok büyürse önbellek klasörlerini atlayın; sunucu çalıştığında yeniden oluşturulurlar.

Çizelge yapın

Linux: cron

Crontab'ı crontab -e ile açın ve bir satır ekleyin. Bu, dökümü her gün 04:00'de çalıştırır:

cron
0 4 * * * mysqldump --single-transaction --routines --databases es_extended > /backups/db_$(date +\%F).sql

Crontab içinde % yüzde işareti olarak \% olmalıdır. Bunu çalıştıran kullanıcının yukarıda açıklandığı gibi bir seçenek dosyası aracılığıyla veritabanına erişimi gerekir.

Windows: Görev Zamanlayıcı

Yedekleme komutlarını backup.ps1 betiğine kaydedin, ardından günlük bir görev oluşturun:

powershell
schtasks /Create /SC DAILY /ST 04:00 /TN "FiveM backup" /TR "powershell -ExecutionPolicy Bypass -File C:\fivem\backup.ps1"

Veya Görev Zamanlayıcı uygulamasını kullanın: temel bir görev oluşturun, günlük bir tetikleyici ayarlayın ve betiği eylem olarak seçin.

Birkaç oyuncu çevrimiçi olduğunda, örneğin zamanlanmış yeniden başlatmadan hemen önce bir zaman seçin.

Eski yedeklemeleri silin

Yedeklemeler yığılır. Örneğin son 7 günlük kopyayı ve birkaç haftalık kopyayı tutun. Betikte küçük bir temizlik yeterlidir:

bash
find /backups -name "db_*.sql" -mtime +14 -delete

Yedeklemeleri sunucudan uzak tutun

Kural basittir: aynı makinada yaşayan bir yedek gerçek bir yedek değildir. Her çalıştırmadan sonra başka bir yere kopyalayın:

  • SSH üzerinden scp veya rsync ile başka bir sunucu veya ev makinesi,
  • rclone gibi bir araçla bulut depolama hizmeti,
  • aynı makinenin parçası olmayan farklı bir disk; en azından.

Kopyaların varış noktasına ulaşıp ulaşmadığını test edin. Destinasyonu zaman zaman kontrol edin.

Yedeklemeyi geri yükleyin

Hiçbir zaman geri yüklemediğiniz bir yedek bir umut, yedek değil. Şimdi bir test veritabanında geri yüklemeyi deneyin.

  1. FiveM sunucusunu txAdmin'den durdurun, böylece geri yükleme sırasında hiçbir şey yazılmaz.
  2. Veritabanını geri yükleyin:
bash
mysql -u root -p < backup.sql

Döküm --databases kullandığı için veritabanının kendisini yeniden oluşturur. HeidiSQL ile dışa aktardıysanız, araçta SQL dosyasını çalıştır'ı seçin ve dosyayı seçin.

  1. server.cfg ve resources klasörünü geri koyun ve txAdmin kaybedildiyse txData klasörünü.
  2. Sunucuyu başlatın ve konsolu veritabanı hataları için izleyin. Bağlantı başarısız olursa oxmysql bağlantı hataları bölümüne bakın.

Geri yükleme, bu tablolardaki mevcut verileri üzerine yazar, bu nedenle bunu amaçlı olarak yapın ve ilk önce geçerli durumun bir kopyasını tutun.

Her değişiklikten önce

Çerçeveyi güncellemeden, tabloları düzenleyen bir betik eklemedeniz veya bir indirmeden SQL dosyası çalıştırmadan önce hızlı bir el dökümü alın. Saniyeler alır ve birçok sorunu kaydeder.

Kontrol Listesi

Semptom Çözüm
Hiç yedek yok Bugün mysqldump çalıştırın, sonra zamanlayın
Döküm zamanlanmış işte parola istiyor Komutla yazıp yazmak yerine kimlik bilgileriyle seçenek dosyası kullanın
Yedeklemeler yalnızca sunucuda Başka bir makineye veya depolamaya kopyalayın
Disk doluyor Saklama sürenizden daha eski yedeklemeleri silin
txAdmin ayarları veya yöneticileri kayboldu txData klasörünü geri yükleyin
İçe aktarmada geri yükleme başarısız SQL dosyasının tam olduğunu ve veritabanı kullanıcısının haklara sahip olduğunu kontrol edin
Yedeklemenin çalışıp çalışmadığından emin değil Bir test veritabanına geri yükleyin ve tabloları kontrol edin

Kısa yanıtlar

Yedeklemek için en önemli şey nedir?

Veritabanı. Karakterler, para, otolar ve envanterler orada yaşarlar ve onları yeniden oluşturamaz. Kaynaklar ve yapılandırma yeniden indirilebilir veya yeniden oluşturulabilir, ancak oyuncu verileri olamaz.

Ne sıklıkta yedeklemelidim?

Veritabanını en az günde bir kez yedekleyin ve her güncellemeden veya büyük betik değişikliğinden önce. Meşgul bir sunucu bunu birkaç saatte çalıştırabilir.

Aynı makinedeki bir yedek yeterli mi?

Hayır. Disk arızası, silinen sunucu veya kötü amaçlı yazılım saldırısı yedeklemeyi de alır. Yedeklemeleri başka bir makineye veya depolama hizmetine kopyalayın.

Bu sorunu yaşatmayan scriptler

Tebex TemplateTebex mağazanız için kod gerektirmeyen premium tema; tamamen Tebex panelinden düzenlenir.Scripti gör →Item Creator V2Animasyonlar, proplar, efektler ve daha fazlasıyla kullanılabilir eşyalar oluşturun — kod yazmadan.Scripti gör →Shop CreatorBir dakikadan kısa sürede dükkân kurun — sahipler, çalışanlar, kasalar ve soygunlar dahil.Scripti gör →

Okumaya devam edin