Skip to Content

Postopek varnostnih kopij za prenosnik

scripts/laptop-backup/ vsebuje postopek za najnovejše kopije na prenosniku:

  • deploy_laptop_backup.sh preveri in namesti storitev ročne sinhronizacije.
  • pmis-sync-latest-backups združi najnovejše oddaljene arhive v eno ravno lokalno mapo.
  • pmis-sync-latest-backups-follow zažene ali spremlja storitev systemd, sledi napredku in vrne končni izid.
  • pmis-backup-latest vzdržuje strežniške povezave do najnovejših kopij kot vir sinhronizacije.
  • restore_latest_backup.sh razreši sinhronizirani arhiv in preda delo splošni obnovi.

Postopek za upravljavca

Vseh pet ukazov sprejme -h in --help brez dostopa do konfiguracije, povezovanja z oddaljenimi gostitelji ali spreminjanja stanja. Ukaz za sinhronizacijo ne sprejema drugih argumentov; nastavlja se s skupnimi vhodi in okoljskimi nadomestitvami. Možnosti in lokalne poti pokriva dopolnjevanje Bash.

Uporaba spremljevalnega ukaza

Priporočeni interaktivni ukaz zaženite iz repozitorija _pmiconfig:

scripts/laptop-backup/pmis-sync-latest-backups-follow

Ukaz preveri odvisnosti, zabeleži trenutni položaj dnevnika in zahteva asinhroni zagon systemd. sudo lahko zahteva odobritev. Sinhronizacija ostane pod nadzorom systemd; spremljevalnik le sledi dnevniku in spremlja strojno berljivo stanje storitve. Konča se ob zaključku te izvedbe storitve in vrne njen izid.

Če se sinhronizacija že zaganja ali teče, ne zahteva novega zagona. Prikaže kratek nedavni kontekst in se priključi obstoječi izvedbi. Minimalni vmesnik prikaže --help:

scripts/laptop-backup/pmis-sync-latest-backups-follow --help

Ctrl+C ustavi spremljanje brez ustavitve sinhronizacije. Ukaz počisti svoj spremljevalnik dnevnika, potrdi nadaljevanje pod systemd in izpiše ukaze za ponovno priključitev ter pregled stanja. TERM in HUP prav tako ohranita storitev.

Trenutni račun mora smeti brati sistemski dnevnik. Sicer spremljevalnik opozori in še naprej preverja izid systemd, ne da bi tiho ponovil journalctl prek sudo.

Koda Pomen
0 Sinhronizacija in spremljanje dnevnika sta uspela.
Izhodna koda storitve Sinhronizacija je odpovedala z razpoložljivo neničelno kodo procesa.
2 Nepodprt argument ali napačna uporaba pomoči.
70 Napaka zahteve systemd, poizvedbe stanja ali storitve zunaj procesne izhodne kode.
71 Sinhronizacija je uspela, branje ali spremljanje dnevnika pa ne.
72 Sprejeti zagon ni pravočasno ustvaril prepoznavne izvedbe.
130, 143, 129 Odklop po INT, TERM ali HUP; storitev se nadaljuje.

Neposredni diagnostični ukazi

Za diagnostiko ali ročno ponovno priključitev:

# Start without waiting for synchronization to finish.
sudo systemctl start --no-block pmis-sync-latest-backups.service

# Follow host transfers and publication progress live.
journalctl -fu pmis-sync-latest-backups.service

# Inspect the final service status and recent journal entries.
systemctl status pmis-sync-latest-backups.service
journalctl -u pmis-sync-latest-backups.service -n 100 --no-pager

Enak neinteraktivni napredek je viden tudi pri neposrednem zagonu pmis-sync-latest-backups v terminalu.

Namestilni ukaz izriše templates/systemd/rsync/pmis-sync-latest-backups.service.in; z --dry-run --no-ssh-check jo lahko preveri brez namestitve. Sinhronizacija in namestilnik vključita /srv/pmiverse/_pmiregistry/config/pmiverse.conf ali zaupanja vredno datoteko, izbrano z PMIVERSE_CONF. PMIS_BACKUP_REMOTE_HOSTS, PMIS_BACKUP_REMOTE_PATH in PMIS_BACKUP_LOCAL_PATH so kanonični trajni inventar. Procesne REMOTE_HOSTS, REMOTE_PATH in LOCAL_PATH ga nadomestijo; izrecne možnosti namestilnika imajo za ta zagon najvišjo prednost. Prazni, podvojeni in neveljavni gostitelji so zavrnjeni.

Vsak oddaljeni gostitelj ohrani data/backups/. Ločene mape gostiteljev veljajo le za cilje rsync celotne zgodovine na lokalnem strežniku obnove. Samostojni pmis-backup-latest razreši privzeti koren prek registra instanc; --backup-root in BACKUP_ROOT ga še vedno nadomestita.

Namestilnik isti seznam sprejme prek --remote-hosts, preveri vse razrešene gostitelje, izriše eno skupno pmis-sync-latest-backups.service in preveri nenadzorovani SSH do vsakega gostitelja, razen ob izrecnem --no-ssh-check. Enota ne vsebuje inventarja gostiteljev ali poti kopij: ukaz bere skupno konfiguracijo med izvajanjem, zato trajne spremembe inventarja ne zahtevajo ponovnega ustvarjanja enote ali systemctl daemon-reload.

Vsak gostitelj se sinhronizira v novo zasebno pripravljalno mapo. Vsak vnos mora biti navadna datoteka *_latest.zip brez simbolnih povezav; podvojena osnovna imena med gostitelji so zavrnjena. Objavljena mapa ostane nedotaknjena, dokler ne uspejo vsi gostitelji in preverjanje združenega nabora. Zamenjave se kopirajo v začasne datoteke na ciljnem datotečnem sistemu in atomarno preimenujejo; zastarele upravljane *_latest.zip se odstranijo šele po uspehu vseh zamenjav. Ključavnica in pripravljalno stanje ostaneta zunaj ravnega objavljenega nabora; pasti počistijo pripravo ob izhodu in signalih.

Dnevnik časovno označi faze priprave gostiteljev, preverjanja, objave datotek, odstranjevanja zastarelih in zaključka. Prenosi ohranijo izvirni skupni obseg bajtov, odstotek, hitrost in oceno preostalega časa rsync, kadar jih ta lahko izračuna. Napredek je po gostiteljih; števci gostiteljev in objave kažejo položaj celotnega postopka brez izmišljenega skupnega odstotka. Oblika ustreza terminalom in journald.

Obnova izbere natanko <database>_latest.zip, zavrne simbolne povezave vira in preda bazo, filestore, zaklepanje, povratek ter nevtralizacijo scripts/restore/restore_database.sh.

Privzeti inventar določa /srv/pmiverse/_pmiregistry/config/pmiverse.conf:

  • Oddaljeni gostitelji: PMIS_BACKUP_REMOTE_HOSTS iz registra.
  • Oddaljene povezave: /srv/pmiverse/_pmisuite18/data/backups/latest/.
  • Kopije na prenosniku: /srv/pmiverse/_pmisuite18/data/backups-latest/.
  • Ključavnice obnove: /srv/pmiverse/.pmis-restore-locks.

Navodila proizvajalca opisujejo izbor instance in lokalno zrcalo celotne zgodovine. Oddaljene poti ostanejo nespremenjene.

Namestitev, sinhronizacija, kopiranje, obnova in nevtralizacija so operativna dejanja; ne izvajajte jih samo za preverjanje postavitve.