# Restarty, zálohy a úklidy

> Jeden rozvrh pro všechno, co jede na hodiny, s varováními, která lidi vidí, a záznamem o tom, co se přeskočilo.

Source: https://stygion.eu/cs/docs/keystone/operations
Updated: 2026-10-09

Všechno, co jede na hodiny, bydlí v `operations.toml` a na obrazovce Operations.
Čtyři úlohy — `restart`, `backup`, `announce`, `clean` — a každá má svoje `when`.

`when = "off"` je vypnuto. Jinak je to rozvrh: `"every 1m"`, nebo denní čas.
`timezone` rozhoduje, co znamená „03:00"; prázdné znamená čas stroje.

**Spustit něco ručně jede stejnou cestou jako hodiny** — stejná varování, stejné
odpočítávání, stejný záznam. Není tichá cesta, co přeskočí tu část, kde se to
lidem řekne.

## Restart

| Nastavení | Co dělá |
|---|---|
| `warn-at` | Kdy to lidem říct. Výchozí `15m, 5m, 1m, 30s, 10s`. |
| `after-uptime` | Restartuj, jakmile server běží takhle dlouho. |
| `above-memory-percent` | Nebo jakmile paměť přeleze tohle. Výchozí 85. |
| `below-tps` | Nebo jakmile TPS spadne pod tohle. Nula znamená nikdy podle TPS. |
| `wait-for-empty` | Nikoho nepřerušuj: počkej, až bude server prázdný. |
| `wait-at-most` | Ale ne donekonečna. Výchozí dvě hodiny. |
| `supervised` | Jestli server něco zvenku nastartuje zpátky. `auto` si to odvodí. |

**`supervised` je nastavení, které rozhoduje, jestli je restart restart, nebo
vypnutí.** Když proces nikdo zvenku nevrátí — žádná systemd jednotka, žádný
panel, žádné `while true` — pak je zastavení všechno, co Keystone umí. `auto`
pozná obvyklé případy; když máš setup neobvyklý, nastav to natvrdo.

Naplánovaný restart se po startu serveru z jeho vlastní složky už neodmítá sám
(hra hlásila složku jako prázdný řetězec a proces spuštěný v „" nenastartuje).
**Ruční `/keystone operations restart` nepřeskočí zdravý server** s „není co
získat" — doba běhu, paměť a TPS jsou důvody pro hodiny, ne podmínky pro
operátora. Všechny ostatní operace si při ručním spuštění nechávají všechny
kontroly a ta, která spadne nebo neodpoví, se nespustí. `restart.after-uptime`,
`.above-memory-percent`, `.below-tps` a `.wait-for-empty` platí hned po změně.

## Záloha

Kopíruje svět za běhu serveru a drží řídnoucí historii: `keep-everything-for`
(výchozí den), pak `keep-one-a-day-for` (týden), pak `keep-one-a-week-for`
(devadesát dní). `keep-free-megabytes` je podlaha — nejstarší odejdou dřív, než
se zaplní disk.

Soubor, který se od minule nezměnil, se **připojí odkazem** k té staré kopii
místo aby se opsal znovu, takže týden pětigigového světa nestojí pětatřicet.
Když to souborový systém neumí, Keystone to řekne a kopíruje.

`directory` je výchozí `backups`, vedle světa. **Záloha na tom samém disku není
záloha**; odvez si ji jinam ve svém vlastním rytmu.

## Oznámení

`notices` je to, co se střídá, a `when` je, jak často jedno vyjde. Na pravidlo,
pozvánku na Discord, připomínku hlasování.

## Úklid

Ten, kterého se lidi bojí nejvíc, takže je nejopatrnější.

Běží, jen když je co dělat: `over-entities` (výchozí 1200) je počet, od kterého
to má smysl, a `below-tps` z toho udělá podmínku, že se server doopravdy trápí.
Když ani jedno neplatí, řekne to a přeskočí — obrazovka Operations ty řádky
ukazuje, proto je „skipped: only 15 entities loaded" normální věc k vidění.

Co bere: `items`, `experience`, `arrows` — všechno zapnuté. Co nechává:
`hostile-mobs`, `passive-mobs`, `named`, `tamed` — všechno vypnuté, takže
nikomu neodejde kůň ani pojmenovaný vesničan.

`keep-entities` a `keep-items` jsou vyjmenované výjimky a výchozí jsou ty, co by
bolely: vesničané, rámečky, stojany na brnění, lodě, a netherit s elytrou na
zemi. `merge-radius` spadané věci slučuje místo mazání, `older-than` ušetří to,
co spadlo před chvilkou, a `warn-at` lidem napřed odpočítá.

## Obrazovky, které lidi vidí

`screens` drží, co se ukáže, když někoho vyhodíš, zabanuješ, zabanuješ do data,
nebo když přijde v době, kdy je server zavřený nebo plný — s doplněným
`{reason}`, `{by}`, `{until}` a `{left}`. `appeal` je adresa na banovací
obrazovce; podrobně u [moderace](/docs/keystone/moderation) a u
[účtů](/docs/keystone/accounts), které sem přidávají svoje dvě.

**Rezervovaná místa.** `join.reserved-places` drží tolik míst serveru pro každého
s oprávněním `keystone.join.reserved` (dáš ho skupině, třeba placeným hodnostem).
Obyčejný hráč je odmítnut, jakmile zbývají jen tahle místa, a vidí
`screens.full-reserved`. Nikdo se kvůli uvolnění místa nepustí přes ban: odmítnutí
přijde dřív, než by přišlo přijetí.

## Upozornění

`alerts.tps-below` a `alerts.memory-above-percent`, držené po `must-last`, než
se to někomu řekne, pak ticho po `quiet-for`. Kam to jde, je
`discord.alerts.channel`.

## Co si to pamatuje

`metrics.keep-for` (výchozí týden) je, jak dlouho se drží čísla za tím vším — to,
z čeho kreslí obrazovka Operations a proti čemu se poměřuje zátěžový test.
