Leozitho 81 Denunciar post Postado Dezembro 26, 2010 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
Beraldo 864 Denunciar post Postado Dezembro 27, 2010 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
Leozitho 81 Denunciar post Postado Dezembro 28, 2010 Valeu Beraldo! Removi os espaços e funcionou direitinho! :D Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites