sincronizar data do servidor na internet [help] // ajuda em bash script[solved]

zoidberg

Folding Member
Boas , ando a construir um bash script para efectuar os backups a um forum. o código actual é:
Código:
#!/bin/sh
# MYSQL Backup Script

export d=$(date +%d-%m-%Y)
export savepath=/share/incoming/Backups

export usr=$(cut -d " " -f 1 /root/.mysqlpasswd)
export pwd=$(cut -d " " -f 2 /root/.mysqlpasswd)

echo starting mySQL Backup Script.
echo start composing mail

echo ---------------backup report log created in $d---------------  > /share/backup/.mailfile

echo creating new directory in shared folder...
mkdir -p $savepath/$d
if [ "$?" = "0" ]; then export p1=OK 
else export p1=FAILED
fi

echo Dumping database ***...
mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/arvore_suporte.sql
if [ "$?" = "0" ]; then export p2=OK
else export p2=FAILED
fi


echo Dumping database ***...
mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/daily.sql
if [ "$?" = "0" ]; then export p3=OK
else export p3=FAILED
fi


echo Dumping database ***...
mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/equip_id.sql
if [ "$?" = "0" ]; then export p4=OK
else export p4=FAILED
fi


echo Dumping database ***...
mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/gedas_forum.sql
if [ "$?" = "0" ]; then export p5=OK
else export p5=FAILED
fi


echo Dumping entire database...
mysqldump -u$usr -p$pwd --opt  -A > $savepath/$d/All.sql
if [ "$?" = "0" ]; then export p6=OK
else export p6=FAILED
fi


echo copying files to shared folder...
cp -r /var/www/ $savepath/$d/
if [ "$?" = "0" ]; then export p7=OK
else export p7=FAILED
fi


rm -r $savepath/$d/www/phpmyadmin
if [ "$?" = "0" ]; then export p8=OK
else export p8=FAILED
fi


chmod -R 777 $savepath/$d/
if [ "$?" = "0" ]; then export p9=OK
else export p9=FAILED
fi



echo mounting network share to copy files...
mount -t smbfs -o credentials=/root/.smbpasswd,workgroup=*** //*** /mnt/backupdir/
if [ "$?" = "0" ]; then export p10=OK
else export p10=FAILED
fi



echo copying files to network place...
cp -r $savepath/$d /mnt/backupdir/$d
if [ "$?" = "0" ]; then export p11=OK
else export p11=FAILED
fi



echo unmounting network share...
umount /mnt/backupdir/
if [ "$?" = "0" ]; then export p12=OK
else export p12=FAILED
fi


cat >> /share/backup/.mailfile <<EOF

Creating new directory in shared folder...     $p1                         
Dumping database arvore_suporte...         $p2                                 
Dumping database daily...             $p3                                    
Dumping database equip_id...             $p4                               
Dumping database gedas_forum...         $p5               
Dumping entire database...             $p6                    
Copying files to shared folder...         $p7             
Removing phpmyadmin...                 $p8                        
Chmoding 777 shared folder...             $p9                 
Mounting network share to copy files...     $p10      
Copying files to network place...         $p11            
Unmounting network share...             $p12                  
EOF


echo e-mailing backup report...
mail -s "Forum Backup Report" -t ***@***.*** < /share/backup/.mailfile
if [ "$?" = "0" ]; then export p13=OK
else export p13=FAILED
fi

echo e-mailing backup report...         $p13 >> /share/backup/.mailfile


echo archiving log file...
cp /share/backup/.mailfile /share/backup/$d.log


echo done!
Código final seguindo as dicas do r3pek ;) tks

o que queria fazer era

*Criar 1 ficheiro com a password do mysql ( /root/.mysqlpasswd ) e exportar as variaveis usr e
pwd a partir de lá para nao as ter visiveis no script

*enviar um e-mail no fim da operação com uma especie de log a dizer que correu tudo bem.
basicamente já envia, mas queria formar um .mailfile com o log das operações ( devo ter de validar se está a correr tudo bem passo a passo e escrever para o mailfile ).

muito obrigado r3pek, já funciona como quero :) agora é so por no crontab e já está :)

prox problema : sincronizar a data / hora por detras de uma proxy :| alguem sabe como ?
 
Última edição:
* Facil ;)
ficheiro do tipo:
Código:
username passwd
depois é só:
export usr=$(cut -d " " -f 1 /root/.mysqlpasswd)
export pwd=$(cut -d " " -f 2 /root/.mysqlpasswd)

* Quanto ao segundo ponto....
Podes ir fazendo "echo's" para um ficheiro temporario que apagas no fim do script para juntares toda a informação k keres saber.... depois no fim do script é só fazer algo do género:
Código:
sendmail [email protected] < /tmp/log
 
tks :) já bomba :D

agora tenho outro problemazinho.. será que me podem ajudar? :P

não consigo sincronizar a data do servidor pela internet pq estou por detras de uma proxy....
 
Back
Topo