shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Fazer script para backup de Maildir?


From: Davidson Rodrigues Paulo
Subject: Re: [shell-script] Fazer script para backup de Maildir?
Date: Thu, 3 Jan 2008 12:45:45 -0200

Bom, acho que não ajudo muito se não explicar o que cada comando faz,
então seguem os comentários:

Em 03/01/08, Davidson Rodrigues Paulo<address@hidden> escreveu:
> getDirs() {

Função getDirs vai retornar todos os diretórios Maildir separados por espaço.

>   while read Line ; do

A variável Line vai receber os valores gerados pelo comando getent
passwd, mais abaixo. Esse comando exibe a lista de todos os usuários
do sistema, com seus ID, GID, diretório pessoal etc.

>     Usuario=$(echo $Line | cut -d: -f1)

A cada iteração do while, a variável Line recebe um valor parecido com esse:

dpaulo:x:1063:507:Davidson Paulo - Informatica:/home/samba/info/dpaulo:/bin/bash

O comando cut -d: -f1 pega o primeiro campo, considerando :
(dois-pontos) como delimitador de campos. No caso, esse campo é o
login do usuário.

Nota: acabei de perceber que essa variável é inútil no script que eu
fiz. Mas se você quiser fazer backups individuais para cada usuários,
pode ser de grande valia.

>     HomeDir=$(echo $Line | cut -d: -f6)

Aqui, o campo separado é o sexto, justamente aquele que contém o
diretório pessoal do usuário.

>     if [ "$HomeDir" != /dev/null ] ; then

Usuários do sistema (como wheel, apache, squid etc) não possuem
diretório pessoal, definido como /dev/null. Se esse for o caso, o
usuário não é processado.

>       if [ -d ${HomeDir}/Maildir ] ; then

Verifica se existe o diretório Maildir dentro do diretório pessoal do usuário.

>         echo -n "${HomeDir}/Maildir "

Se o diretório Maildir existe, ele imprime o resultado para a saída
padrão, que será gravado na variável DirList.

> DirList=$(getDirs)

Aqui, a variável DirList recebe o valor de toda saída gerada pela
função getDirs.

> tar cp $DirList | gzip -9 > ${BackupDir}/Maildir.tar.gz

Faz o backup de todos os diretórios especificados na variável DirList.

Um abraço,

-- 
Davidson Paulo
Administrador de Sistemas Linux
Certificado LPI Nível 1: LPI000132770
Líder Nacional dos Grupos de Usuários BrOffice.org
http://davidsonenatalia.blogspot.com/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]