Backup e sincronizzazione
Restic, Borg, rsync, rclone e i dump consistenti dei database. Ogni comando è verificato e copiabile; in chat basta descrivere cosa vuoi fare.
14 comandi in questa pagina
- Come inizializzo un repository restic?
- Come lancio un backup con restic?
- Come ripristino file da uno snapshot restic?
- Come applico la retention e libero spazio in restic?
- Come creo un archivio Borg?
- Come applico la retention agli archivi Borg?
- Come faccio il mirror di una directory con rsync?
- Come trasferisco file su un server remoto con rsync?
- Come provo un rsync senza toccare nulla (dry run)?
- Come sincronizzo una directory sul cloud con rclone?
- Come monto uno storage cloud come disco (rclone mount)?
- Come faccio dump e restore di MySQL/MariaDB?
- Come faccio dump e restore di PostgreSQL?
- Come faccio il backup di un database SQLite a caldo?
# Come inizializzo un repository restic?
export RESTIC_REPOSITORY=sftp:backup@nas:/srv/restic
export RESTIC_PASSWORD_FILE=~/.restic-pass
restic init
La password del repo cifra TUTTO: persa quella, i backup sono coriandoli. Va salvata fuori dal server (password manager).
Approfondisci: Come si fanno backup cifrati e deduplicati (Restic, BorgBackup)?Come si fa un backup con la regola 3-2-1?
# Come lancio un backup con restic?
restic backup /etc /home /srv --exclude-caches --tag giornaliero
Incrementale e deduplicato per natura: il secondo backup trasferisce solo i blocchi nuovi.
Approfondisci: Come si fanno backup cifrati e deduplicati (Restic, BorgBackup)?Come si fa un backup con la regola 3-2-1?
# Come ripristino file da uno snapshot restic?
restic snapshots
restic restore a1b2c3d4 --target /tmp/ripristino --include /home/mario/documenti
--include per il singolo path invece dell'intero snapshot; restic mount /mnt/r per sfogliarli come filesystem.
Approfondisci: Come si fanno backup cifrati e deduplicati (Restic, BorgBackup)?
# Come applico la retention e libero spazio in restic?
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
restic check # ogni tanto: verifica l'integrita' del repo
forget senza --prune marca soltanto: lo spazio si libera solo col prune. Il check periodico è il verify dei backup.
Approfondisci: Come si fanno backup cifrati e deduplicati (Restic, BorgBackup)?Come si fa un backup con la regola 3-2-1?
# Come creo un archivio Borg?
borg init --encryption=repokey backup@nas:/srv/borg
borg create --stats backup@nas:/srv/borg::{hostname}-{now} /etc /home
Il placeholder {now} data gli archivi da solo; --stats dice quanto ha davvero trasferito (deduplica inclusa).
Approfondisci: Come si fanno backup cifrati e deduplicati (Restic, BorgBackup)?Come si implementa la crittografia lato client nei backup automatizzati con Borgmatic?
# Come applico la retention agli archivi Borg?
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 12 backup@nas:/srv/borg
borg compact backup@nas:/srv/borg
Da Borg 1.2 lo spazio si libera solo con compact dopo il prune: dimenticarlo è il classico "ho prunato ma il disco è pieno".
Approfondisci: Come si implementa la crittografia lato client nei backup automatizzati con Borgmatic?
# Come faccio il mirror di una directory con rsync?
rsync -a --delete /srv/dati/ /mnt/backup/dati/
Le barre finali contano (dati/ = il contenuto); --delete rende il mirror fedele ma propaga anche le cancellazioni: non è un backup con storico.
Approfondisci: Come si fa un backup con la regola 3-2-1?Come si sincronizzano cartelle in modo cifrato e P2P (Syncthing)?
# Come trasferisco file su un server remoto con rsync?
rsync -az --progress /srv/dati/ backup@nas:/srv/copie/dati/
Riprende da dove si era interrotto e trasferisce solo i delta: per i file grossi non c'è paragone con scp.
Approfondisci: Come si fa un backup con la regola 3-2-1?
# Come provo un rsync senza toccare nulla (dry run)?
rsync -avn --delete /srv/dati/ /mnt/backup/dati/
La -n mostra cosa FAREBBE: obbligatoria prima di ogni --delete, che sbagliato di una barra svuota la destinazione.
Approfondisci: Come si fa un backup con la regola 3-2-1?
# Come sincronizzo una directory sul cloud con rclone?
rclone config # una volta: configura il remote
rclone sync /srv/dati remoto:bucket/dati --progress --dry-run # poi senza --dry-run
sync rende il remoto IDENTICO (cancellazioni incluse); se vuoi solo aggiungere, il verbo giusto è copy.
Approfondisci: Come si fa un backup con la regola 3-2-1?
# Come monto uno storage cloud come disco (rclone mount)?
rclone mount remoto:bucket /mnt/cloud --vfs-cache-mode writes --daemon
--vfs-cache-mode writes evita i problemi con le app che riscrivono i file; è comodità, non un backup.
Approfondisci: Come si fa un backup con la regola 3-2-1?
# Come faccio dump e restore di MySQL/MariaDB?
mysqldump --single-transaction --routines nomedb | gzip > db-$(date +%F).sql.gz
# restore:
zcat db-2026-09-01.sql.gz | mysql nomedb
--single-transaction = dump consistente senza lock (InnoDB): il backup del datadir a caldo, invece, è corrotto per design.
Approfondisci: Come si fanno backup consistenti di un database (PostgreSQL, MariaDB)?
# Come faccio dump e restore di PostgreSQL?
pg_dump -Fc nomedb > db-$(date +%F).dump
# restore:
pg_restore -d nomedb --clean db-2026-09-01.dump
# in Docker: docker exec -t postgres pg_dump -U utente -Fc nomedb > db.dump
Il formato -Fc (custom) è compresso e permette il restore selettivo per tabella.
Approfondisci: Come si fanno backup consistenti di un database (PostgreSQL, MariaDB)?
# Come faccio il backup di un database SQLite a caldo?
sqlite3 app.db "VACUUM INTO 'backup-$(date +%F).db'"
# o: sqlite3 app.db ".backup backup.db"
MAI copiare il file .db mentre l'app scrive (WAL a metà = corruzione): questi due comandi sono atomici e sicuri.
Approfondisci: Come si fanno backup consistenti di un database (PostgreSQL, MariaDB)?