vuaciquete
(usa Outra)
Enviado em 24/10/2013 - 10:35h
Boas pessoal
Estou a trabalhar num sistema de gestao escolar e preciso de uma solucao rapida e simples para efectuar a sincronizacao de banco de dados Mysql,no momento estou usando scripts em python e distribucao usada e Ubuntu 10.10.Preciso sincronizar dados das escolas para a central a baixo vao os scripts que estou usando e nao sao tao "eficazes"
scrip do Centro(escola)
#!/bin/bash
################################################
#Este script pertence a santech
#Objectivo: sync escola --> central
#Writen by The STEWART cluster.isctem@gmail.com#
################################################
DATA=$(date +%y%m%d)
HORA=$(date +%k%_M%_S)
SERVER=41.76.150.10
CENTRO=110289
######Criando os directorios necessarios
[ ! -d /var/sql_log ] && mkdir -p /var/sql_log || :
[ ! -d /var/backups ] && mkdir -p /var/backups || :
#### Efectuar backup
mysqldump segi -uroot -proot > /var/backups/segi_dump_$DATA-$CENTRO.dump
cp /var/log/mysql/mysql.log /var/backups/segi_log_$DATA-$CENTRO.log && cp /dev/null /var/log/mysql/mysql.log
#### Aplicacao de filtro
####grep "insert\|update" /var/backups/segi_log_$DATA-$CENTRO.log | cut -d' ' -f5- |sed 's/Query//' |sed 's/$/\;/' > /var/backups/$DATA-$CENTRO.sql
####grep "insert\|update" /var/backups/segi_log_$DATA-$CENTRO.log | sed -e 's/.*insert//'
grep "insert\|update" /var/backups/segi_log_$DATA-$CENTRO.log |sed -e 's/.*Query//'|sed '/insert into ano_lectivo/d' |sed '/insert into sub_periodo_lectiv$
scp -P 22 /var/backups/*.sql root@$SERVER:/var/backups/syncs/ &>> /var/backups/ERROR.log
if [ $? -ne 0 ]; then
echo "Os ficheiros sql de $DATA-$CENTRO.sql nao foram copiados Data:$DATA Hora: $HORA" >> /var/backups/ERROR.log
else
mv /var/backups/*.sql /var/sql_log/
fi
exit 0
script da central
#!/bin/bash
################################################
#Este script pertence a santech
#Objectivo: sync escola --> central
#Writen by The STEWART cluster.isctem@gmail.com#
################################################
DATA=$(date)
for fix in `ls /var/backups/syncs`;
do
mysql segi -uroot -proot < /var/backups/syncs/$fix >> /var/log/syncs/SYNC.log
if [ $? -ne 0 ]; then
echo "Ocorreu um erro na importacao dos dados do ficheiro $fix DATA:$DATA" >> /var/log/syncs/SYNC.log
else
mv /var/backups/syncs/$fix /var/done_backups/
fi
done
exit 0
por favor ajudem-me abrcs