skrypt Bash do eksportu bazy MySQL z pominięciem wybranych tabel

1. Utwórz plik, np. export_mysql.sh:

nano export_mysql.sh

2. Wklej do niego ten kod:

#!/bin/bash
DB="sklep"
USER="root"
PASS="twoje_haslo"

IGNORE_TABLES=("logi" "sesje" "tymczasowe")

IGNORE_STRING=""
for TBL in "${IGNORE_TABLES[@]}"; do
  IGNORE_STRING+=" --ignore-table=${DB}.${TBL}"
done

mysqldump -u "$USER" -p"$PASS" "$DB" $IGNORE_STRING > "${DB}_export.sql"

echo "Eksport zakończony: ${DB}_export.sql"

Oczywiście podaj w skrypcie nazwę Twojej bazy, hasło, tabele do pominięcia (zamiast „logi”, „sesje”, itd)

3. Nadaj mu prawa do uruchamiania:

chmod +x export_mysql.sh

4. Uruchom:

./export_mysql.sh

NATOMIAST jeśli chcesz wyeksportować te pominięte tabele ale tylko ich strukturę użyj kontrukcji:

mysqldump -u root -p --no-data sklep logi sesje tymczasowe > struktura_tabel.sql

Oznacza to, że masz bazę sklep i chcesz wyeksportować tylko strukturę tabel:
logi sesje tymczasowe.

Jak widać nazwę bazy należy zdeklarować zaraz po fladze --no-data

Możesz również polubić…

Inna porada:
Wyświetlanie rozmiaru bazy danych MySQL w konsoli Linux