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 Obnovení továrního nastavení routeru Turris Omnia. V tomto manuálu naleznete návod k pokročilejšímu zacházení se snapshoty.
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 snapshotuschnapps cmp
– porovnání snapshotůschnapps diff
– porovnání snapshotů s detailyPř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:
root@turris:~# schnapps create "Vsechno funguje" Snapshot number 24 created
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:
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
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:
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 ...
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ů:
root@turris:~# schnapps mount 19 Snapshot 19 mounted in /mnt/snapshot-@19 root@turris:~# cat /mnt/snapshot-@19/etc/turris-version 3.5.2
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:
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 ...
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.
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.