Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leozitho

[Resolvido] shell script para backup de todas as bases do MySQL

Recommended Posts

Olá,

 

Eu sou programador PHP e não tenho muito conhecimento da linguagem shell script, mas mesmo assim me arrisquei a criar um script para fazer backup de todas as bases de dados MySQL do meu servidor.

 

Eu usei outro script como base para criar o meu, mas está dando erro de sintaxe.

 

Alguém poderia me dizer o que há de errado? Segue o código:

 

#!/bin/sh

arquivo="backup_mysql_"$(date "+%Y%m%d%H")
destino="/hdd1/backups/mysql"
num_arquivos=10

echo "Criando o dump das bases e tabelas..."

mysqldump --all-databases > "$HOME/$arquivo.sql"

echo "Dump criado!"

echo "Compactando o arquivo SQL..."

gzip -f "$HOME/"$arquivo.sql

echo "Arquivo SQL compactado!"

echo "Verificando se o diretório de destino existe..."

if [ -d $destino ]; then
echo "O diretório existe!"
continue
else
echo "O diretório não existe e será criado..."
mkdir $destino
echo "Diretório criado!"
fi

echo "Copiando o arquivo compacatado para a pasta de destino..."
cp -f "$HOME/"$arquivo.sql.gz "$destino/$arquivo.sql.gz"
echo "Arquivo copiado!"

echo "Verificando a quantidade de arquivos no diretório de destino..."
a = 0
b = $(ls -t $destino)
c = $num_arquivos

for arq in $b; do
a = $(($a+1))
if [ "$a" -gt $c ]; then
	rm -f "$destino/$arq"
	echo "Arquivo $arq removido!"
fi
done

echo "Excluíndo o arquivo do diretório local..."
rm -f "$HOME/"$arquivo.tar.gz
echo "Arquivo excluído!"

echo "Backup concluído com sucesso!"

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Shell é meio chato neste ponto:

 

a = 0
b = $(ls -t $destino)
c = $num_arquivos

 

VOcê não pode colcoar espaços aí, senão ele interpreta como comando. Deixe assim:

 

a=0
b=$(ls -t $destino)
c=$num_arquivos

 

 

 

era aí o erro de sintaxe? se não for, diga em que linha ele ocorre

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.