GLPI (Gestionnaire Libre de Parc Informatique) obsahuje váš register majetku, tickety a konfiguračnú databázu — dáta, ktoré si nemôžete dovoliť stratiť. Funkčná záloha pokrýva tri veci: súbory aplikácie, vlastné úpravy pluginov a MariaDB databázu. Tento návod prejde každou časťou a na konci ukáže, ako celý proces automatizovať.
Krok 1: Záloha súborov GLPI a konfigurácie
Inštalačný adresár GLPI obsahuje kód, šablóny a — najdôležitejšie — priečinky config/ a files/, v ktorých je konfigurácia inštalácie a nahraté prílohy. Skopírujte celý strom na zálohovacie miesto:
cp -a /var/www/glpi /backup/glpi_$(date +%F)
Alebo zabaľte pre prenos:
tar -czf /backup/glpi_$(date +%F).tar.gz -C /var/www glpi
Použite cp -a (archive režim), nie cp -R — zachová vlastníctvo, časové značky a symlinky, čo je podstatné pre správne fungovanie oprávnení po obnove.
Krok 2: Záloha upravených pluginov
Pluginy sú v /var/www/glpi/plugins/ a v kroku 1 sú už zahrnuté. Ak ste upravovali kód pluginu priamo (neodporúčané, ale bežné), tieto zmeny sú pokryté. Ak máte zdrojové kódy alebo patche mimo GLPI adresára, zálohujte aj tie:
tar -czf /backup/glpi_plugins_$(date +%F).tar.gz /path/to/plugin-sources
Poznamenajte si verzie nainštalovaných pluginov. GLPI pluginy sú úzko previazané s verziou jadra — obnova na inú verziu GLPI si môže vyžadovať zodpovedajúcu verziu pluginu.
Krok 3: Záloha MariaDB databázy
GLPI ukladá tickety, majetok a väzby v MariaDB. Použite mysqldump s --single-transaction, aby ste získali konzistentný snapshot InnoDB tabuliek bez zámku aplikácie:
mysqldump -u glpi_user -p --single-transaction --quick --routines glpi_db | gzip > /backup/glpi_db_$(date +%F).sql.gz
K flagom:
-psamostatne si vyžiada heslo interaktívne. Nepoužívajte-p[heslo]v skriptoch — presakuje do histórie shellu a zoznamu procesov. Pre automatizáciu použite~/.my.cnfschmod 600.--single-transactionposkytne konzistentný snapshot InnoDB tabuliek bez globálneho zámku. GLPI používa InnoDB ako predvolený engine, takže toto funguje čisto.--quickstreamuje veľké tabuľky po riadkoch namiesto bufferovania — užitočné pri väčších inštaláciách.--routineszahrnie uložené procedúry. GLPI ich veľa nepoužíva, ale zahrnutie nič nestojí.
Krok 4: Automatizácia cez cron
Záloha, ktorú musíte spúšťať ručne, sa skôr či neskôr preskočí. Pridajte do /etc/cron.d/glpi-backup pre spúšťanie každú noc o 2:00:
0 2 * * * root /usr/local/bin/glpi-backup.sh
Minimálny glpi-backup.sh:
#!/bin/bash
set -euo pipefail
DATE=$(date +%F)
DEST=/backup
tar -czf "$DEST/glpi_files_$DATE.tar.gz" -C /var/www glpi
mysqldump --defaults-file=/root/.my.cnf --single-transaction --quick --routines glpi_db \
| gzip > "$DEST/glpi_db_$DATE.sql.gz"
find "$DEST" -name "glpi_*" -mtime +30 -delete
Posledný riadok zachová 30 dní záloh a vymaže staršie. Retenciu upravte podľa potreby.
Krok 5: Ukladajte zálohy mimo server
Záloha, ktorá leží na tom istom serveri ako databáza, vám nepomôže, keď server zlyhá. Kopírujte zálohy inam — S3, Backblaze B2, iné dátové centrum alebo on-prem NAS na inom hoste. rclone zvládne väčšinu cloudových úložísk jedným príkazom:
rclone copy /backup remote:glpi-backup --include "glpi_*"
Testujte obnovy
Netestovaná záloha je nádej, nie obnovná procedúra. Aspoň raz za štvrťrok obnovte do staging prostredia: rozbaľte súbory, importujte SQL dump do prázdnej databázy, namerte testovaciu GLPI inštanciu na ňu a overte, že sa viete prihlásiť a vidieť tickety. Odhalíte pokazené oprávnenia súborov, porušené dumpy a nekompatibilné verzie MariaDB ešte predtým, než budú mať význam.