Jak zrobić backup serwera FiveM: baza danych, zasoby i txData

Zrób backup swojego serwera FiveM: mysqldump lub HeidiSQL dla bazy danych, zasoby, server.cfg i txData, backupy zaplanowane, kopie poza serwerem i jak przywrócić.

Dysk umiera, zły skrypt usuwa tabelę, host zamyka twoje konto, lub usuwasz zły folder. Jeśli jedyna kopia serwera jest na serwerze, zaczynaćz od zera i twoi gracze tracą swoje postaci. Ten poradnik obejmuje co zbackupować, jak to zautomatyzować, i jak przywrócić.

Co zbackupować

Co Dlaczego Gdzie
Baza danych Postaci, pieniądze, pojazdy, inwentarze, wszystko czym posiadają gracze MariaDB lub MySQL
server.cfg Ustawienia serwera i kolejność uruchamiania folder danych serwera
Folder resources Twoje skrypty i ich pliki config folder danych serwera
txData Ustawienia txAdmin, konta administratorów, historię banów i log czynności folder txData

Binaria serwera FiveM (artefakty) nie potrzebują backupu. Możesz je pobrać ponownie, zobacz updating server artifacts.

Ostrzeżenie: server.cfg może zawierać twój klucz licencji, hasło bazy danych i tokeny Discord. Trzymaj backupy prywatnie i nigdy nie publikuj ich w publicznym miejscu.

Backup bazy danych

Z mysqldump

mysqldump wyposażony jest w MariaDB i MySQL. Zastąp użytkownika i nazwę bazy danych swoimi:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction tworzy spójną kopię tabel InnoDB bez blokowania serwera.
  • --routines zawiera przechowywane procedury.
  • --databases dodaje oświadczenie CREATE DATABASE, więc przywracanie jest prostsze.

Włóż datę do nazwy pliku, aby kopie nie nadpisywały się nawzajem:

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

Aby uruchomić go bez monitu hasła, przechowuj poświadczenia w chronionym pliku opcji (takim jak ~/.my.cnf na Linux) zamiast wpisywać je w polecenie.

Z HeidiSQL

Jeśli wolisz narzędzie graficzne:

  1. Podłącz się do serwera w HeidiSQL.
  2. Kliknij prawym przyciskiem bazy danych i wybierz Export database as SQL.
  3. Wybierz wszystkie tabele, wybierz Create dla struktury i Insert dla danych, i wybierz plik docelowy.
  4. Kliknij Export.

Rób to ręcznie przed ryzykownymi zmianami. Dla regularnych backupów, zautomatyzuj to.

Backup plików

Skompresuj foldery, które chcesz trzymać:

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

Na Windows, PowerShell może zrobić to samo:

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

Uruchom to z folderu, który zawiera te przedmioty, lub użyj pełnych ścieżek. Pomiń foldery cache, jeśli twoje backupy stają się ogromne; są przebudowywane, gdy serwer się uruchamia.

Zaplanuj to

Linux: cron

Otwórz crontab z crontab -e i dodaj linię. To uruchamia dump każdego dnia o 04:00:

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

Wewnątrz crontab, % musi być uciekane jako \%. Użytkownik, który to uruchamia, potrzebuje dostępu do bazy danych przez plik opcji, jak opisano powyżej.

Windows: Task Scheduler

Zapisz swoje polecenia backupu w skrypcie backup.ps1, potem utwórz dzienne zadanie:

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

Lub użyj aplikacji Task Scheduler: utwórz podstawowe zadanie, ustaw dzienne wyzwalanie, i wybierz skrypt jako akcję.

Wybierz czas, gdy niewiele graczy jest online, takiego jak tuż przed swoim scheduled restart.

Usuń stare backupy

Backupy się gromadzą. Trzymaj, na przykład, ostatnie 7 dziennych kopii i kilka tygodniowych. Małe czyszczenie w skrypcie wystarczy:

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

Trzymaj backupy poza serwerem

Zasada jest prosta: backup, który żyje na tej samej maszynie, nie jest prawdziwym backupem. Skopiuj go gdzieś indziej po każdym uruchomieniu:

  • inny serwer lub maszyna domowa, z scp lub rsync przez SSH,
  • usługa magazynowania w chmurze, z narzędziem takim jak rclone,
  • inny dysk, który nie jest częścią tej samej maszyny, jako minimum.

Przetestuj, że kopia przybywa. Sprawdzaj docelowe miejsce od czasu do czasu.

Przywróć backup

Backup, który nigdy nie przywróciłeś, to nadzieja, nie backup. Spróbuj przywrócenia na testowej bazie danych teraz.

  1. Zatrzymaj serwer FiveM z txAdmin, aby nic się nie pisało podczas przywracania.
  2. Przywróć bazę danych:
bash
mysql -u root -p < backup.sql

Ponieważ dump używał --databases, odtwarza samą bazę danych. Jeśli eksportowałeś z HeidiSQL, wybierz Run SQL file w narzędziu i wybierz plik.

  1. Włóż server.cfg i folder resources z powrotem, i folder txData, jeśli txAdmin był stracony.
  2. Uruchom serwer i obserwuj konsolę na błędy bazy danych. Zobacz oxmysql connection errors, jeśli połączenie się nie powiedzie.

Przywracanie nadpisuje bieżące dane w tych tabelach, więc rób to świadomie i przechowuj kopię bieżącego stanu najpierw.

Przed każdą zmianą

Przed aktualizacją struktury, dodaniem skryptu, który edytuje tabele, lub uruchomieniem pliku SQL z pobierania, zrób szybki ręczny dump. To zajmuje sekundy i oszczędza mnóstwo kłopotów.

Lista kontrolna

Symptom Naprawa
Brak backupu w ogóle Uruchom mysqldump dzisiaj, potem zaplanuj to
Dump prosi o hasło w zaplanowanym zadaniu Użyj pliku opcji z poświadczeniami
Backupy tylko na serwerze Skopiuj je do innej maszyny lub magazynu
Dysk się zapełnia Usuń backupy starsze niż twój okres przechowywania
Stracone ustawienia txAdmin lub administratorzy Przywróć folder txData
Przywracanie się nie powiedzie przy imporcie Sprawdź, czy plik SQL jest kompletny i użytkownik bazy danych ma uprawnienia
Niepewny, czy backup działa Przywróć go do testowej bazy danych i sprawdź tabele

Szybkie odpowiedzi

Co jest najważniejsze do zbackupowania?

Baza danych. Postaci, pieniądze, pojazdy i inwentarze wszystkie żyją tam, i nie możesz ich przebudować. Zasoby i config można pobrać ponownie lub ponownie stworzyć, ale dane graczy nie.

Jak często powinienem robić backup?

Zrób backup bazy danych co najmniej raz dziennie, i przed każdą aktualizacją lub dużą zmianą skryptu. Zajęty serwer może to uruchamiać co kilka godzin.

Czy backup na tej samej maszynie wystarczy?

Nie. Awaria dysku, usunięty serwer lub atak ransomware prowadzi backup z nim. Skopiuj backupy do innej maszyny lub usługi magazynowania.

Skrypty bez tego problemu

Tebex TemplateMotyw premium dla twojego sklepu Tebex, bez kodu — edytowany w całości z panelu Tebex.Zobacz skrypt →Item Creator V2Twórz używalne przedmioty z animacjami, propami, efektami i nie tylko — bez pisania kodu.Zobacz skrypt →Shop CreatorZbuduj sklep w niecałą minutę — właściciele, pracownicy, sejfy i napady w zestawie.Zobacz skrypt →

Czytaj dalej