quarta-feira, 13 de abril de 2011

Restaurar o Zimbra a partir do backup

renomear /opt/zimbra
copiar backup para /opt/zimbra

chown -R zimbra:zimbra /opt/zimbra
/opt/zimbra/libexec/zmfixperms -verbose

Atenção para instalar a versão exata que vai estar disponível no email que foi enviado durante o backup
./install.sh --platform-override

erro mysql, reinstalar novamente

chamar configuração
/opt/zimbra/libexec/zmsetup.pl

e pronto, tudo funcionando

Script para backup do Zimbra FOSS

Segue abaixo um script que adaptei para realizar o backup do Zimbra FOSS utilizando rsync e enviando através de NFS para um servidor de backup, ao final é enviado um email informando os dados que foram recolhidos.
Para 70GB em uma rede 1Gb o backup está levando 1:16 sendo 26 minutos com os serviços desligados.
É só criar o script e adicionar ao Cron.


#!/bin/bash

 # Zimbra Backup Script
 # This script is intended to run from the crontab as root
 # Date outputs and su vs sudo corrections by other contributors, thanks, sorry I don't have names to attribute!
 # Free to use and free of any warranty!  Daniel W. Martin, 5 Dec 2008
 # Modified by Patrick Sarnighausen, 20 Dec 2010
 #              changed ftp to rsync through nfs


 # Outputs the time the backup started, for log/tracking purposes
 echo Horario de inicio do Backup = $(date +%T) > /mnt/nfsbackup/"Backup-`date +%F`.txt"

 before="$(date +%s)"

 # Live sync before stopping Zimbra to minimize sync time with the services down
 # Comment out the following line if you want to try single cold-sync only
 rsync -avogtHK --delete /opt/zimbra/ /mnt/nfsbackup/zimbrabkp/

 # which is the same as: /opt/zimbra /backup
 # Including --delete option gets rid of files in the dest folder that don't exist at the src
 # this prevents logfile/extraneous bloat from building up overtime.

 # Now we need to shut down Zimbra to rsync any files that were/are locked
 # whilst backing up when the server was up and running.
 before2="$(date +%s)"

 echo Desligando o Servidor as: $(date +%T) >> /mnt/nfsbackup/"Backup-`date +%F`.txt"
 # Stop Zimbra Services
 su - zimbra -c "/opt/zimbra/bin/zmcontrol stop"
 sleep 30

 # Kill any orphaned Zimbra processes
 kill -9 `ps -u zimbra -o "pid="`

 # Only enable the following command if you need all Zimbra user owned
 # processes to be killed before syncing
 # ps auxww | awk '{print $1" "$2}' | grep zimbra | kill -9 `awk '{print $2}'`

 # Sync to backup directory
 rsync -avogtHK --delete /opt/zimbra/ /mnt/nfsbackup/zimbrabkp/

 # Restart Zimbra Services
 su - zimbra -c "/opt/zimbra/bin/zmcontrol start"

 # Calculates and outputs amount of time the server was down for
 after="$(date +%s)"
 elapsed="$(expr $after - $before2)"
 hours=$(($elapsed / 3600))
 elapsed=$(($elapsed - $hours * 3600))
 minutes=$(($elapsed / 60))
 seconds=$(($elapsed - $minutes * 60))
 echo Servidor esteve desligado por: "$hours horas $minutes minutos $seconds segundos" >> /mnt/nfsbackup/"Backup-`date +%F`.txt"

 # Create a txt file in the backup directory that'll contains the current Zimbra
 # server version. Handy for knowing what version of Zimbra a backup can be restored to.
 version=`su - zimbra -c "zmcontrol -v"`
 echo Versao do Zimbra: $version >> /mnt/nfsbackup/"Backup-`date +%F`.txt"
 # or examine your /opt/zimbra/.install_history

 # Display Zimbra services status
 echo Exibindo status dos servicos Zimbra... >> /mnt/nfsbackup/"Backup-`date +%F`.txt"
 zstatus=`su - zimbra -c "zmcontrol status"`
 echo $zstatus >> /mnt/nfsbackup/"Backup-`date +%F`.txt"

 # Create archive of backed-up directory for offsite transfer
 # cd /backup/zimbra
 #tar -zcvf /tmp/mail.backup.tgz -C /backup/zimbra .

 # Transfer file to backup server
 #ncftpput -u -p / /tmp/mail.backup.tgz

 # Outputs the time the backup finished
 echo Horario final do backup = $(date +%T) >> /mnt/nfsbackup/"Backup-`date +%F`.txt"

 # Calculates and outputs total time taken
 after="$(date +%s)"
 elapsed="$(expr $after - $before)"
 hours=$(($elapsed / 3600))
 elapsed=$(($elapsed - $hours * 3600))
 minutes=$(($elapsed / 60))
 seconds=$(($elapsed - $minutes * 60))
 echo Duracao Backup: "$hours horas $minutes minutos $seconds segundos" >> /mnt/nfsbackup/"Backup-`date +%F`.txt"
 sleep 5
 mail email@dominio.com -s "Zimbra Backup-`date +%F`" < /mnt/nfsbackup/"Backup-`date +%F`.txt"

Caso tenha problemas para instalar com relação ao mysql.server

descomentar hosts - 127.0.0.1

su - zimbra
cd /opt/zimbra/libexec
./zmmyinit

Atualizar Zimbra no CentOS

./install.sh --platform-override

Do you wish to upgrade? [Y]
Install zimbra-memcached [N] 
Install zimbra-proxy [N] 

quarta-feira, 23 de março de 2011

Instalação do Zimbra FOSS no CentOS

Editar o arquivo /etc/hosts
xx.xx.xx.x zimbra.exemplo.com.br zimbra
(se a maquina estiver atrás de um NAT, colocar o IP da rede interna)

Instalar /desinstalar os seguintes pacotes
yum install compat-db gmp compat-libstdc++-296 compat-libstdc++-33 libtool-ltdl sysstat -y
yum remove sendmail -y
yum install fetchmail -y

Desabilitar o exim em todos os niveis
chkconfig --level 0123456 exim off

Editar os seguintes arquivos:
/etc/sudoers e comente a linha “defaults requiretty”
/etc/sysconfig/i18n e deletar a linha LANG=”en_US.UTF-8”.

descompacte o pacote baixado  tar xvfz zcs-*

como estamos instalando no Centos 5
/install.sh --platform-override
confirmar quando alertar sobre RHL5

Se surgir a seguinte mensagem:

DNS ERROR resolving zimbra.exemplo.com.br
It is suggested that the hostname be resolveable via DNS
A sua resposta vai depender se for um servidor para testes ou uma nova máquina de produção.

Change hostname [Yes] no
MX domain
*exemplo.com.br

Menu dizendo o q falta
3 4
digitar senha

a para aplicar

quarta-feira, 4 de novembro de 2009

Definir ip fixo para interfaces no Slax

Por padrão o Slax procura pegar o IP por DHCP
Para configurar o ip para estático este são dois modos que funcionaram comigo.

1º modo
Em rc.local (/etc/rc.d)
Insira com o VI as seguintes linhas:
  • kill -9 `cat /var/run/dhcpcd-eth0.pid` (atenção para as crases)
  • ifconfig eth0 down
  • ifconfig eth0 x.x.x.x netmask y.y.y.y broadcast x.x.x.255
  • route add default gw x.x.x.1
Obs: verifique qual a sua interface

2º Modo
Em /etc/rc.d edite rc.inet1 e comente as linhas que estão com o # verde abaixo:


E depois insira em rc.local

  • ifconfig eth0 x.x.x.x netmask y.y.y.y broadcast x.x.x.255
  • route add default gw x.x.x.1



Se quiser, adicionar endereços a mais de uma interface é só repetir com as demais.
Se precisar de mais de um endereço por interface digite:
  • ifconfig eth0:0 a.a.a.a netmask b.b.b.b broadcast a.a.a.255
como na figura acima

Boot automático em modo texto no Slax

Ir para /boot:
cd /boot
Editar slax.cfg:
vi slax.cfg
Excluir tudo abaixo de menu color msg07 (usando o comando dd dentro do VI), até chegar ao Label Slax
MENU LABEL Slax text mode
Se quiser diminuir o tempo de espera do menu, edite a 2ª linha para TIMEOUT 10

Instalar Slax no HD do VirtualBox (válido para qualquer hd)

Ao bootar do cd, inicializar no modo texto “Slax Text Mode”
Criar a partição do hd com o comando
fdisk /dev/hda


“M” – lista opções;
“n” – add a new partition;
“p” – primary Partition, partition number:1, first cylinder:1, no resto usar o default;
“a” – toggle a bootable flag;
“t” – change a partition´s ID, tipo:b (fat 32);
“w” – write table to disk and exit.

Executar:
mkdosfs /dev/hda1
Criar diretório:
mkdir /mnt/live/mnt/hda1
Montar partição:
mount -t vfat /dev/hda1 /mnt/live/mnt/hda1
Ir para o cd:
cd /mnt/live/mnt/hdc
Copiar arquivos:
cp * -r /mnt/live/mnt/hda1
Executar
./bootinstall.sh
dentro de mnt/live/mnt/hda1/boot

Pronto, o Slax está instalado no HD, note que foi instalado numa partição Fat32. Eu Instalei dentro do Virtualbox, mas já fiz isso em um hd normal.