Záloha TeamSpeak serveru na VPS

Záloha TeamSpeak serveru na VPS
« kdy: 17. 10. 2020, 21:46:05 »
Zdravím,
Mám koupené VPS, kde hostuju pár herních serverů a nyní jsem si tam vytvořil i teamspeak server, jenže jsem nemyslel na zálohování. Na nastavení teamspeaku jsem si našel kamaráda, jsem na TS úplně blbej.
Jak mohu backupnout ts? (Roomky, permisse, to stačí :D)
Něco jsem četl, tak vím, že ikonky a soubory zálohovat nelze.
Jaký skript na to použít a jak použít ten skript?
Je někde nějáké české video? Jsem spíše začátečník tak bych potřeboval třeba nějáké video nebo někoho, kdo mi to ukáže přes sdílení obrazovky přímo v praxi a něco mi k tomu řekne. Je to docela nutné...

Prosím pochopte moji situaci, jsem začátečník.
Jak jste začínali vy?
Dokažte, že jste komunita rozumných lidí a dokážete pomoct a nepsal komentáře typu google.com/search=?teamspeak-backup-script.
Kdybych něco přes google našel, tak bych dotaz tady nepsal.
Našel jsem některé skripty, ale nevím jak je použít.

Vím, že přes YaTQU jdou dělat snapshoty, ale já potřebuju ten snapshot uložit do VPS, ne ke mně do PC.

Předem velice děkuji.
S pozdravem, Majk.
« Poslední změna: 17. 10. 2020, 22:06:21 od Petr Krčmář »


_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #1 kdy: 17. 10. 2020, 22:23:30 »
Co zazálohovat prostě celý systém? Pak si můžeš kdekoli kdykoli koupit jinou VPS (nebo si spustit virtuální počítač ve svém počítači, nebo si koupit fyzický server), nahraješ to tam, a hotovo?

Osobně to dělám pomocí rsync.
Kód: [Vybrat]
rsync -xavzhPe ssh --numeric-ids root@server:/ kam_zálohovat/(pozor, že -x zálohuje pouze ten jeden filesystém, což chceme, protože nechceme kopírovat třeba /proc a /dev. Nicméně pokud máš třeba /var nebo /home na jiném, musíš je explicitně specifikovat. Nebo -x smazat a /proc, /dev, /sys a spol. vyjmenovat v --exclude)

Problém je, pokud má TS databázi, která se musí zálohovat konzistentně. K tomu jsou tři možnosti:
  • Udělat snapshot a zálohovat z něj. To lze pokud máš VPS třeba na LVM nebo btrfs. Hledej „LVM snapshot“.
  • Databázi dumpnout a při obnově ji obnovit u dumpu. To se dělá u každého software jinak a já bohužel TS neznám, takže neporadím.
  • TS server během zálohování vypnout. To jde samozřejmě udělat pouze pokud se třeba v noci nepoužívá a kdybys to dělal profesionálně, tak bys s tímhle řešením asi moc nepochodil.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #2 kdy: 17. 10. 2020, 22:27:05 »
Prosím pochopte moji situaci, jsem začátečník.
Jak jste začínali vy?
Začínal jsem čtením různých zdrojů a provozování právě takových různých srandaserverů (web, mail, ... pro sebe a pak pár kamarádů). Zdroje:

https://old-archiv.avc-cvut.cz/akce/linuxove-minimum-spravce-debianu-dan-ohnesorg

Linux - Dokumentační projekt 3. vydání (jde stáhnout česky, zdarma a legálně; už existuje i 4. vydání, to jsem nečetl)

no a pak samozřejmě neustále hledání a řešení problémů. Můžeš začít třeba tím, že se seznámíš s programy, které jsem uvedl ve svém komentáři (rsync, LVM), vyzkoušíš si pomocí nich server zazálohovat, vytvoříš si na svém počítači virtuál (KVM, VirtualBox) a do něj to obnovíš a spustíš to tam.

AŽ uvedené dáš, tak máš normálně kvalifikaci na to stát se junior linux adminem v nějaké firmě ;)

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #3 kdy: 17. 10. 2020, 23:08:48 »
Co zazálohovat prostě celý systém? Pak si můžeš kdekoli kdykoli koupit jinou VPS (nebo si spustit virtuální počítač ve svém počítači, nebo si koupit fyzický server), nahraješ to tam, a hotovo?

Osobně to dělám pomocí rsync.
Kód: [Vybrat]
rsync -xavzhPe ssh --numeric-ids root@server:/ kam_zálohovat/(pozor, že -x zálohuje pouze ten jeden filesystém, což chceme, protože nechceme kopírovat třeba /proc a /dev. Nicméně pokud máš třeba /var nebo /home na jiném, musíš je explicitně specifikovat. Nebo -x smazat a /proc, /dev, /sys a spol. vyjmenovat v --exclude)

Problém je, pokud má TS databázi, která se musí zálohovat konzistentně. K tomu jsou tři možnosti:
  • Udělat snapshot a zálohovat z něj. To lze pokud máš VPS třeba na LVM nebo btrfs. Hledej „LVM snapshot“.
  • Databázi dumpnout a při obnově ji obnovit u dumpu. To se dělá u každého software jinak a já bohužel TS neznám, takže neporadím.
  • TS server během zálohování vypnout. To jde samozřejmě udělat pouze pokud se třeba v noci nepoužívá a kdybys to dělal profesionálně, tak bys s tímhle řešením asi moc nepochodil.

Toto by snad mohlo pomoct :D
https://hastebin.com/bidavemure.bash

RDa

  • *****
  • 2 783
    • Zobrazit profil
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #4 kdy: 18. 10. 2020, 19:23:03 »
Problém je, pokud má TS databázi, která se musí zálohovat konzistentně. K tomu jsou tři možnosti:
  • Udělat snapshot a zálohovat z něj. To lze pokud máš VPS třeba na LVM nebo btrfs. Hledej „LVM snapshot“.

Jsi si jisty ze FS/LVM snapshot bude reseni na konzistenci? Porad ta DB nebude spravne uzavrena, takze musi pak probehnout nejake recovery. Jasne, je to mene rozbite nez kdyby to delal bez snapshotu pri silne zapisovaci zatezi, ale problem to neresi.


_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #5 kdy: 18. 10. 2020, 19:52:22 »
Jsi si jisty ze FS/LVM snapshot bude reseni na konzistenci? Porad ta DB nebude spravne uzavrena, takze musi pak probehnout nejake recovery.
Bude to ve stavu jako kdyby vypadl proud nebo se to nečekaně sestřelilo, což musí ustát.

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #6 kdy: 19. 10. 2020, 08:48:37 »
Staci zkopirovat databazi ts3server.sqlitedb

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #7 kdy: 19. 10. 2020, 15:43:51 »
Na tohle je potřeba myslet před instalací (nebo před konfigurací/spuštěním, přesněji řečeno). Nativně ts3server využívá sqlite. Považuji za lepší mu dát mysql / marii, protože pak se konzistentní backup udělá snadno např. dumpem.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #8 kdy: 19. 10. 2020, 18:30:32 »
Na tohle je potřeba myslet před instalací (nebo před konfigurací/spuštěním, přesněji řečeno). Nativně ts3server využívá sqlite. Považuji za lepší mu dát mysql / marii, protože pak se konzistentní backup udělá snadno např. dumpem.
Eh, sqlite snad nejde dumpnout?

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #9 kdy: 19. 10. 2020, 19:30:14 »
Eh, sqlite snad nejde dumpnout?
Samozřejmě jde. Ale řekl bych, že pro úplného laika je srozumitelnější dump z mysql / marie. Ale třeba se pletu (a soudím podle sebe) - zkusil jsem první link v googlu na mysql/maria dump a pak sqlite dump a jasnější mi to přijde v prvním případě.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #10 kdy: 19. 10. 2020, 20:18:00 »
Samozřejmě jde. Ale řekl bych, že pro úplného laika je srozumitelnější dump z mysql / marie. Ale třeba se pletu (a soudím podle sebe) - zkusil jsem první link v googlu na mysql/maria dump a pak sqlite dump a jasnější mi to přijde v prvním případě.
Mně naopak přijde ve všech ohledech jednodušší sqlite -- je to jeden soubor, nemusí se vůbec nic systémového nastavovat, triviální testování (soubor se vyrobí jinde, nahradí se…). Jiné DB než sqlite používám pouze pokud potřebuji nějakou funkcionalitu, kterou sqlite neumí (rozumně rychlý přístup více procesů, rozumně rychlý přístup po síti…). Přiznám se, že jsem ale sqlite nikdy nedumpoval, byly to vždycky věci, kdy šel soubor odkopírovat když se na něj nesahalo.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Záloha TeamSpeak serveru na VPS
« Odpověď #11 kdy: 19. 10. 2020, 21:29:18 »
Mimochodem když jsme u toho, tak sqlite je možná lepší nedumpovat, ale zkopírovat -- existuje příkaz, který to udělá za běhu a konzistentně. https://stackoverflow.com/questions/41744297/do-the-sqlite3-backup-and-dump-commands-lock-the-database

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #12 kdy: 19. 10. 2020, 22:54:14 »
Tady by asi bylo nejlepší řešení si udělat script, který se bude připojovat přes telnet na TeamSpeak Query. Přes něj lze vytvářet snadno snapshoty, které obsahují celou konfiguraci serveru (mimo souborů) a zabírají jen pár kb. Klidně takto můžete zálohovat každou hodinu a v případě potřeby během pár sekund obnovit..
https://lethallhost.com.br/clientes/TeamSpeak%203%20Server%20Query%20Manual.pdf
Všichni lidé jsou špatní, dokud je nutnost nepřivede k tomu, aby byli dobří. (Machiavelli)

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #13 kdy: 20. 10. 2020, 19:26:01 »
Mně naopak přijde ve všech ohledech jednodušší sqlite -- je to jeden soubor, nemusí se vůbec nic systémového nastavovat, triviální testování (soubor se vyrobí jinde, nahradí se…). Jiné DB než sqlite používám pouze pokud potřebuji nějakou funkcionalitu, kterou sqlite neumí (rozumně rychlý přístup více procesů, rozumně rychlý přístup po síti…). Přiznám se, že jsem ale sqlite nikdy nedumpoval, byly to vždycky věci, kdy šel soubor odkopírovat když se na něj nesahalo.

No právě. A tím že ts3server v ideálním případě běží jako servica...


Mimochodem když jsme u toho, tak sqlite je možná lepší nedumpovat, ale zkopírovat -- existuje příkaz, který to udělá za běhu a konzistentně. https://stackoverflow.com/questions/41744297/do-the-sqlite3-backup-and-dump-commands-lock-the-database

Aha, to jsem nevěděl (jak říkám, nejsem znalec sqlite). Alespoň se něco nového přiučím :-)

Re:Záloha TeamSpeak serveru na VPS
« Odpověď #14 kdy: 26. 10. 2020, 10:17:34 »
Dělat v TS3 zálohu DB (mimo snapshot generovaný TS3) bez zálohy souborů ze stejného času je cesta do pekel. Při obnově pak narazíte na problém, že v db jsou desítky / stovky odkazů na neexistující, nebo změněné soubory. Nedejbože, pokud mezitím proběhne update verze TS3 serveru a nebudete mít zálohu na původní verzi
Všichni lidé jsou špatní, dokud je nutnost nepřivede k tomu, aby byli dobří. (Machiavelli)