Script de backup do MySQL

Em um dos meus ProTips anteriores , mencionei meu script de shell que executa um backup do meu banco de dados MySQL e, em seguida, gzipá-lo para um download mais rápido. Pensei em compartilhar com você hoje.

# backup-dbname

NOW
=$(date +"%Y-%m-%d.%H-%M-%S")
mysqldump
-uroot -p dbname > dbname.$NOW.sql
gzip dbname
.$NOW.sql

Você pode então adicionar o script ao seu PATH(normalmente ~/myusername/bin/ou ~/bin) para que tudo o que você precisa fazer no seu terminal seja executado backup-dbname, ou você pode executar o script de forma absoluta (por exemplo /path/to/backup-tablename).

DISECÇÃO

NOW=$(date +"%Y-%m-%d.%H-%M-%S")

No código acima, declaramos a variável NOW. Observe como não há espaço em nenhum dos lados do sinal de igual. Se a data atual for 17 de setembro de 2014 às 14:56:30, a variável NOWserá igual a 2014-09-17.14-56-30.

mysqldump -uroot -p dbname > dbname.$NOW.sql

Esta é a sintaxe usual de despejo do MySQL. Os >meios canalizam os resultados nesta direção, ou seja, da função mysqldump, para o arquivo nomeado dbname.$NOW.sql. Mude dbnamepara o nome da tabela que você deseja despejar. Se você deseja apenas despejar certas tabelas, faça o seguinte

# backup-dbname

NOW
=$(date +"%Y-%m-%d.%H-%M-%S")
mysqldump
-uroot -p dbname table1 table2 table3 tableN > dbname.$NOW.sql
gzip dbname
.$NOW.sql

Obviamente, substitua tableXpelos nomes das tabelas que deseja despejar.

gzip dbname.$NOW.sql

A última linha de código simplesmente gzip o arquivo.

Feliz backup! : v