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.cfgmoż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:
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql--single-transactiontworzy spójną kopię tabel InnoDB bez blokowania serwera.--routineszawiera przechowywane procedury.--databasesdodaje oświadczenieCREATE DATABASE, więc przywracanie jest prostsze.
Włóż datę do nazwy pliku, aby kopie nie nadpisywały się nawzajem:
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:
- Podłącz się do serwera w HeidiSQL.
- Kliknij prawym przyciskiem bazy danych i wybierz Export database as SQL.
- Wybierz wszystkie tabele, wybierz Create dla struktury i Insert dla danych, i wybierz plik docelowy.
- 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ć:
tar -czf server_files_$(date +%F).tar.gz server.cfg resources txDataNa Windows, PowerShell może zrobić to samo:
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:
0 4 * * * mysqldump --single-transaction --routines --databases es_extended > /backups/db_$(date +\%F).sqlWewną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:
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:
find /backups -name "db_*.sql" -mtime +14 -deleteTrzymaj 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
scplubrsyncprzez 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.
- Zatrzymaj serwer FiveM z txAdmin, aby nic się nie pisało podczas przywracania.
- Przywróć bazę danych:
mysql -u root -p < backup.sqlPonieważ dump używał --databases, odtwarza samą bazę danych. Jeśli eksportowałeś z HeidiSQL, wybierz Run SQL file w narzędziu i wybierz plik.
- Włóż
server.cfgi folderresourcesz powrotem, i foldertxData, jeśli txAdmin był stracony. - 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 →