Archived post from my old blog (2007–2016), restored from the Wayback Machine. It is published as written at the time, in Italian; tools and versions are likely out of date.
Teniamo i backup ordinati
Per fare i backup periodici di mysql sui miei server ho scritto un piccolo script che si occupa di crearli separatemente, un file per ogni database. È uno script abbastanza ovvio, ma mi apreva potesse venire comodo
Allo script ho anche aggiunto una parte che si occupa di fare pulizia dei file vecchi.
#!/bin/bash
BACKUP_TARGET_DIR=/path/per/il/backup/
SUFFISSO=`date +%Y%m%d%H%M`
mysql --defaults-extra-file=/path/alle/credenziali.cnf -s -e "show databases;" | while read fn;do mysqldump --defaults-extra-file=/path/alle/credenziali.cnf --database ${fn} | gzip > ${BACKUP_TARGET_DIR}${fn}_${SUFFISSO}.sql.gz; done;
find $BACKUP_TARGET_DIR -mtime +4 -delete
Così nella cartella di backup vi troverete i file divisi per ogni database, uno per giorno (se lanciate lo script giornalmente) risalendo fino a 4 giorni prima.
Non male 🙂
Inoltre ho avuto l’accortezza di usare –defaults-extra-file che specifica un file dove saranno trovate le credenziali. In questo modo il processo di backup non espone le credenziali quando elencato da un ps.
← Archive