Почему не исключаются таблицы из дампа MySQL?

Приветствую вас, товарищи и прошу помощи с такой вот проблемой.
Пишу я небольшой скрипт на bash для бекапа БД MySQL с помощью mysqldump и хочу при передаче ему определенного ключа исключать часть таблиц БД из дампа. Иду следующими шагами:
1. Фомирую список таблиц, пишу их в массив;
2. Из массива формирую строку ' "--ignore-table="db.table_1" --ignore-table="db.table_2" ... --ignore-table="db.table_n"'
3. Создаю дамп структуры БД с ключом --no-data;
4. В зависимости от того, передан ли ключ, запускаю mysqldump либо на полный бекап, либо добавив туда ключ из шага 2:
- mysqldump -u user -pPASSWORD --database db --single-transaction
или
- mysqldump -u user -pPASSWORD --database db --single-transaction --ignore-table="db.table_1" --ignore-table="db.table_2" ... --ignore-table="db.table_n"

Если эти шаги пройти руками - всё работает как нужно: с исключением таблиц работа проходит быстро, размер дампа около 250 Мб (бекапятся только конфигурационные базы). Однако, из скрипта дамп всегда получается полным, хотя я проверял - все переменные формируются верно и содержат нужные для исключения таблицы. Ниже скрин с кодом, а вот ссылка на код на гитхабе (строки 258-305).
5a1d6fdea561b685090464.png
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
asand3r
@asand3r Автор вопроса
Решил, думаю, что проблема в разворачивании переменной. Перевел на ${VAR} - заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы