BACKUP COM EXEÇÃO DE PASTA

1. BACKUP COM EXEÇÃO DE PASTA

Cesar Augusto Casett
cesarnt

(usa Debian)

Enviado em 29/03/2016 - 10:48h

Bom dia, sou novato no linux, fiz um script para copiar pasta dentro do linux, ele funciona direitnho, mais dentro dessa pasta que quero copiar tem uma pasta que nao quero copiar, segue o script.


#!/bin/sh
#
#
#
#
# Confs do script
# Onde, DIR_ORIG é o diretório a ser backupeado e DIR_DEST é o
# diretório para onde vai o arquivo copiado e BKP_NAME é o nome ao
# qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"

rm -rf /home//backup*

# copia do diretório de origem diretamente no diretório de destino
cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"


# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0


com esse scrip faço backup da pasta arquivos para dentro do /home/backup funciona direitinho, só que dentro da pasta arquivos tem uma pasta chamada teste que não quero copiar, tem alguma maneira de fazer isso.


  


2. Re: BACKUP COM EXEÇÃO DE PASTA

Renan Arantes
R3nan

(usa Debian)

Enviado em 29/03/2016 - 12:28h

de uma pesquias sobre o rsync esse cara vai te atender perfeitamente e ainda vai melhorar a forma que vc faz backup


3. Re: BACKUP COM EXEÇÃO DE PASTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/03/2016 - 13:52h

cesarnt escreveu:
Bom dia, sou novato no linux, fiz um script para copiar pasta dentro do linux, ele funciona direitnho, mais dentro dessa pasta que quero copiar tem uma pasta que nao quero copiar, segue o script.
#!/bin/sh
# Confs do script
# Onde, DIR_ORIG é o diretório a ser backupeado e DIR_DEST é o
# diretório para onde vai o arquivo copiado e BKP_NAME é o nome ao
# qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"
rm -rf /home//backup*
# copia do diretório de origem diretamente no diretório de destino
cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"
# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0
com esse scrip faço backup da pasta arquivos para dentro do /home/backup funciona direitinho, só que dentro da pasta arquivos tem uma pasta chamada teste que não quero copiar, tem alguma maneira de fazer isso.

---------------------------------------------------------------------------------------------------------------------------------------------------------------
Boa tarde, cesarnt.
Com o comando:
find -wholename './teste' -prune -o -print 

É listado o conteúdo do DIRETÓRIO corrente e "SUBDIRETÓRIOS", exceto o "SUB-DIR" "teste"
Com este outro:
find -maxdepth 1 -type f -iname "*.*" 

São ignorados TODOS "SUBDIRETÓRIOS"
O comando abaixo, copia a "saída" do find para a pasta BKP.
find -wholename './teste' -prune -o -print -exec cp {} BKP/ \;

É isso!

Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)


Att.:
Marcelo





4. backup

Cesar Augusto Casett
cesarnt

(usa Debian)

Enviado em 30/03/2016 - 12:33h

Boa tarde marcelo, voce poderia me explicar melhor como eu uso esses comandos, principalmente o primeiro uqe você me passou e como posso implementar no meu script para funcionar de acordo com o uqe preciso? muito obrigado desde ja.


5. Re: BACKUP COM EXEÇÃO DE PASTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/03/2016 - 16:11h

cesarnt escreveu:

Boa tarde Marcelo, você poderia me explicar melhor como eu uso esses comandos, principalmente o primeiro uqe você me passou e como posso implementar no meu script para funcionar de acordo com o que preciso? muito obrigado desde já.

--------------------------------------------------------------------------------------------------------------------------------------------------
Boa tarde Cesar.
O comando é:
find -wholename './teste' -prune -o -print
Na linha acima, o que está em negrito, é a sintaxe do comando.
Esse comando BUSCA os arquivos no diretório ATUAL e subdiretórios, EXCETO na pasta './teste'

Este outro: find -wholename './teste' -prune -o -print -exec cp {} BKP/ \;
Além de procurar, ele EXECUTA o comando cp para a pasta BKP

Inserido no seu SCRIPT:

#!/bin/sh
# Confs do script
# Onde:
#DIR_ORIG é o diretório a ser backupeado
#DIR_DEST é o diretório para onde vai o arquivo copiado
#BKP_NAME é o nome ao qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"
rm -rf /home//backup*
# copia do diretório de origem diretamente no diretório de destino
#cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"
find -wholename './teste' -prune -o -print -exec cp {} BKP/ \;
# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0


Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)


Att.:
Marcelo


6. BACKUP

Cesar Augusto Casett
cesarnt

(usa Debian)

Enviado em 02/04/2016 - 12:59h

Boa tarde Marcelo seu comando nao funcionou!

Com o comando que você me passou esse find -wholename './teste' -prune -o -exec cp {} BKP/ \;

não aparece nem erro mais não copia nada!

Só para lembra meu script esta assim:


pasta que quero copiar tem uma pasta que nao quero copiar, segue o script.
#!/bin/sh
# Confs do script
# Onde, DIR_ORIG é o diretório a ser backupeado e DIR_DEST é o
# diretório para onde vai o arquivo copiado e BKP_NAME é o nome ao
# qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"
rm -rf /home//backup*
# copia do diretório de origem diretamente no diretório de destino
cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"
# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0
com esse scrip faço backup da pasta arquivos para dentro do /home/backup funciona direitinho, só que dentro da pasta arquivos tem uma pasta chamada teste que não quero copiar, tem alguma maneira de fazer isso.





7. Re: BACKUP COM EXEÇÃO DE PASTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/04/2016 - 15:28h

cesarnt escreveu:
Boa tarde Marcelo seu comando nao funcionou!
Com o comando que você me passou esse find -wholename './teste' -prune -o -exec cp {} BKP/ \;
não aparece nem erro mais não copia nada!


Boa tarde, cesarnt.
Me desculpe, esqueci do "-print", agora esta certo . . .
find -wholename './teste' -prune -o -print -exec cp {} BKP/ \; 


Inserido no seu SCRIPT:
#!/bin/sh
# Confs do script
# Onde:
#DIR_ORIG é o diretório a ser backupeado
#DIR_DEST é o diretório para onde vai o arquivo copiado
#BKP_NAME é o nome ao qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"
rm -rf /home//backup*
# copia do diretório de origem diretamente no diretório de destino
#cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"
find -wholename './teste' -prune -o -print -exec cp {} "$DIR_DEST" \;
# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0



-----------------------------------------------------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
-----------------------------------------------------------------------------------------------------------------------------------
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
-----------------------------------------------------------------------------------------------------------------------------------


Abç.:
Marcelo




8. BACKUP

Cesar Augusto Casett
cesarnt

(usa Debian)

Enviado em 02/04/2016 - 17:20h

Boa tarde MSOLIVER, desculpe te encomodar novamente, mais aconteceu outro pequeno problema!
agora o script copia os arquivos da pasta onde o arquivo do script esta!
como esta ai entrei no diretório onde esta o script e mais 3 que estou fazendo teste, e copia osmesmos e nao a pasta conforme o script

root@debian:~# cd /script/
root@debian:/script# ls
bkp.segunda.sh bkp.sh firewall1.sh firewall.sh
root@debian:/script# ls -l
total 16
-rwxrwxrwx 1 root root 762 Abr 2 17:05 bkp.segunda.sh
-rwxrwxrwx 1 root root 459 Mar 16 19:37 bkp.sh
-rwxrwxrwx 1 root root 240 Mar 26 14:08 firewall1.sh
-rwxrwxrwx 1 root root 738 Abr 2 17:06 firewall.sh
root@debian:/script# ./bkp.segunda.sh
.
cp: omitindo o diretório "."
./bkp.sh
./bkp.segunda.sh
./firewall.sh
./.bkp.segunda.sh.swp
./firewall1.sh
./.bkp.segunda.sh.swo
Seu backup foi realizado com sucesso.
Diret▒rio: /dados/
Destino: /hd/backups/segunda-feira/
root@debian:/script#


SCRIPT como voce me enviou


Inserido no seu SCRIPT:
#!/bin/sh
# Confs do script
# Onde:
#DIR_ORIG é o diretório a ser backupeado
#DIR_DEST é o diretório para onde vai o arquivo copiado
#BKP_NAME é o nome ao qual será compactado o diretório.
DATA=`date +%d-%m-%Y-%H.%M`
DIR_ORIG="/arquivos/"
DIR_DEST="/home/backup/"
rm -rf /home//backup*
# copia do diretório de origem diretamente no diretório de destino
#cp -R -p ${DIR_ORIG} ${DIR_DEST}-"$DATA"
find -wholename './teste' -prune -o -print -exec cp {} "$DIR_DEST" \;
# mensagem de resultado
echo "Seu backup foi realizado com sucesso."
echo "Diretório: ${DIR_ORIG}"
echo "Destino: ${DIR_DEST}${BKP_NAME}";
exit 0







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts