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