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