Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

1. Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

João Paulo de Vasconcelos Resende
jpvr2005

(usa Debian)

Enviado em 26/01/2012 - 17:16h

Boa tarde pessoal,
Estou tentando montar uma rotina de backup simples, porém estou apanhando muito por não ter muito conhecimento em linux.
Eu tenho um arquivo backup+date.tar dentro do diretorio raiz e queria criar um sh para copiar para um outro computador.

Primeiramente havia tentado assim:
#!/bin/sh
#
# Script para backup do servidor.
#
scp -r /backup-dados*.tar 192.168.0.16:/backup/exports/

porém ele não reconhece o * como sendo um valor para pegar todos os arquivos que começam com backup-dados e tenham a extensao .tar


Então tentei desta forma;


#!/bin/sh
#
# Script para backup do servidor.
#
ARQ=`*.tar`
scp -r $ARQ 192.168.0.16:/backup/exports/

porém tenho o retorno que a linha 5 (ARQ=`*.tar`) não é um comando.



Alguém poderia me dar uma mão? Vi alguns scripts até prontos aqui no VOL, porém quero aprender aos poucos pois sou iniciante em linux.

Valeu ai!


  


2. Re: Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 26/01/2012 - 20:05h

jpvr2005 escreveu:

Primeiramente havia tentado assim:
#!/bin/sh
#
# Script para backup do servidor.
#
scp -r /backup-dados*.tar 192.168.0.16:/backup/exports/

porém ele não reconhece o * como sendo um valor para pegar todos os arquivos que começam com backup-dados e tenham a extensao .tar


O comando está certo, vc chegou a ver se o caminho do /backup-dados*.tar é realmente este?
Desta forma que vc inseriu, quer dizer que esta pasta está na raíz do sistema. Se estiver no
diretório corrente, use apenas (tire a / antes de backup-dados):



scp -r backup-dados*.tar 192.168.0.16:/backup/exports/





Então tentei desta forma;

#!/bin/sh
#
# Script para backup do servidor.
#
ARQ=`*.tar`
scp -r $ARQ 192.168.0.16:/backup/exports/

porém tenho o retorno que a linha 5 (ARQ=`*.tar`) não é um comando.


Quando vc coloca uma string entre crases "` `" ou entre "$()" vc atribiu que ela seja um comando. Então, com certeza vai dar erro, pois o "*.tar" não é um comando.

Se vc quer copiar todos os *.tar da pasta utitilize desta forma:


scp -r /caminho_dos_arquivos_tar/*.tar 192.168.0.16:/backup/exports/


Lembre-se que é muito importante vc inserir sempre o caminho completo, independente se os arquivos estão no diretório corrente do seu script.

Boa sorte!


3. Re: Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

João Paulo de Vasconcelos Resende
jpvr2005

(usa Debian)

Enviado em 26/01/2012 - 20:38h

alexandregms escreveu:

[quote]jpvr2005 escreveu:

Primeiramente havia tentado assim:
#!/bin/sh
#
# Script para backup do servidor.
#
scp -r /backup-dados*.tar 192.168.0.16:/backup/exports/

porém ele não reconhece o * como sendo um valor para pegar todos os arquivos que começam com backup-dados e tenham a extensao .tar


O comando está certo, vc chegou a ver se o caminho do /backup-dados*.tar é realmente este?
Desta forma que vc inseriu, quer dizer que esta pasta está na raíz do sistema. Se estiver no
diretório corrente, use apenas (tire a / antes de backup-dados):



scp -r backup-dados*.tar 192.168.0.16:/backup/exports/







Opa, Valeu alexandre, acho que é esse o meu erro.
Quando eu logo no sistema então ele não vai pra esse diretorio raiz ne?
Amanha vou testar lá e retorno aqui com o resultado.
Muito obrigado meu caro!



4. Pegar somente arquivos do dia

João Paulo de Vasconcelos Resende
jpvr2005

(usa Debian)

Enviado em 27/01/2012 - 10:19h

Bom dia Alexandre,
Pintou uma outra dúvida aqui, por exemplo:
Para organizar melhor e para melhor entendimento meu, criei um diretorio /u/bkp.
Dentro desse bkp terá diversos arquivos *.tar, com os nomes diferenciados pelas datas, exemplo:
backup-dados-26-01-2012-11-30-00.tar
backup-dados-27-01-2012-11-30-00.tar
backup-desenv-26-01-2012-11-30-00.tar
backup-desenv-27-01-2012-11-30-00.tar
etc...

Gostaria de saber se é possivel eu usar aquele comando scp para copiar somente os arquivos do dia, que no caso seria os que foram criados dia 27/01/12.
Vi que existe a possibilidade de usar o comando find porém não entendi muito bem como usa-lo com outro comando.

Outra coisa também, é que nessa pasta de backup vai se acumulando os arquivos, a linha a seguir faria isso?

find /u/bkp -ctime +7 rm *.tar

Seria mais ou menos assim?


Valeu!


5. Re: Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 27/01/2012 - 11:45h

jpvr2005 escreveu:

Gostaria de saber se é possivel eu usar aquele comando scp para copiar somente os arquivos do dia, que no caso seria os que foram criados dia 27/01/12.
Vi que existe a possibilidade de usar o comando find porém não entendi muito bem como usa-lo com outro comando.

Outra coisa também, é que nessa pasta de backup vai se acumulando os arquivos, a linha a seguir faria isso?

find /u/bkp -ctime +7 rm *.tar

Seria mais ou menos assim?

Valeu!


Bom dia!
Eu usaria desta forma:



#!/bin/bash

# Define o dia de hoje no formato DD-MM-YYYY
TODAY=`date +%d-%m-%Y`

# Copia os arquivos de hoje com extensão .tar
scp -r /caminho/*$TODAY*.tar 172.1.1.10:/tmp/blabla


# Para remover os arquivos com extensão .tar do dia
rm -f /caminho/*$TODAY*.tar




Você pode tb usar tratamento de erros para esses casos acima. Pra vc treinar tente fazer validar cada ação tomada acima, por exemplo: "a cópia foi realizada com sucesso?", "a remoção dos arquivos ocorreu ok?". Se quiser crie mensagens para ser direcionada para arquivos de log, assim vc monitora o seu próprio script!



6. última pergunta

João Paulo de Vasconcelos Resende
jpvr2005

(usa Debian)

Enviado em 27/01/2012 - 12:52h

Entendi cara,
E no caso de eu querer deixar sempre somente os 7 últimos arquivos eu poderia usar esse comando:
find /u/bkp -ctime +7 rm *.tar

?

edit: Ou seria possivel incrementar um "-7" nesse code que vc me mostrou?

# Para remover os arquivos com extensão .tar do dia
rm -f /caminho/*$TODAY*.tar

Valeu cara!



7. Re: Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 27/01/2012 - 13:36h

jpvr2005 escreveu:

E no caso de eu querer deixar sempre somente os 7 últimos arquivos eu poderia usar esse comando:
find /u/bkp -ctime +7 rm *.tar

edit: Ou seria possivel incrementar um "-7" nesse code que vc me mostrou?

# Para remover os arquivos com extensão .tar do dia
rm -f /caminho/*$TODAY*.tar



Para vc manter os últimos 7 dias de arquivos e somente dentro do seu diretório corrente (sem contar os subdiretórios), use:



find . -maxdepth 1 -type f -atime +7 | rm -f











8. Re: Dúvida sobre Script para cópia Linux x Linux [RESOLVIDO]

João Paulo de Vasconcelos Resende
jpvr2005

(usa Debian)

Enviado em 30/01/2012 - 08:55h

Certo meu amigo, acho q todas minhas dúvidas foram esclarecidas, agora vou por a mão na massa!
Muito obrigado!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts