Uživatelské nástroje

Nástroje pro tento web


Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

cs:howto:schnapps [2017/03/21 16:10] (aktuální)
nkoranova vytvořeno
Řádek 1: Řádek 1:
 +====== Schnapps ======
 +
 +Schnapps je nástroj pro správu snapshotů, což jsou snímky stavu operačního systému v daný okamžik v čase. Snapshoty lze vytvořit manuálně – návod, jak na to, naleznete níže v tomto článku – zároveň se ale automaticky vytvářejí při každé aktualizaci operačního systému a také periodicky jednou za týden. ​
 +
 +Díky Schnappsu je možné vrátit se k předchozí verzi OS, například za účelem otestovat danou funkcionalitu v té konkrétní verzi nebo jako záchrana při selhání OS. **Pokud plánujete provádět větší změny v nastavení systému, doporučujeme si před tím vytvořit snapshot**, ke kterému se můžete vrátit v případě, že by nastala nějaká chyba. K předchozímu snapshotu se také lze vrátit jednoduše podržením tlačítka reset dokud se nerozsvítí dvě diody. O této jednoduché záchraně pojednává článek[[cs:​howto:​omnia_factory_reset#​navrat_na_predchozi_snapshot_operacniho_systemu| Obnovení továrního nastavení routeru Turris Omnia]]. ​
 +V tomto manuálu naleznete návod k pokročilejšímu zacházení se snapshoty. ​
 +
 +=== Některé příkazy pro práci se Schnappsem: ===
 +
 +  * ''​schnapps help''​ – nápověda (kompletní seznam příkazů s popisy jejich funkcí)
 +  * ''​schnapps create''​ – vytváření snapshotů
 +  * ''​schnapps list''​ – seznam dostupných snapshotů
 +  * ''​schnapps rollback''​ – návrat ke konkrétnímu snapshotu
 +  * ''​schnapps cmp''​ – porovnání snapshotů
 +  * ''​schnapps diff''​ – porovnání snapshotů s detaily
 +
 +==== Vytvoření snapshotu a navrácení se k určitému snapshotu: ====
 +
 +Připojte se k routeru pomocí [[SSH]]. ​
 + 
 +Poté pomocí příkazu ''​schnapps create''​ vytvořte snapshot. Můžete přitom použít argument ''​desc'',​ kterým si daný snapshot označíte a usnadníte si tak pozdější orientaci v jednotlivých snapshotech:​
 +
 +<​code>​
 +root@turris:​~#​ schnapps create "​Vsechno funguje"​
 +Snapshot number 24 created
 +</​code>​
 +
 +Schnapps vytvořil snapshot, v tomto případě číslo 24. Pomocí příkazu ''​schnapps list''​ můžete zkontrolovat,​ že snapshot je skutečně v seznamu snímků. Příklad výstupu, který můžete očekávat: ​
 +
 +<​code>​
 +root@turris:​~#​ schnapps list
 +    # | Type      | Date                      | Description
 +------+-----------+---------------------------+---------------------------------
 +   11 | rollback ​ | 2017-01-12 12:03:09 +0000 | Rollback to snapshot 7
 +   12 | rollback ​ | 2017-01-12 12:40:38 +0000 | Rollback to snapshot 6
 +   14 | rollback ​ | 2017-01-12 14:27:35 +0000 | Rollback to snapshot 13
 +   17 | pre       | 2017-01-24 13:00:28 +0100 | Automatic pre-update snapshot
 +   18 | pre       | 2017-02-02 14:02:24 +0100 | Automatic pre-update snapshot
 +   19 | pre       | 2017-02-13 09:41:45 +0100 | Automatic pre-update snapshot
 +   20 | pre       | 2017-02-13 11:05:48 +0100 | Automatic pre-update snapshot
 +   21 | pre       | 2017-02-20 14:02:12 +0100 | Automatic pre-update snapshot
 +   22 | pre       | 2017-03-15 14:02:11 +0100 | Automatic pre-update snapshot
 +   23 | pre       | 2017-03-21 10:11:22 +0100 | Automatic pre-update snapshot
 +   24 | single ​   | 2017-03-21 11:02:02 +0100 | Vsechno funguje
 +
 +</​code>​
 +
 +Všimněte si, že starší snapshoty v seznamu chybí. Automaticky vytvářené „předaktualizační“ snapshoty jsou totiž pravidelně mazány. Stejně tak je to s periodickými týdenními snapshoty, kterých se zachovává pouze několik nejnovějších a jsou mazány i ty, které se oproti následujícím nijak neliší. ​
 +
 +Pomocí příkazu ''​schnapps cmp [číslo] [číslo]''​ můžete porovnat dva snapshoty, abyste zjistili co v dané verzi chybí nebo přebývá. ​
 +Například:​
 +
 +<​code>​
 +root@turris:​~#​ schnapps cmp 23 24
 +Comparing snapshots 23 and 24
 +This can take a while, please be patient.
 +Meaning of the lines is following:
 +
 +   - file    file present in 23 and missing in 24
 +   + file    file not present in 23 but exists in 24
 +   ~ file    file in 23 differs from file in 24
 +
 + ~ /.rnd
 + ~ /​etc/​config/​ucitrack
 + + /​etc/​cron.d/​.keep
 + + /​etc/​crontabs/​.keep
 + ~ /​etc/​dhparam/​dh2048.pem
 + ~ /​etc/​turris-version
 +- /​lib/​upgrade/​keep.d/​vixie-cron
 +...
 +</​code>​
 +
 +Pokud si chcete ověřit verzi OS daného snapshotu, to se může hodit například pokud se chcete vrátit k nějaké konkrétní verzi, můžete to udělat pomocí následujících dvou příkazů:
 +
 +<​code>​
 +root@turris:​~#​ schnapps mount 19
 +Snapshot 19 mounted in /​mnt/​snapshot-@19
 +root@turris:​~#​ cat /​mnt/​snapshot-@19/​etc/​turris-version
 +3.5.2
 +</​code>​
 +
 +Následně se pomocí příkazu ''​schnapps rollback [číslo]''​ vrátíte k vybranému snapshotu. Současný stav systému při tom bude automaticky uložen jako další snapshot: ​
 +
 +<​code>​
 +root@turris:​~#​ schnapps rollback 23
 +Current state saved as snapshot number 25
 +Rolled back to snapshot 23
 +
 ++ PARTITION=/​dev/​mtdblock4
 ++ WORKDIR=/​tmp/​certstore
 ++ SUBVOL=certbackup
 ++ dirname /​tmp/​certstore
 ++ mkdir -p /tmp
 +...
 +</​code>​
 +
 +
 +**V posledním kroku je nutné router restartovat** (ručně nebo příkazem ''​reboot''​). Systém se nabootuje do kopie systému, která vznikla v momentě vytvoření snapshotu, který jste pro rollback vybrali. ​
 +
 +<WRAP center info 80%>
 +
 +**Upozornění**:​ Systém v daném snapshotu pochopitelně nezůstane navždy. Po pár hodinách se automaticky nainstalují aktualizace a od chvíle bootu do určitého snapshotu systém opět začne žít svým vlastním životem. Nástroj Schnapps tedy nelze používat jako navození jakéhosi trvalého nehybného stavu OS. 
 +</​WRAP>​