Mentés és visszaállítás
Ez az útmutató az öt dolgot járja körül, amit az emberek valójában csinálni szoktak a biztonsági mentésekkel: készítenek egyet, összegyűjtik, mozgatnak egy munkaterületet, visszatesznek egyet, és a gépen kívül is tartanak másolatokat. Minden egyes artefaktum és művelet pontos formáját lásd a mentésreferenciában.
Minden itt leírt dolog a Beállítások → Szerver → Biztonsági mentés és visszaállítás alatt található.
Előfeltételek
Szekció neve “Előfeltételek”- Teljes kliens — az asztali vagy a webes alkalmazás. Egy párosított telefon szándékosan egyiket sem tudja elindítani.
- Telepítési pillanatkép készítéséhez, listázásához, letöltéséhez vagy törléséhez: a telepítés tulajdonosa.
- Munkaterületenkénti műveletekhez: a munkaterület adminja az exportáláshoz, tulajdonosa az importáláshoz vagy a törléshez.
- Letöltésekhez és feltöltésekhez: közvetlen kapcsolat a szerverrel. A közvetített relé RPC-kereteket visz, nem fájlátvitelt, és az átvitelvezérlők egy megjegyzéssel letiltják magukat, amikor ilyenen van.
Mit fed le egy biztonsági mentés
Szekció neve “Mit fed le egy biztonsági mentés”Mindkét artefaktum kizárólag adatbázis:
- A telepítési pillanatkép egy időbélyeges könyvtár:
manifest.json,global.dbés munkaterületenként egy<workspaceId>/workspace.db. - A munkaterület-export maga az az egyetlen
workspace.dbfájl.
Egyik sem viszi magával az adatkönyvtár többi részét: a secrets.json-t (párosítási
kulcsok, szolgáltatói hitelesítő adatok, SSO), egy munkaterület blobs/ mappáját (az
üzenetekbe beillesztett képek), a skills/, agents/, chat_credentials/ mappákat,
a rögzített megbeszélés-hanganyagot vagy az állomásképeket. Ezek egy része eldobható,
más része nem — a
teljes táblázat a referenciában van,
és ezek lefedéséről szól a gépen kívüli szakasz.
Pillanatkép készítése a teljes telepítésről
Szekció neve “Pillanatkép készítése a teljes telepítésről”- Nyissa meg a Beállítások → Szerver → Biztonsági mentés és visszaállítás oldalt.
- A Telepítési pillanatképek alatt nyomja meg a Biztonsági mentés most gombot.
- A felugró értesítés megnevezi a kiírt könyvtárat a szervergépen. Az új pillanatkép a lista tetején jelenik meg.
A szerver végig futva marad. Minden fájl VACUUM INTO utasítással íródik, ami egy
futó adatbázissal szemben is konzisztens, így nincs karbantartási ablak, és nem kell
leállítani az ügynököket.
A lista minden sora mutatja az időbélyeget, a lemezen elfoglalt méretet, a rögzített munkaterületek számát, valamint azt, hogy a pillanatkép állapota Teljes vagy Hiányos. A hiányos azt jelenti, hogy a manifest hiányzik, vagy olyan fájlokat nevez meg, amelyek nincsenek ott — egy összeomlás vagy egy megtelt lemez miatt megszakadt mentés. Ezek szándékosan szerepelnek a listán: egy pillanatkép, amit nem lát, olyan, amiről azt hiszi, hogy megvan. Egy hiányos pillanatkép nem tud visszaállítani egy teljes telepítést, de a benne lévő munkaterület-fájlok egyenként még átvehetők.
Egy sor azt is mondhatja, hogy n munkaterület nem került rögzítésre. Az egy regisztrált, de soha nem írt munkaterület (még nincs fájlja), vagy egy olyan, amelynek a másolása meghiúsult — nézze meg a szervernaplót.
Munkaterület-mentések és megőrzés ütemezése
Szekció neve “Munkaterület-mentések és megőrzés ütemezése”Nyissa meg a munkaterület Beállítások → Pipeline-ok → Pipeline-sablonok oldalát, és keresse meg a Workspace backup elemet. Az engedélyezett ütemezése minden vasárnap 03:00 UTC-kor fut: Back up workspace, majd Delete backups older than (alapértelmezésben 30 nap). A második csomópont csak a sikeres mentés után fut. A megőrzési napokat a csomóponton módosíthatja, vagy letilthatja az ütemezést. Ha a szerver az ütemezett időpontban offline, az ütemezés visszatérésekor egyszer behozza a lemaradást, ahelyett hogy újrajátszaná az összes kihagyott hetet.
A munkaterület-mentések a szerveren a
backups/workspace-backups/<workspaceId>/<timestamp>/workspace.db útvonalon élnek. A
megőrzési csomópont csak ennek a munkaterületnek a régi mentéseit törli; soha nem törli
a telepítési pillanatképeket vagy más munkaterületek mentéseit. Ezek a fájlok csak
adatbázist tartalmaznak. A gépen kívüli megőrzéshez másolja őket önállóan.
Ezek a mentések különválnak a Telepítési pillanatképek listától. Az egyik
visszaállításához használja a Munkaterület adatai → Importálás lehetőséget a mentés
szerveroldali workspace.db útvonalával. Az importálás lecseréli a munkaterület
jelenlegi adatbázisát, ezért előbb exportálja, ha szükség lehet a visszaállítás
visszavonására.
Telepítési pillanatkép törlése
Szekció neve “Telepítési pillanatkép törlése”A Telepítési pillanatképek alatt nyissa le a pillanatképet, a hiányosat is, és használja a Pillanatkép törlése lehetőséget a veszélyzóna szakaszban. Erősítse meg a nevét. A teljes pillanatkép-könyvtár véglegesen eltávolítódik a szerverről; előbb töltse le, ha szüksége van másolatra. A munkaterület-mentési pipeline soha nem törli ezeket a pillanatképeket.
Másolat beszerzése a saját gépére
Szekció neve “Másolat beszerzése a saját gépére”Az oldalon látható útvonalak a cc_server-t futtató gépen vannak. Ha ez nem az a gép,
amely előtt ül, használja a Letöltés gombokat:
- A Munkaterület adatai alatt minden munkaterület mellett Letöltés, egy
.dbfájlhoz. - A Telepítési pillanatképek alatt minden pillanatkép mellett Letöltés, a teljes pillanatképhez
.zipformában.
Asztali gépen Ön választja ki, hova kerül a fájl, és a felugró értesítés megnevezi; weben a böngésző letöltései közé kerül. Mindkét esetben bájtban jelentik a folyamatot, mert ez a két olyan adatcsomag, amely elérheti a gigabájtokat.
Mindkettő friss másolatot készít abban a pillanatban, amikor megnyomja a gombot, streameli, majd utána törli a szerveren lévő másolatot — a letöltés nem arról szól, hogy „hozzuk le a fájlt, amit az exportálás gomb korábban készített”.
Egy pillanatkép-archívum kicsomagolása pontosan a pillanatkép elrendezését állítja elő, és éppen ez teszi a visszaállítását egy egyszerű visszamásolássá.
Munkaterület áthelyezése másik telepítésre
Szekció neve “Munkaterület áthelyezése másik telepítésre”Egy munkaterület egy adatbázisfájl, így az átadása fájlművelet.
- A forrás szerveren a Beállítások → Szerver → Biztonsági mentés és visszaállítás → Munkaterület adatai alatt nyissa le a munkaterületet, és nyomja meg a Letöltés gombot.
- A cél szerveren hozza létre (vagy válassza ki) azt a munkaterületet, amely fogadni fogja.
- Nyissa le azt a munkaterületet, és a Visszaállítás erről az eszközről alatt nyomja meg a Fájl választása és feltöltése gombot. Válassza ki a letöltött
.dbfájlt.
Ha mindkét szerver az a gép, amely előtt ül, a Mentés a szerverre, valamint az Importálás → Fájl kiválasztása ugyanezt teszi meg a körút nélkül; az importálási párbeszédablak útvonalai a szervergépen oldódnak fel.
Két dolgot inkább engedélyezünk és naplózunk, mintsem megtagadnánk: egy olyan fájl importálását, amelynek rögzített munkaterület-azonosítója eltér a célétól (így lehet duplikálni egy munkaterületet, vagy új azonosító alatt visszaállítani), és egy másik telepítésből származó fájl importálását. Ez utóbbi esetben a fájl párosított eszközei és felhasználói azonosítói ahhoz a telepítéshez tartoznak, ahonnan származik, és ezen nem fognak feloldódni — a munkaterület saját adatai sértetlenek, de az átvétel után ellenőrizze újra a tagságot.
A csevegőbot-tokenek az adatbázis mellett élnek, nem benne, így egy másnak átadott munkaterület nem visz magával élő hitelesítő adatokat. A fogadó telepítés újracsatlakoztatja a sajátjait.
Egy munkaterület visszaállítása pillanatképből
Szekció neve “Egy munkaterület visszaállítása pillanatképből”- A Telepítési pillanatképek alatt nyissa le a kívánt pillanatképet.
- Keresse meg a munkaterület sorát, és nyomja meg a Visszaállítás gombot.
- Erősítse meg. Minden elveszik, amit az a munkaterület a pillanatkép elkészítése óta tett.
Ez ugyanaz a művelet, mint az importálás, csak a pillanatképben lévő másolatára irányítva annak a munkaterületnek a fájljának — szándékosan, hogy ne legyen egy második mechanizmus, amely ugyanazt a fájlt másképp kezelné.
Egy sor azt mondhatja, hogy Már nincs ezen a szerveren, és a Visszaállítás
letiltva van: a pillanatkép olyan munkaterületet tartalmaz, amellyel ez a telepítés már
nem rendelkezik. Hozza vissza kézzel — hozzon létre egy munkaterületet, majd a
Munkaterület adatai alatt importáljon bele a
<snapshot path>/<old workspace id>/workspace.db útvonalról. A lenyitott pillanatkép
egy másolható mezőben mutatja a saját Útvonal a szerveren értékét, a sor címe pedig a
régi munkaterület-azonosító, így az útvonal mindkét fele Ön előtt van.
Teljes telepítés visszaállítása
Szekció neve “Teljes telepítés visszaállítása”Erre nincs gomb, és nem is kell lennie: lecseréli azokat az adatbázisokat, amelyeket a futó szerver nyitva tart.
-
Állítsa le a
cc_server-t. Ha az asztali alkalmazást a beágyazott szerverével futtatja, lépjen ki az alkalmazásból. -
Másolja a pillanatkép tartalmát az adatkönyvtárra. A pillanatkép elrendezése tükrözi az élőét, így ez egy egyszerű másolás:
Terminál # macOS default; see the CLI reference for other platformsDATA_DIR="$HOME/Library/Application Support/control-center"SNAPSHOT="$DATA_DIR/backups/2026-07-28T09-12-33-000Z"cp "$SNAPSHOT/global.db" "$DATA_DIR/global.db"for d in "$SNAPSHOT"/*/; doid=$(basename "$d")mkdir -p "$DATA_DIR/$id"cp "$d/workspace.db" "$DATA_DIR/$id/workspace.db"done -
Törölje a kicserélt adatbázisok mellett lévő
-walés-shmfájlokat. A régi fájlokhoz tartoznak, és egy elavult ilyen fájl egy visszaállított adatbázis mellett adatkorrupciós kockázat. -
Indítsa újra a szervert.
A pillanatkép nem tartalmaz secrets.json-t, ezért egy friss gazdagépre
visszaállított telepítés megőrzi az adatait, de a hitelesítő adatait nem: a párosított
eszközöket, a szolgáltatói tokeneket és az SSO-beállításokat újra létre kell hozni, vagy
vissza kell állítani onnan, ahol azt a fájlt tartotta. Ha ugyanarra a gazdagépre állítja
vissza, ahol a secrets.json sosem veszett el, minden megmarad.
Biztonsági mentések másolása a gépen kívülre
Szekció neve “Biztonsági mentések másolása a gépen kívülre”Egy pillanatkép ugyanazon a lemezen, mint az adatbázis, amit másolt, a rossz importálás ellen véd, a lemez ellen nem. A Control Center semmit nem szállít el máshová, így ez a rész az Öné.
A pillanatképek szinkronizálása
Szekció neve “A pillanatképek szinkronizálása”A pillanatképek írás után megváltoztathatatlanok, és időbélyegről kapnak nevet, így
bármely szinkronizáló eszköz jól kezeli őket. Zárja ki a transfer/ mappát, amely a
folyamatban lévő letöltések és feltöltések munkapadja:
DATA_DIR="$HOME/Library/Application Support/control-center"
# To another host over sshrsync -a --delete --exclude 'transfer/' \ "$DATA_DIR/backups/" backup-host:/srv/control-center-backups/
# To object storageaws s3 sync --exclude 'transfer/*' \ "$DATA_DIR/backups/" s3://my-bucket/control-center/backups/
# Or with deduplication, encryption and its own retentionrestic backup --exclude 'transfer' "$DATA_DIR/backups"A --delete a helyi törléseket tükrözi a távolira. Hagyja el, ha azt szeretné, hogy a
távoli hosszabb ideig őrizze a pillanatképeket, mint a gazdagép.
Annak belefoglalása, amit egy pillanatkép kihagy
Szekció neve “Annak belefoglalása, amit egy pillanatkép kihagy”Ahhoz, hogy a telepítést újra fel tudja építeni, ne csak az adatait, ezeket is másolja. Ezek közönséges fájlok, a szerver futása közben is biztonságosan másolhatók:
rsync -a \ "$DATA_DIR/secrets.json" \ backup-host:/srv/control-center-backups/config/
rsync -a --relative \ "$DATA_DIR"/./*/chat_credentials \ "$DATA_DIR"/./*/blobs \ "$DATA_DIR"/./*/skills \ "$DATA_DIR"/./*/agents \ backup-host:/srv/control-center-backups/workspace-files/A secrets.json jogosultsága 0600, és a telepítés összes párosítási kulcsát,
szolgáltatói hitelesítő adatát és SSO-beállítását tartalmazza. Bárhová is kerül, legalább
olyan jól védettnek kell lennie, mint a szervergép — titkosítva tárolva, és nem olyan
bucketben, amelyet bárki más olvashat.
Hagyja ki a spaces/ (copy-on-write worktree-k, a repói alapján újra létrehozva), a
pr_clones/ (gyorsítótár), a models/ (újra letöltve), a media_cache/ és a rigs/
(gépállapot, és nagy) mappákat. A meetings/ alatti rögzített megbeszélés-hanganyagot
érdemes belefoglalni, ha vezet megbeszéléseket.
Teljes telepítési pillanatkép ütemezése az alkalmazáson kívül
Szekció neve “Teljes telepítési pillanatkép ütemezése az alkalmazáson kívül”A beépített pipeline csak egy munkaterületet ment. Egy felügyelet nélküli teljes
telepítési pillanatképhez nincs CLI-alparancs, a pillanatkép-RPC pedig egy párosított
teljes klienst igényel, amely a telepítés tulajdonosa. Egy gazdagépoldali időzítő a
VACUUM INTO utasítást használhatja az élő adatbázisokon:
#!/usr/bin/env bashset -euo pipefail
DATA_DIR="${CC_SERVER_DATA_DIR:-$HOME/.local/share/control-center}"DEST="/srv/control-center-snapshots/$(date -u +%Y-%m-%dT%H-%M-%SZ)"mkdir -p "$DEST"
sqlite3 "$DATA_DIR/global.db" "VACUUM INTO '$DEST/global.db'"
for db in "$DATA_DIR"/*/workspace.db; do id=$(basename "$(dirname "$db")") mkdir -p "$DEST/$id" sqlite3 "$db" "VACUUM INTO '$DEST/$id/workspace.db'"doneUgyanazzal a felhasználóval futtassa, aki az adatkönyvtár tulajdonosa, cronból vagy
systemd időzítőből, majd utána szinkronizálja a DEST-et a gazdagépről. A VACUUM INTO
SQLite 3.27-es vagy újabb verziót igényel.
A <dataDir>/backups/ könyvtáron kívülre írja. Egy kézzel készített könyvtárnak ott
nincs manifest.json-ja, így az alkalmazás hiányos pillanatképként listázná, és a lista
megszűnne annak őszinte nyilvántartása lenni, amit maga a szerver készített.
A régi teljes telepítési pillanatképek ritkítása
Szekció neve “A régi teljes telepítési pillanatképek ritkítása”Az alkalmazásban egyenként törölheti a telepítési pillanatképeket. Egy gazdagépoldali megőrzési szabályzathoz tartsa külön a munkaterület-mentési könyvtárat a telepítési pillanatképektől:
find "$DATA_DIR/backups" -mindepth 1 -maxdepth 1 -type d \ ! -name exports ! -name transfer ! -name workspace-backups \ -mtime +30 -exec rm -rf {} +A -exec hozzáadása előtt ellenőrizze egy -print futtatás kimenetét. Tartson meg
többet: a hiba, ami ellen védekezik, gyakran az, hogy „a legutóbbi mentésnek is megvan a
problémája”.
Annak ellenőrzése, hogy egy biztonsági mentés jó-e
Szekció neve “Annak ellenőrzése, hogy egy biztonsági mentés jó-e”Egy mentés, amit senki nem állított vissza, csak egy hipotézis.
Olcsó ellenőrzés — a fájl megnyílik, és az oldalai sértetlenek:
sqlite3 "$SNAPSHOT/global.db" 'PRAGMA integrity_check;' # expects: okValódi ellenőrzés — vegye át. Hozzon létre egy eldobható munkaterületet egy nem éles telepítésen, importáljon bele egy munkaterület-fájlt, és nézze meg, hogy ott vannak-e a várt terek, jegyek és üzenetek. Ez ugyanazt az utat járja be, mint egy valódi visszaállítás, beleértve az FTS újraépítését is, és ez az egyetlen ellenőrzés, amely megmondja, hogy a mentés visszaállítható, nem csupán olvasható.
Ezt egyszer tegye meg, amikor beállítja a mentéseket, és újra, amikor megváltoztatja, hogy hol tárolódnak.
Hibaelhárítás
Szekció neve “Hibaelhárítás”| Tünet | Ok és megoldás |
|---|---|
| A letöltési és feltöltési vezérlők le vannak tiltva, egy relére vonatkozó megjegyzéssel | A közvetített relén keresztül csatlakozik, amely nem visz fájlátvitelt. Csatlakozzon közvetlenül |
| „A szerver elutasította” | Szerep. Egy telepítési pillanatkép készítéséhez vagy listázásához a telepítés üzemeltetője kell. Egy munkaterület letöltéséhez admin, a visszaállításához tulajdonos, egy teljes pillanatkép-ziphez a telepítés üzemeltetője kell |
| „Ennek a szervernek nincs biztonsági mentési felülete” | A gazdagépen nincs bekötve mentési port — ez egy demószerver. A műveletek hiányoznak, nem pedig megtagadottak |
| „A fájl nagyobb, mint amit a szerver elfogad” | A feltöltéseket 8 GiB-re korlátozzuk. Tegye a fájlt a szervergépre, és használja helyette az Importálás → Fájl kiválasztása lehetőséget |
| Az importálás elutasítva: nem Control Center munkaterület-adatbázis | A fájlban nincs workspace_meta sor — ez nem munkaterület-export, vagy csonka. Semmi nem lett lecserélve |
| Egy pillanatkép Hiányos állapotban szerepel a listán | A manifestje hiányzik, vagy nem létező fájlokat nevez meg. Készítsen egy újat; addig egyenként vegye át belőle a munkaterület-fájlokat |
| Egy pillanatkép szerint munkaterületek nem kerültek rögzítésre | Azokat a munkaterületeket soha nem írták, vagy a másolásuk meghiúsult. Nézze meg a szervernaplót |
| Egy visszaállított telepítésből hiányoznak a forge- és SSO-hitelesítő adatok | A secrets.json nincs benne egy pillanatképben sem. Állítsa vissza onnan, ahol tartotta, vagy csatlakoztassa újra a szolgáltatókat |
| Egy visszaállított munkaterületből hiányoznak a beillesztett képek | A blobok az adatbázis mellett élnek, nem benne. Másolja át a <workspaceId>/blobs/ mappát is |
Kapcsolódó útmutatók
Szekció neve “Kapcsolódó útmutatók”- Headless szerver futtatása: honnan származik az adatkönyvtár
- Csatlakozás távoli szerverhez: közvetlen és relén keresztüli kapcsolatok
- Eszköz párosítása: az a hitelesítő adat, amellyel az átviteli útvonalak aláírnak
Kapcsolódó fogalmak és referencia
Szekció neve “Kapcsolódó fogalmak és referencia”- Mentés, exportálás és importálás: minden művelet, útvonal, mező és korlát
- Munkaterületek és elszigetelés: miért egyetlen fájl egy munkaterület
cc_serverCLI: az adatkönyvtár felépítése