User Tools

Site Tools


doc:appunti:linux:sa:restore_bare_metal

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:restore_bare_metal [2023/02/08 17:19] – [Partizionamento del disco] niccolodoc:appunti:linux:sa:restore_bare_metal [2023/02/08 17:54] (current) – [Copiare una directory da host remoto] niccolo
Line 38: Line 38:
 Se si utilizza **Borg backup** per effettuare le copie di sicurezza è necessario eseguire il restore dell'ultima versione disponibile. Se si utilizza **Borg backup** per effettuare le copie di sicurezza è necessario eseguire il restore dell'ultima versione disponibile.
  
 +FIXME
 +
 +
 +===== Copiare una directory da host remoto =====
 +
 +Se i file originali sono contenuti semplicemente in una directory di un host remoto è possibile copiarli, ma si devono avere alcune accortezze. Ad esempio **scp** non va bene perché segue i link simbolici (cioè copia i file e non ricrea i link).
 +
 +Se si desidera copiare una directory da un host remoto **mantenendo i symlink** si può ricorrere ad un trucco che utilizza **tar**. In questo esempio si esegue ssh dalla macchina vuota verso l'host che contiene i dati, quindi è possibile trasferire con tar una intera cartella:
 +
 +<code bash>
 +cd /
 +ssh root@backup.server.org 'cd /home/backups/restore/; tar cf - bin' | tar xvf - --numeric-owner
 +</code>
 +
 +Vedere come si può usare **rsync** FIXME
 +
 +===== MySQL =====
 +
 +Si deve creare la data directory, assegnare i permessi opportuni e inizializzarla (testato con MariaDB 10.5 su Debian 11 Bullseye):
 +
 +<code>
 +mkdir /var/lib/mysql
 +chown mysql.mysql /var/lib/mysql/
 +chmod 700 /var/lib/mysql/
 +mysql_install_db
 +systemctl start mysql
 +</code>
 +
 +Quindi è possibile fare il restore del file creato con **%%mysqldump --all-databases%%**:
 +
 +<code>
 +zcat /home/backups/mysql/20230205.dump.gz | mysql
 +</code>
 +
 +===== PostgreSQL =====
 +
 +Se la data directory è completamente vuota bisogna crearla con i permessi giusti:
 +
 +<code>
 +mkdir -p /var/lib/postgresql/13/main
 +mkdir -p /var/log/postgresql/
 +chown -R postgres.postgres /var/lib/postgresql/
 +chown -R postgres.postgres /var/log/postgresql/
 +chown -R postgres.postgres /etc/postgresql/
 +</code>
 +
 +Quindi va inizializzata:
 +
 +<code>
 +su - postgres
 +/usr/lib/postgresql/13/bin/initdb -D /var/lib/postgresql/13/main
 +</code>
 +
 +A questo punto è possibile avviare il servizio:
 +
 +<code>
 +systemctl start postgresql@13-main
 +</code>
 +
 +E fare il restore del file creato con **pg_dumpall**:
 +
 +<code>
 +su - postgres
 +psql --file=pg_dumpall_20230206.dump
 +</code>
  
doc/appunti/linux/sa/restore_bare_metal.1675876757.txt.gz · Last modified: 2023/02/08 17:19 by niccolo