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.
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”