[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Script de Back-UP
From: |
Anderson Deluiz Santos |
Subject: |
RES: [shell-script] Script de Back-UP |
Date: |
Thu, 31 Jul 2003 10:21:45 -0300 |
Porque não usa o tar com as opções -X <exclude-file> e -T <include-file>
???
-----Mensagem original-----
De: Maurilio N. - Hotmail [mailto:address@hidden]
Enviada em: quarta-feira, 30 de julho de 2003 20:14
Para: address@hidden
Assunto: [shell-script] Script de Back-UP
Ola Lista...
Estou fazendo um script de Backup e estou com os sequintes problemas
1
eu recebi de uma variavel $files por ex o sequinte resultado "/usr /tmp
/var" ( Sem aspas )
e presiso tratato para ficar assim ( pensei em sed mas como ja estou no
script e nao queria fazer cache )
tar -czvf servidor.tgz /pasta$novavariavel /pasta$novavariavel
/pasta$novavariavel ( coloquei sem o / pq ele deve vir la de cima )
que o resultado final para o comando seria
tar -czvf servidor.tgz /pasta/etc /pasta/usr /pasta/var
Estou usando bash, e a strind $files veio de um aquivo que uso pra
configurar o script de backup
2
quando estou lendo o arquivo de configuracao, me deparei com o sequinte
problema
no inicio eu pensei em usar apenas as linhas abaixo, mas ai veio o
problema de se querer fazer backup de mais de uma pasta compartilhada
Share=compartilhamento
Files=arquivos_que_quero_tirar_copia1 arquivos_que_quero_tirar_copia2
arquivos_que_quero_tirar_copia3
a linha acima explica um pouco do primeiro problema
dai veio a ideia de criar assim
1Share=compartilhamento1
1Files=arquivos_que_quero_tirar_copia1 arquivos_que_quero_tirar_copia2
arquivos_que_quero_tirar_copia3
2Share=compartilhamento2
2Files=arquivos_que_quero_tirar_copia1 arquivos_que_quero_tirar_copia2
arquivos_que_quero_tirar_copia3
3Share=compartilhamento3
3Files=arquivos_que_quero_tirar_copia1 arquivos_que_quero_tirar_copia2
arquivos_que_quero_tirar_copia3
como disse acima uso o sed pra filtrar a as linhas e jogo em loop
Soocoorrooooooo, sera que alguem pode me ajudar,!!!!!!!!!
Pra vc's entenderem eu criei assim
######### scrip.sh #######
e o script principal, ele se basei no bkp.conf para saber quais sao os
arquivos dos server que tem as variaveis
######### bkp.config #######
neste arquivo vao os nomes dos arquivo que contem o backup a ser feito e
devo defini no futuro 3 formas de backup
1 - uma copia em hd e outra em fita ( diario )
2 - local, um backup diario que começa e depois de ok mata o anterior
3- backup semanal, ele cria varios arquivos na maquina, bkp-segunta,
bkp-terca,...... e o ultimo e sempre o do dia anterior ( em loop )
######### server.bkp #######
arquivo onde tem as variaveis Server, File sistem e assim vai.......
Ps: trabalhei tudo em echo pra so pra teste....
Abraço
Maurilio N.
Abaixo o que ja comecei a fazer
script.sh
########################################################################
##################################################################
#!/bin/bash
clear
configfile="bkp.config"
for filecfg in `sed -e /#/d $configfile`
do
echo --------------------------------------
echo $filecfg
echo --------------------------------------
server=`grep "Server=" $filecfg |sed -e /#/d -e s/Server=//`
user=`grep "User=" $filecfg |sed -e /#/d -e s/User=//`
pass=`grep "Password" $filecfg |sed -e /#/d -e s/Password=//`
fstype=`grep "FSType=" $filecfg |sed -e /#/d -e s/FSType=//`
share=`grep "Share" $filecfg |sed -e /#/d -e s/Share=//`
files=`grep "Files=" $filecfg |sed -e /#/d -e s/Files=//`
#Testando e Montado
#NFS File Sistem
if [ "$fstype" == "nfs" ]
then
echo "mkdir /mnt/bkp/$server"
for share in $share
do
echo "mkdir /mnt/bkp/$server$share"
mountpoint="/mnt/bkp/$server$share/"
echo "NFS - mount -t $fstype $server:$share $mountpoint"
echo " tar -czvf $server-bkp.tar.gz $varfiles"
done
fi
#SMB File Sistem
if [ "$fstype" == "smb" ]
then
echo "mkdir /mnt/bkp/$server"
for share in $share
do
echo "mkdir /mnt/bkp/$server/$share"
mountpoint="/mnt/bkp/$server/$share/"
smbserverpath='\\'$server'\'$share'\'
echo "SMB - mount -t $fstype $smbserverpath $mountpoint -o
username=$user,password=$pass"
echo " tar -czvf $server-bkp.tar.gz $varfiles"
done
fi
#Local Server
if [ "$server" == local ]
then echo LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCAL
echo "tar -czvf $server-bkp.tar.gz $files"
fi
#Mostrando Variaveis
echo Variaveis-----------------------------
echo "Server = $server"
echo "User = $user"
echo "Pass = $pass"
echo "FS Type = $fstype"
echo "Share = $share"
echo "Files = $files"
echo "Mount Point = $mountpoint"
echo "SMB Server = $smbserverpath"
echo --------------------------------------
done
########################################################################
##################################################################
bkp.conf
########################################################################
##################################################################
#use only names of files = servers to make back-up
#To Impreve you Back-Up, leave localhost file in last position
gdrinet.bkp
gdrweb.bkp
local.bkp
########################################################################
##################################################################
server.bkp
########################################################################
##################################################################
########################################################################
#######
# Server=server (if server = local, please only specif "Files="
#
# User=username
#
# Password=password
#
# FSType="fs type" ex: nfs, smb
#
# Share="shared name folder" (if you use smb fs type only a shared point
#
# ex: mail, but if you use a nfs fs, type a fully path for nfs
#
# ex: /var/mail)
#
# Files="path of files or * to all files in shared folder
#
########################################################################
#######
# Server
Server=server
User=root
Password=server_senha
FSType=nfs
Share=/etc
Share=/local
Share=/usr
Files=/tmp /var /local
########################################################################
##################################################################
PPs: aceito ideias e desculpem meu pobre ingles....
[As partes desta mensagem que não continham texto foram removidas]
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação,
como perl, C etc. Quem insistir em não seguir esta regra será moderado
sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html