каждая таблица закидывается в отдельный файлик архива
авось кому пригодится
авось кому пригодится
PHP:
#!/bin/bash
db_user="тут пользователь"
db_password="тут пароль"
backup_dir="/tmp"
DBs=( тут_перечисляем_имена_баз_через_пробел )
for db in "${DBs[@]}"
do
echo "Создание резервной копии ${db}"
tables=($(mysql -u"${db_user}" -p"${db_password}" -Bse 'show tables' "${db}"))
for i in "${tables[@]}"
do
echo " TABLE: ${db}.${i}"
(mysqldump -u"${db_user}" -p"${db_password}" --single-transaction "${db}" "${i}" | 7z u -si"${i}.sql" "${backup_dir}/${db}.7z")
done
views=($(mysql -u"${db_user}" -p"${db_password}" -Bse "select table_name from information_schema.tables where table_type='VIEW' AND table_schema='${db}' " "${db}"))
for i in "${views[@]}"
do
echo " VIEW: ${db}.${i}"
view=($(mysql -u"${db_user}" -p"${db_password}" -Bse "select VIEW_DEFINITION from information_schema.VIEWS where table_name='${i}' AND table_schema='${db}'"))
echo "CREATE VIEW ${db}.${i} AS ${view[@]}" | 7z u -si"${i}.sql" "${backup_dir}/${db}.7z"
done
done