mysqldump z db w oddzielnym pliku
Piszę jedno wierszowe polecenie, które tworzy kopie zapasowe wszystkich baz danych w ich nazwach, zamiast używać dumpingu wszystkich w jednym sql.
Na przykład: db1 zostanie zapisany w db1.sql, a db2 zostanie zapisany w db2.sql
Do tej pory zebrałem następujące polecenia, aby pobrać wszystkie bazy danych.
mysql -uuname -ppwd -e 'show databases' | grep -v 'Database'
Zamierzam wypuścić go z awk, aby zrobić coś takiego
awk '{mysqldump -uuname -ppwd $1 > $1.sql}'
Ale to nie działa.
Jestem nowy w bashu, więc mogłem się mylić w myśleniu.
Co powinienem zrobić, aby wyeksportować db w swoich nazwach?
aktualizacja:
Ok, w końcu udało mi się go uruchomić z poniższych wskazówek.
To jest ostatni skrypt
# replace [] with your own config
# replace own dir to save
# echo doesn't work. hmm...
mysql -u[uname] -p'[pwd]' -e "show databases" \
| grep -Ev 'Database|information_schema' \
| while read dbname; \
do \
echo 'Dumping $dbname' \
mysqldump -u[uanme] -p'[pwd]' $dbname > ~/db_backup/$dbname.sql;\
done
Część echa nie działa.