Backup de toda base de dados

1. Backup de toda base de dados

Marco A. Lang
marcolang

(usa CentOS)

Enviado em 05/05/2016 - 09:04h

Olá pessoal... estou tentando criar um script para fazer backup de toda minha base de dados e mandar pra Amazon S3.

O script que tenho é o seguinte:

#!/bin/bash
# Based on https://gist.github.com/2206527
# Basic variables
bucket="s3://NOME-BUCKET"
# Timestamp (sortable AND readable)
stamp=`date +"%s - %A %d %B %Y @ %H%M"`
# List all the databases
databases=`mysql -u root -pSENHA -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"`
# Feedback
echo -e "Dumping to \e[1;32m$bucket/$stamp/\e[00m"
# Loop the databases
for db in $databases; do
# Define our filenames
filename="$stamp - $db.sql.gz"
tmpfile="/tmp/$filename"
object="$bucket/$stamp/$filename"
# Feedback
echo -e "\e[1;34m$db\e[00m"
# Dump and zip
echo -e " creating \e[0;35m$tmpfile\e[00m"
mysqldump -u root -pSENHA --force --opt --databases "$db" | gzip -c > "$tmpfile"
# Upload
echo -e " uploading..."
s3cmd put "$tmpfile" "$object"
# Delete
rm -f "$tmpfile"
done;


O erro que tenho é o seguinte:

'opiaS3bancos.sh: line 12: syntax error near unexpected token `do
'opiaS3bancos.sh: line 12: `for db in $databases; do


Estou tendo dificuldades de contornar esses erros pois sou bem iniciante em shell script.

ABRAÇO


  


2. Re: Backup de toda base de dados

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/05/2016 - 09:41h

marcolang escreveu:

Olá pessoal... estou tentando criar um script para fazer backup de toda minha base de dados e mandar pra Amazon S3.

O script que tenho é o seguinte:

#!/bin/bash
# Based on https://gist.github.com/2206527
# Basic variables
bucket="s3://NOME-BUCKET"
# Timestamp (sortable AND readable)
stamp=`date +"%s - %A %d %B %Y @ %H%M"`
# List all the databases
databases=`mysql -u root -pSENHA -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"`
# Feedback
echo -e "Dumping to \e[1;32m$bucket/$stamp/\e[00m"
# Loop the databases
for db in $databases; do
# Define our filenames
filename="$stamp - $db.sql.gz"
tmpfile="/tmp/$filename"
object="$bucket/$stamp/$filename"
# Feedback
echo -e "\e[1;34m$db\e[00m"
# Dump and zip
echo -e " creating \e[0;35m$tmpfile\e[00m"
mysqldump -u root -pSENHA --force --opt --databases "$db" | gzip -c > "$tmpfile"
# Upload
echo -e " uploading..."
s3cmd put "$tmpfile" "$object"
# Delete
rm -f "$tmpfile"
done;


O erro que tenho é o seguinte:

'opiaS3bancos.sh: line 12: syntax error near unexpected token `do
'opiaS3bancos.sh: line 12: `for db in $databases; do


Estou tendo dificuldades de contornar esses erros pois sou bem iniciante em shell script.

ABRAÇO


Bom dia Marco.
Qual a saída de:
mysql -u root -pSENHA -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"` 
?
Detalhe, não relacionado ao erro apresentado.
Evite espaço no nome dos arquivos.

att.:
marcelo oliver





3. Re: Backup de toda base de dados

Bruno Thomaz
SarusKant

(usa CentOS)

Enviado em 05/05/2016 - 13:12h

Cara o erro é de syntax, em seu comando for.
Faça assim.

for db in $databases
do
#seu codigo
done

Em seu mysqldump adicione --routines para procedures e views

--
Bruno Thomaz


4. Atenção: Não publiquem senhas em locais de acesso publico.

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/05/2016 - 17:27h

~marcolang

Ola,

Visitando seu tópico notei que aparentemente deixou por descuido no script, a senha do usuário root do mysql.

Tomei a liberdade de alterar no tópico este dado, o substituindo pela string SENHA.

Mesmo confiando no profissionalismo de quem visitou o tópico, é impossível controlar se alguém mal intencionado também percebeu o dado. Então, lhe sugiro que se a senha que informou era real, providencie a alteração por outra.

E deixo o alerta a quem mais ler o tópico, para que tenham sempre cuidado ao postar informações na rede, para não divulgarem dados sensíveis dos seus ambientes.



------------------------------------------------------
KISS principle, RTFM and STFW = 42






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts