(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Next Previous Contents

10. Tirando cópias de segurança de máquinas Windows em Linux

Adam Neat ( adamneat@ipax.com.au) gentilmente contribuiu com o seguinte script para fazer cópias de segurança de máquinas Windows no Linux, usando o utilitário smbclient. Adam diz tê-lo usado para fazer cópias de segurança de máquinas Windows 3.x e NT numa máquina Linux com drive DAT SCSI.

O Adam não está orgulhoso do estilo de codificaçõa usado aqui, mas ele funciona. Como que gosto de dizer: "Se funciona e é estúpido, então não é estúpido".

Neste script, a string 'agnea1' é o nome do usuário na máquina Linux que faz as cópias de segurança (backups).


#!/bin/bash

clear
echo Inicializando ...
checkdate=`date | awk '{print $1}'`

if [ -f "~agnea1/backup-dir/backup-data" ]; then

        echo "ERRO: Nenhum arquivo de configuração para hoje!"
        echo "FATAL!"
        exit 1
fi

if [ -d "~agnea1/backup-dir/temp" ]; then

        echo "ERRO: Diretório temporário não encontrado!"
        echo
        echo "Tentando criar "
        cd ~agnea1
        cd backup-dir
        mkdir temp
        echo "Diretório criado - temp"
fi

if [ "$1" = "" ]; then

        echo "ERRO: entre o nome da máquina (ex: cdwriter)"
        exit 1
fi

if [ "$2" = "" ]; then

        echo "ERRO: entre um recurso SMB (Lan Manager) (ex: work)"
        exit 1
fi

if [ "$3" = "" ]; then

        echo "ERRO: entre um endereço IP para $1 (ex: 130.xxx.xxx.52)" 
        exit 1
fi


#############################################################################
# Main Section
#
#############################################################################

cd ~agnea1/backup-dir/temp
rm -r ~agnea1/backup-dir/temp/*
cd ~agnea1/backup-dir/

case "$checkdate"
in
        Mon)
                echo "Fazendo Backup de Segunda-feira"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Completo"

                        if [ -d "~agnea1/backup-dir/Monday" ]; then
                                echo "Diretório Monday não encontrado ...
                                criando" mkdir
                                ~agnea1/backup-dir/Monday
                        fi

                echo "Arquivando ..."
                cd ~agnea1/backup-dir/temp
                tar -cf monday.tar *                echo "feito ..."
                rm ~agnea1/backup-dir/Monday/monday.tar
                mv monday.tar ~agnea1/backup-dir/Monday
                ;;


        Tue)
                echo "Fazendo Backup de Terça-feira"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Completo"

                        if [ -d "~agnea1/backup-dir/Tuesday" ]; then
                                echo "Diretório Tuesday não encontrado ...
                                criando" mkdir
                                ~agnea1/backup-dir/Tuesday
                        fi
                echo "Arquivando ..."
                cd ~agnea1/backup-dir/temp
                tar -cf tuesday.tar *
                echo "feito ..."
                rm ~agnea1/backup-dir/Tuesday/tuesday.tar
                mv tuesday.tar ~agnea1/backup-dir/Tuesday
                ;;

        Wed)
                echo "Fazendo Backup de Quarta-feira"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Completo"

                        if [ -d "~agnea1/backup-dir/Wednesday" ]; then
                                echo "Diretório Wednesday não encontrado
                                ... criando " mkdir
                                ~agnea1/backup-dir/Wednesday
                        fi
                echo "Arquivando ..."
                cd ~agnea1/backup-dir/temp
                tar -cf wednesday.tar *
                echo "feito ..."
             rm ~agnea1/backup-dir/Wednesday/wednesday.tar
                mv wednesday.tar ~agnea1/backup-dir/Wednesday
                ;;

        Thu)
                echo "Fazendo Backup de Quinta-feira"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Completo"

                        if [ -d "~agnea1/backup-dir/Thursday" ]; then
                                echo "Diretório Thrusday não encontrado ...
                                criando" mkdir
                                ~agnea1/backup-dir/Thursday
                        fi
                echo "Arquivando ..."
                cd ~agnea1/backup-dir/temp
                tar -cf thursday.tar *
                echo "feito ..."
                rm ~agnea1/backup-dir/Thursday/thursday.tar
                mv thursday.tar ~agnea1/backup-dir/Thursday
                ;;


        Fri)
                echo "Fazendo Backup de Sexta-feira"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Completo"

                        if [ -d "~agnea1/backup-dir/Friday" ]; then
                                echo "Diretório Friday não encontrado ...
                                criando" mkdir
                                ~agnea1/backup-dir/Friday
                        fi
                echo "Arquivando ..."
                cd ~agnea1/backup-dir/temp
                tar -cf friday.tar *
                echo "feito ..."
                rm ~agnea1/backup-dir/Friday/friday.tar
                mv friday.tar ~agnea1/backup-dir/Friday
                ;;

        *)
                echo "FATAL ERROR: Variável desconhecida passada para dia"
                exit 1;;

esac
###########


Next Previous Contents