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

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

Script de backup


From: fagnerpo
Subject: Script de backup
Date: Fri, 16 Feb 2007 18:48:58 -0000
User-agent: eGroups-EW/0.82

Ola pessoal, venho nos ultimos dias procurando uma solução para o meu
problema mas não tenho obtido sucesso. Sou mais um novato no shell
Script, apanhando do tio Bash, estou criando um script de backup( meu
primeiro script),e estou com problemas, espero que tenha alguém que
possa me auxiliar neste scripts !!!! estou colocando ele abaixo e
citando os erros correntes...

##################################################
#!/bin/bash

cd /dados/bkp
DIA=`date +%A`
PASTA_DESTINO="/mnt/2nv_srv/vm/2NV/Fagner/"
DIR_LOG="/dados/bkp/"
LOG="bkp-$DIA.log"
DATA="date +%d/%m/%Y"
HORA="date +%H:%M"
MOUNT="mount | grep vm"
MNT_REMOTO="mount -t cifs -o username=fpires,password=d29m07
//172.16.129.180/vm /mnt/2nv_srv/vm"
TAMANHO="du -h bkp-$DIA.tar.gz"

### DIRETORIOS QUE DEVEM SER REALIZADO BKP

ANOTACOES="/dados/anotacoes/"
CONF="/dados/arq.conf/"
CONTROLES="/dados/controles/"
DOCUMENTACAO="/dados/documentacao/"
PACKAGES="/dados/packages/"
LINUX="/dados/linux/"
SCRIPTS="/dados/scripts/"
TMP="/dados/temp/"
MAIL="/root/.mozilla-thunderbird/"
DIRETORIOS="$ANOTACOES $CONF $CONTROLES $DOCUMENTACAO $PACKAGES $LINUX
$SCRIPTS $TMP $MAIL"




### VERIFICANDO SE A PASTA DESTINO EXISTE, CASO NÃO EXISTA, O PROCESSO
SERÁ ABORTADO

function testes_dest
{
   if [ ! -d $PASTA_DESTINO ]
    then
    echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO DE DESTINO, TENTANDO
MONTAR O DESTINO !!!" >> $DIR_LOG/$LOG
       else
    echo "DIRETORIO DE "$DESTINO" ENCONTRADO...OK" >> $DIR_LOG/$LOG    
    fi
   while [ `$MOUNT` == "" ]
    do
    echo "TENTANDO MONTAR DIRETORIO" >> $DIR_LOG/$LOG
    `$MNT_REMOTO`
       sleep 10
    done
echo "COMPARTILHAMENTO MONTADO...OK" >> $DIR_LOG/$LOG
}

function testes_dir
{
echo "REALIZANDO TESTES PARA VERIFICAR INCONSISTENCIAS NOS DIRETORIOS"
>> $DIR_LOG/$LOG

### VERIFICANDO SE OS DIRETORIOS A SEREM REALIZADOS BKP, EXISTE !!!
if [ ! -d $ANOTACOES ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $ANOTACOES !!!" >>
$DIR_LOG/$LOG
else
    echo "DIRETORIOS "$ANOTACOES" ENCONTRADO ...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $CONF ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $CONF !!!" >> $DIR_LOG/$LOG
else
    echo "DIRETORIO "$CONF" ENCONTRADO ...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $CONTROLES ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $CONTROLES !!!" >>
$DIR_LOG/$LOG
else
    "DIRETORIO "$CONTROLES" ENCONTRADOS ...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $DOCUMENTACAO ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $DOCUMENTACAO !!!" >>
$DIR_LOG/$LOG
else
    echo "DIRETORIO "$DOCUMENTACAO" ENCONTRADO...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $PACKAGES ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $PACKAGES !!!" >>
$DIR_LOG/$LOG
else
    echo "DIRETORIO "$PACKAGES" ENCONTRADO...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $LINUX ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $LINUX !!!" >> $DIR_LOG/$LOG
else
    echo "DIRETORIO "$LINUX" ENCONTRADO...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $SCRIPTS ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $SCRIPTS !!!" >>
$DIR_LOG/$LOG
else
    echo "DIRETORIO "$SCRIPT" ENCONTRADO...OK" >> $DIR_LOG/$LOG
   fi

if [ ! -d $TMP ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $TMP !!!" >> $DIR_LOG/$LOG
else
    echo "DIRETORIO "$TMP" ENCONTRADO...OK " >> $DIR_LOG/$LOG
   fi

if [ ! -d $MAIL ]
then
echo "ERRO, SCRIPT NÃO ENCONTROU O DIRETORIO $MAIL !!!" >> $DIR_LOG/$LOG
else
    echo "DIRETORIO "$MAIL" ENCONTRADO...OK" >> $DIR_LOG/$LOG
   fi
   }
function faz_bkp
{
   echo "INICIO DO BACKUP DO DIA "`$DATA`" AS "`$HORA`" " >> $DIR_LOG/$LOG
   cd $BKP
   tar zcvf bkp-$DIA.tar.gz $DIRETORIOS
   echo "O TAMANHO DO BKP FOI DE: `$TAMANHO` " >> $DIR_LOG/$LOG
   echo " FIM DO BACKUP DO DIA `$DATA` AS `$HORA` " >> $DIR_LOG/$LOG
}
function cp_server
{
   cd $BKP
   echo "ENVIANDO BKP PARA SERVER REMOTO" >> $DIR_LOG/$LOG
   cp -rf bkp-$DIA.tar.gz $PASTA_DESTINO >> $DIR_LOG/$LOG
   echo "ENVIADO BKP PARA SERVER REMOTO...OK" >> $DIR_LOG/$LOG
}
### CHAMANDO AS FUNÇÕES
testes_dest
testes_dir
faz_bkp
cp_server

exit 0
################################################
ERROS OCORRIDOS :

Uso: mount -V : mostra versão
mount -h : mostra esta ajuda
mount : lista sistemas de arquivos montados
mount -l : idem, incluindo rótulos de volumes
Estas eram as opções de informação. Agora as de montagem.
O comando é `mount [-t tipoSA] alguma-coisa algum-lugar'.
Detalhes encontrados em /etc/fstab podem ser omitidos.
mount -a [-t|-O] ... : monta tudo contido em /etc/fstab
mount dispositivo : monta dispositivo no lugar conhecido
mount diretório : monta dispositivo conhecido aqui
mount -t tipo disp dir : comando normal de montagem
Note que não se monta realmente um dispositivo, monta-se um
sistema de arquivos (de um determinado tipo) encontrado no dispositivo.
Pode-se montar também em outro lugar uma árvore de diretórios
anteriormente visível:
mount --bind dir-antigo dir-novo
ou mover uma sub-árvore:
mount --move dir-antigo dir-novo
Um dispositivo pode ser informado pelo nome, digamos /dev/hda1 ou
/dev/cdrom,
ou por um rótulo, usando -L rótulo ou por uuid, usando -U uuid.
Outras opções: [-nfFrsvw] [-o opções] [-p passwdfd].
Para mais detalhes, consulte `man 8 mount'.
backup.sh: line 40: [: ==: operador unário esperado
backup.sh: line 72: DIRETORIO /dados/controles/ ENCONTRADOS ...OK:
Arquivo ou diretório inexistente
################################################

É obvio que eu errei os mount e o laço while, onde testo o mount, bom
conto com a análise de vocês, valew pela forca pessoal ! abraços ...




reply via email to

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