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 NOW
será 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 dbname
para 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 tableX
pelos nomes das tabelas que deseja despejar.
gzip dbname.$NOW.sql
A última linha de código simplesmente gzip o arquivo.
Feliz backup! : v