mysqldump с db в отдельном файле

Я пишу однострочную команду, которая копирует все базы данных в их соответствующие имена вместо того, чтобы сбрасывать все в один sql. .

Например: db1 сохраняется в db1.sql, а db2 сохраняется в db2.sql

Пока что я собрал следующие команды для получения всех баз данных.

mysql -uuname -ppwd -e 'show databases' | grep -v 'Database'

Я планирую передать это с помощью awk, чтобы сделать что-то вроде

awk '{mysqldump -uuname -ppwd $1 > $1.sql}'

Но это не работает.

Я новичок в bash, поэтому могу ошибаться.
Что мне сделать, чтобы он экспортировал БД под своими именами?

обновление:
Хорошо, наконец-то удалось заставить его работать с помощью подсказок ниже.
Это окончательный вариант сценария.

# 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

Однако эхо-часть не работает.

26
задан resting 3 June 2012 в 06:09
поделиться