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 rsnapshotModifica il file di configurazione:
nano /etc/rsnapshot.confImposta 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 4Le 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/rsnapshotIl 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 configtestPER 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/rsnaptarModifica lo script e imposta i percorsi delle directory:
nano /usr/local/bin/rsnaptarImposta 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/rsnaptarAggiungi:
#!/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.shQuesto script è progettato solo per eseguire il backup di tutti i database in un singolo file.
Modifica lo script:
nano /usr/local/bin/backup_mysql.shSostituisci
/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sqlcon
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sqlSe 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.SQLAggiungi Script A Rsnapshot
Modifica la configurazione di rsnapshot:
nano /etc/rsnapshot.confSotto PUNTI DI BACKUP / SCRIPT aggiungi quanto segue:
backup_script /usr/local/bin/backup_mysql.sh localhost/mysqldump/Testa la configurazione:
rsnapshot configtestRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.