Skip to main content

Wykonanie backupu wszystkich baz, każda do osobnego pliku

Na potrzeby backupu baz danych będziemy potrzebować następującego skryptu:

Wersja dla systemów linux

Tworzymy plik:

vim NazwaSkryptu.sh
#!/bin/bash 
 
USER="NazwaUseraBackupu" 
PASSWORD="HasłoBackup" 
#OUTPUT="Ścieżka zapisu plików" 

#Ewentulne usuwanie starych backupów
#rm "$OUTPUTDIR/*gz" > /dev/null 2>&1 

databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database` 

for db in $databases; do 
    if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then 
        echo "Dumping database: $db" 
        mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql 

       # Ewentualne packowanie plików SQL
       # gzip $OUTPUT/`date +%Y%m%d`.$db.sql 
    fi 
done 

Należy pamiętać by nadać uprawnienia do uruchamiania (atrybut x) dla pliku:

chmod +x NazwaSkryptu.sh

Wykonujemy poprzez

./NazwaSkryptu.sh

Można też oczywiście dodać to do crontab