Backup de todos os bancos de dados MySQL para arquivos individuais

0

Hy,

Como sou novo em scripts de shell, preciso de uma mão. Eu atualmente backup todos os meus bancos de dados para um único arquivo, coisa que torna a restauração muito difícil. O segundo problema que minha senha do MySQL não funciona por causa de um bug do Plesk e eu recebo a senha de "/etc/psa/.psa.shadow". Aqui está o código que eu uso para fazer backup de todos os meus bancos de dados em um único arquivo.

mysqldump -uadmin -p'cat /etc/psa/.psa.shadow' --all-databases | bzip2 -c > /root/21.10.2013.sql.bz2

Encontrei alguns scripts na Web que fazem backup de cada banco de dados em arquivos individuais, mas não sei como fazê-los funcionar para minha situação. Aqui está um script de exemplo:

for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip > "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

Alguém pode me ajudar a fazer o roteiro acima do trabalho para minha situação? Requisitos:

  1. Backup de cada banco de dados para arquivo individual usando a localização da senha do plesk.
por Michael 21.10.2013 / 19:24

3 respostas

0

Então, para fazer backup de cada banco de dados do PLESK para arquivos individuais e pular alguns arquivos, encontrei / fiz o código:

for db in $(mysql -uadmin -p'cat /etc/psa/.psa.shadow' -e 'show databases' -s --skip-column-names); do
if [[ "$db" != *schema* && "$db" != *phpmyadmin* && "$db" != "event" && "$db" != "psa" && "$db" != "mysql" ]]; then
mysqldump -uadmin -p'cat /etc/psa/.psa.shadow' $db | bzip2 -c > /root/backup/mysql/$db.sql.bz2
fi
done

Sinta-se à vontade para melhorar este código.

    
por 16.01.2014 / 23:15
0

Tente isto:

para o db em $ (mysql -e 'show databases' -s --skip-column-names); do mysqldump -uadmin -p'cat /etc/psa/.psa.shadow '$ db | bzip2 -c > "/ root / $ (date +% d-% m-% Y) .sql.bz2"; feito

    
por 22.10.2013 / 02:47
0

Tente:

for db in $(mysql -uadmin -p'cat /etc/psa/.psa.shadow' -e 'show databases' -s --skip-column-names); do mysqldump -uadmin -p'cat /etc/psa/.psa.shadow' --skip-lock-tables $db | gzip > "/var/www/mysql/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

isso funciona muito bem como é usado no servidor Plesk :: Caminho de uso testado conforme o requisito.

    
por 05.11.2015 / 10:34