Один из самых простых вариантов сделать бекап mysql базы, это воспользоваться утилитой mysqldump
Если в синтаксис добавить параметр «—tables», то можно описать какие именно таблицы нам надо бекапить.
mysqldump -umysqluser -pmysqlpassword --tables prefix_tableA prefix_tableB >`date +%u.basename.sql` |
Недостатком данного способа является не восприятие параметра «—tables» к регулярным выражениям, т.е. в качестве аргумента нельзя передать например «prefix_*» (сделать бекап таблицы по определенному префиксу)
Ниже решение, которое вполне восполняет данный пробел.
Как видно из синтаксиса, начальный SQL запрос дает нам достаточно широкие возможности по манипуляциям списком таблиц для резервного копирования.
mysql -umysqluser -pmysqlpassword -e 'show tables like "prefix_%"' | grep -v Tables_in | xargs mysqldump -umysqluser -pmysqlpassword --skip-triggers >`date +%u.basename.sql` |