#!/bin/bash
# JonMyBackup
# Script de Backup para MySQL
# 2009.11.26
# Modificado por Milton Caetano Filho 05/04/2011
# Adicionado função sendfiles para envio dos arquivos de backup remotamente entre dois servidores.
# OBS: É necessário chave RSA para conexao SSH entre os servidores sem PHRASE.
# - Efetua DUMP do banco MySQL em um arquivo .sql
# - Compacta em bzip2
# - Tira MD5Sum do arquivo, para checagem de integridade
# - Salva em pasta de backup com data e hora no filename.
# Data: Ano-Mes-Dia-Hora-Minuto-Segundo-Abreviação alfabética do fuso horário (por exemplo, BRT)
data=`date +%Y-%m-%d-%H-%M-%S-%Z`
# Variáveis de conexão
host="seuservidor"
user="seuusuario"
password="suasenha"
dbname="seubanco"
# Variáveis do script
backupdir="/bkp"
tmpdir="/tmp"
bz2file=$dbname-$data.tar.bz2
DUMP=$dbname.sql
md5file=$dbname-$data.md5
clear
dumpdb() {
# Checando se o diretório temporário existe. Se não, criando um.
if [ -e $tmpdir ]; then
echo 'DIRETORIO /TEMP OK'
else
echo 'CRIANDO DIRETORIO /TEMP'
mkdir $tmpdir
fi
# Executando DUMP
echo 'CRIANDO DUMP...'
/usr/bin/mysqldump --opt -h $host -u$user -p$password $dbname > $tmpdir/$DUMP
}
# Função para compactar o DUMP para tar.bz2, com a formatação correta da data no filename
bzip2compress() {
cd $tmpdir &&
echo 'COMPACTANDO DUMP...' &&
tar cjf $bz2file $DUMP &&
rm $DUMP
}
writemd5sum() {
echo 'CRIANDO MD5SUM...'
echo `md5sum $bz2file` > $md5file
}
moveFiles() {
# Checando se o diretório de Backup existe. Se não, criando um.
if [ -e $backupdir ]; then
echo 'DIRETORIO DE BACKUP OK'
else
echo 'CRIANDO DIRETORIO DE BACKUP'
mkdir $backupdir
fi
mv $tmpdir/$md5file $backupdir &&
mv $tmpdir/$bz2file $backupdir &&
echo 'REALIZADO BACKUP E ENVIADO PARA O DIRETORIO DE BACKUP!'
}
sendfiles() {
ping -q -c5 192.168.157.137 > /dev/null
if [ $? -eq 0 ]
then
scp $backupdir/* root@192.168.157.137:$backupdir
else
echo 'FALHA AO CONECTAR AO SERVIDOR REMOTO!'
sleep 2;
exit 1;
fi
}
main() {
dumpdb
bzip2compress
writemd5sum
moveFiles
sendfiles
}
main
Script original pode ser obitido em: Jonathas Rodrigues
Assinar:
Postar comentários (Atom)
Já aconteceu de você clicar no meu (Iniciar/Desligar) e o computador não ser desligado, pelo fato de o Windows ficar perguntando se você des...
-
Este exemplo a conta admin para abrir o Notepad Para maiores informações consulte a sintaxe do comando runas "runas ?" Option e...
-
Monitorando servidores e estações Windows com servidor Linux usando MRTG. Clique aqui
Nenhum comentário:
Postar um comentário