Backup MySQL · 4 min read · Dec 10, 2025

Imposta Rsnapshot, Archiviazione Di Snapshot E Backup Di Database MySQL Su Debian

Imposta Rsnapshot, Archiviazione Di Snapshot E Backup Di Database MySQL Su Debian

Di Nedim Hadzimahmutovic < [email protected] >

Questo howto ti mostrerà come installare e configurare Rsnapshot, abilitare l’archiviazione degli snapshot e come eseguire il backup dei database MySQL su Debian.

Installa il programma utilizzando l’utilità apt-get:

apt-get install rsnapshot

Modifica il file di configurazione:

nano /etc/rsnapshot.conf

Imposta snapshot_root al percorso dove vuoi mantenere i backup:

snapshot_root   /var/cache/rsnapshot/

Imposta l’elenco delle directory/file da eseguire il backup.

backup  /etc/           localhost/

Intervalli di Backup

Questa sezione del file di configurazione viene utilizzata solo per definire etichette per gli intervalli e quanti snapshot di ciascun livello mantenere. La frequenza con cui vengono creati gli snapshot è configurata ed eseguita tramite cron. La parola chiave intervallo è seguita da un’etichetta alfanumerica, seguita da un numero, che indica quanti intervalli (snapshot) mantenere. Le etichette degli intervalli devono essere uniche e in ordine crescente, l’intervallo più piccolo deve essere elencato per primo.

Nell’esempio seguente, dopo 6 snapshot “orari” il più vecchio “orario” viene eliminato. La voce superiore (in questo caso “orario”) è copiata dalla sorgente, mentre le voci rimanenti collegano semplicemente all’ultimo snapshot da un livello superiore.

In altre parole, per mantenere sei backup al giorno (intervallo di quattro ore), sette backup giornalieri (una settimana) e quattro backup settimanali (un mese), specifica:

interval        hourly  6
interval        daily   7
interval        weekly  4

Le etichette degli intervalli “orario”, “giornaliero”, “settimanale” possono essere cambiate per soddisfare le tue esigenze, ad esempio “giorni fa”, “settimane fa” e “mesi fa”.

Ogni volta che rsnapshot hourly viene eseguito, a mano o tramite cron, creerà un nuovo snapshot, ruoterà quelli vecchi e manterrà i 6 più recenti (hourly.0 - hourly.5).

Punti di Backup

Esempio di un punto di backup all’interno del file di configurazione:

backup      /etc/      localhost/ 

I punti di backup iniziano con la parola backup, dopo /etc/ c’è il percorso completo della directory che verrà eseguita il backup e localhost è una directory all’interno di snapshot_root. Puoi cambiare localhost in qualsiasi cosa associata al server come il nome di dominio completamente qualificato del server.

In aggiunta ai percorsi completi sul filesystem locale, puoi anche eseguire il backup di sistemi remoti utilizzando rsync su ssh. Se hai ssh installato e abilitato (tramite il parametro cmd_ssh), puoi specificare un percorso come:

backup      [email protected]:/etc/     example.com/

Tieni presente che devi avere abilitati i login basati su chiave per l’utente root su example.com, senza frasi di passaggio affinché questo funzioni correttamente./

Script di Backup

Puoi trovare molti esempi nella directory utils che su Debian si trova in /usr/share/doc/rsnapshot/examples/utils/.

Gli script di backup vengono eseguiti con ciascun intervallo più basso.

Esecuzione dei Backup Tramite Cron

Il file cron si trova in

/etc/cron.d/rsnapshot

Il contenuto predefinito:

# 0 */4     * * *       root    /usr/bin/rsnapshot hourly
# 30 3      * * *       root    /usr/bin/rsnapshot daily
# 0  3      * * 1       root    /usr/bin/rsnapshot weekly
# 30 2      1 * *       root    /usr/bin/rsnapshot monthly

Devi decommentare le righe per attivare i backup.

La prima dice a cron di eseguire cron-apt ogni 4 ore, il che corrisponde alle impostazioni dell’intervallo orario in rsnapshot.conf.

Testa la configurazione:

Ogni volta che apporti una modifica al file di configurazione, esegui un configtest:

rsnapshot configtest

PER FAVORE FAI ATTENZIONE ALLE SEGUENTI REGOLE:

  • Il file di configurazione richiede tabulazioni tra gli elementi, gli spazi rappresentano argomenti per gli script
  • Le directory richiedono una barra finale, esempio:

giusto: /home/

sbagliato: /home

Archiviazione degli snapshot

cp /usr/share/doc/rsnapshot/examples/utils/rsnaptar /usr/local/bin/

Assicurati che i tuoi script di backup siano di proprietà di root e non scrivibili da nessun altro.

chown root.root /usr/local/bin/rsnaptar  
chmod o-w /usr/local/bin/rsnaptar

Modifica lo script e imposta i percorsi delle directory:

nano /usr/local/bin/rsnaptar

Imposta TAR_DIR al percorso dove lo snapshot sarà archiviato, e SNAPSHOT_DIR a dove si trova lo snapshot giornaliero:

TAR_DIR="/home/user/dvd_backup"
SNAPSHOT_DIR="/var/cache/rsnapshot/daily.0"

Si prega di notare che il ciclo orario deve completarsi affinché lo snapshot giornaliero venga creato.

Questo script supporta la crittografia gpg dei file, per disabilitarla commenta la seguente riga in /usr/local/bin/rsnaptar:

GPG="/usr/bin/gpg"

Pianificazione dell’Esecuzione Tramite Cron

nano /etc/cron.daily/rsnaptar

Aggiungi:

#!/usr/bin/env bash
/usr/local/bin/rsnaptar [email protected]

Note:

    • questo howto non utilizza l’opzione GPG per crittografare i file, se questo è una necessità posso aggiornare l’howto per includere la crittografia dei file per una maggiore sicurezza,
    • per impostazione predefinita lo script viene eseguito autonomamente, ma potrebbe essere modificato per essere eseguito come uno script di backup tramite rsnapshot stesso,

Rsnapshot: Backup Di Database MySQL

Installa mysql-client se non è installato, questo fornirà l’utilità mysqldump:

# apt-get install mysql-client
# cp /usr/share/doc/rsnapshot/examples/utils/backup_mysql.sh /usr/local/bin/

Assicurati che i tuoi script di backup siano di proprietà di root e non scrivibili da nessun altro.

chown root.root /usr/local/bin/backup_mysql.sh  
chmod o-w /usr/local/bin/backup_mysql.sh

Questo script è progettato solo per eseguire il backup di tutti i database in un singolo file.

Modifica lo script:

nano /usr/local/bin/backup_mysql.sh

Sostituisci

/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sql

con

/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sql

Se hai bisogno di eseguire il dump di un singolo database usa la riga qui sotto:

/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf DATABASE > DATABASE.SQL

Aggiungi Script A Rsnapshot

Modifica la configurazione di rsnapshot:

nano /etc/rsnapshot.conf

Sotto PUNTI DI BACKUP / SCRIPT aggiungi quanto segue:

backup_script       /usr/local/bin/backup_mysql.sh  localhost/mysqldump/

Testa la configurazione:

rsnapshot configtest
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.