Arquivo

Archive for junho \14\America/Sao_Paulo 2013

Criação e atualização de Feeds no Zimbra

#!/bin/bash
# Script para criacao e atualizacao de Feeds RSS nas caixas postais do Zimbra

LOG=/etc/feeds/log
domains=/etc/feeds/domains
feeds=/etc/feeds/feeds
zmmailbox=/opt/zimbra/bin/zmmailbox

while read dom;
do    
  dominio=$dom
  for usuario in $(/opt/zimbra/bin/zmprov -l gaa $dominio);do
      echo "" >> $LOG
      echo "Usuario: " $usuario >> $LOG
      while read line_feed;
      do
         feed=`echo $line_feed | cut -d* -f1`
         url_feed=`echo $line_feed | cut -d* -f2`
         canal=`$zmmailbox -z -m $usuario gaf | grep "$feed"`

           if [ -n "$canal" ]; then
              echo "Atualizando feed " $feed >> $LOG
                 $zmmailbox -z -m $usuario syncfolder "$feed" >> $LOG
           else
              echo "Criando feed: " $feed >> $LOG
                 $zmmailbox -z -m $usuario cf -u $url_feed "$feed" >> $LOG
        fi
   done < $feeds # fim while feed
 done # fim for
done < $domains #fim while dominio

Explicação do Script:

Variáveis:

  • LOG: armazena as informações de execução do script.
  • domains: contém os domínios configurados no servidor, ou que receberão os Feeds. No arquivo deve ser informado um domínio por linha.
    Ex: dominio.com.br
        dominio2.com.br
  • feeds: contém as urls dos feeds. Também deve ser informado um por linha. O ‘*’ é o caracter delimitador no script e deve ser informado.
    Ex: /Inbox/Canal TI*  http://site.com.br/index.php/ti?format=feed&type=rss*
        /Inbox/Canal RH*  http://site.com.br/index.php/rh?format=feed&type=rss*
  • zmmailbox: serviço que adicionará/atualizará os feeds;
  • dominio: domínio selecionado a cada iteração ‘do while read dom’;
  • usuario: usuário selecionado na execução do zmprov no loop ‘for’;
  • feed: primeira coluna do arquivo feeds. Corresponde à localização e nome do feed a ser criado/atualizado;
  • url_feed: segunda coluna do arquivo feeds. Corresponde ao endereço do feed a ser criado/atualizado;
  • canal: variável utilizada para verificar se o feed já existe para o usuário selecionado;

Primeiramente o script lê o arquivo dos domínios (domains) cadastrados. Cada iteração seleciona um domínio e dentro do loop são percorridas as caixas postais correspondentes. Em cada caixa postal, é verificada a existência de cada uma das urls presentes no arquivo feeds, caso o Feed não exista ele é criado,  se já existe é atualizado.

Categorias:Zimbra - Email Tags:

Criar templates no XenServer

Algumas versões do XenServer não possuem templates prontos para Distros mais novas. Em alguns casos, baseado em templates já existentes no sistema, é possível criar templates para as Distros mais novas sem necessidade de paravirtualizar a nova instalação, segue alguns exemplos:

 

– Template Debian Wheezy

 

#!/bin/bash

SQUEEZE=$(xe template-list name-label=Debian\ Squeeze\ 6.0\ \(32-bit\) –minimal)

if [[ -z $SQUEEZE ]] ; then
echo “Cant find squeeze 32bit template, is this on 6.0″
exit 1
fi

distro=”Debian Wheezy”
arches=(“32-bit” “64-bit”)
for arch in ${arches[@]} ; do
echo “Attempting $distro ($arch)”
if [[ -n $(xe template-list name-label=”$distro ($arch)” params=uuid –minimal) ]] ; then
echo “$distro ($arch)” already exists, Skipping
else

NEWUUID=$(xe vm-clone uuid=$SQUEEZE new-name-label=”$distro ($arch)”)
xe template-param-set uuid=$NEWUUID other-config:install-methods=http,ftp \
other-config:install-repository=http://ftp.debian.org/debian \
PV-args=”– quiet console=hvc0″ \
other-config:debian-release=wheezy \
other-config:default_template=true

if [[ “$arch” == “32-bit” ]] ; then
xe template-param-set uuid=$NEWUUID other-config:install-arch=”i386″
else
xe template-param-set uuid=$NEWUUID other-config:install-arch=”amd64″
fi
echo “Success”
fi

done

echo “Done”

 

– Template Ubuntu 

 

#!/bin/bash

LENNY=$(xe template-list name-label=Debian\ Lenny\ 5.0\ \(32-bit\) –minimal)

if [[ -z $LENNY ]] ; then
echo “Cant find lenny 32bit template, is this on 5.6?”
exit 1
fi

distro=”Ubuntu 10.04″
arches=(“32-bit” “64-bit”)
for arch in ${arches[@]} ; do
echo “Attempting $distro ($arch)”
if [[ -n $(xe template-list name-label=”$distro ($arch)” params=uuid –minimal) ]] ; then
echo “$distro ($arch)” already exists, Skipping
else

NEWUUID=$(xe vm-clone uuid=$LENNY new-name-label=”$distro ($arch)”)
xe template-param-set uuid=$NEWUUID other-config:install-methods=http,ftp \
other-config:install-repository=http://archive.ubuntu.net/ubuntu \
PV-args=”– quiet console=hvc0 partman/default_filesystem=ext3″ \
other-config:debian-release=lucid \
other-config:default_template=true

if [[ “$arch” == “32-bit” ]] ; then
xe template-param-set uuid=$NEWUUID other-config:install-arch=”i386″
else
xe template-param-set uuid=$NEWUUID other-config:install-arch=”amd64″
fi
echo “Success”
fi

done

echo “Done”