Re: [FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-12 Por tôpico Paulo Henrique - BSDs Brasil
Opa Saudações,

Em 12/04/2014 09:46, Nilton OS escreveu:
> Porque não use rsync, acho que é mais simples, desse modo não precisar
> passar senha de user.
>
> Coloca rsync server na máquina destino, configura os acesso e pronto.
Valeu a dica Nilton, no passado já usava, só que acabava o backup não 
concluindo antes do inicio do expediente e o servidor ficava um pouco 
carregado.
A diretoria pediu backup completo diário e não quer incremental.
>
>
>
> ..
>   *Nilton OS* | *Working Linux 15 years ago* |
> linuxpro.com.br
>
> *"**Só tem o direito de criticar aquele que pretende ajudar. AL"*
>
>
> Em 12 de abril de 2014 09:03, Renato Botelho  escreveu:
>
>> On Sex, 2014-04-11 at 17:59 -0300, Paulo Henrique - BSDs Brasil wrote:
>>> Saudações,
>>>
>>> Estou com um problema quanto a redirecionamento do stdout e stderror do
>>> scp para um arquivo durante a copia.
>>> Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler
>>> informou porem sem exito[1].
>>>
>>> E todos os redirecionamentos que tentei não deram certo.
>> A primeira pergunta é, qual o shell? (/bin/sh, /bin/csh)? Como você não
>> postou o shebang aqui não dá pra saber e isso muda muita coisa. Vou
>> responder considerando que seja /bin/sh, se não for me dá um toque.

Renato, estou usando o /bin/sh.

>>
>>> #Variaveis Gerais não alteraveis.
>>>
>>> DATA=`date "+%d-%m-%Y"`
>>> SSHSERVER=hostname.intranet
>>> SSHUSER=root
>>> DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"
>> Uma boa prática aqui é sempre colocar as variáveis entre {} para evitar
>> que o shell se confunda e pense que o @ é parte do nome da variável, por
>> exemplo:
>>
>> DIRBASE="${SSHUSER}@${SSHSERVER}:..."
>>
>> Outra pergunta, o diretório ${DATA} existe no servidor remoto? Se ele
>> não existir vai dar problema se eu me lembro bem. O que você pode fazer
>> pra garantir é rodar algo assim antes:
>>
>> ssh -p  ${SSHUSER}@${SSHSERVER} \
>>  "mkdir -p /mnt/BKPS/DOMINIO01/${DATA}"

Achei que esse lance de {} era coisa apenas do csh, pois nele sempre 
utilizei assim como descreveu, sem as chaves da erro.
No scp não dá erro quanto ao diretorio desde que esse seja o ultimo, se 
tiver uma hierarquia de dois ou mais ai acusa erro de directory not found.
No caso abaixo do diretório DOMINIO01 o próprio scp se encarrega de 
criar o diretorio ${DATA},
>>
>>> #Iniciando o Backup
>>> echo "Entrando no diretorio do servidor de arquivos"
>>> cd /storage/Compartilhamentos/
>>> echo "Diretorio Corrente"
>>> pwd
>>>
>>>
>>> DIR=Administracao
>>> echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >>
>>> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
>>> scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa
>>> linha NÃO é escrita )
>>> echo "O Backup do Diretorio $DIR Foi concluido com exito" >>
>>> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
>> O > e o >> vai escrever ou adicionar o conteúdo do stdout no arquivo,
>> enquanto o 2> e 2>> faz o mesmo para stderr, então vale redirecionar o
>> stderr para o stdout assim você garante que tudo seja gravado.
>>
>> scp -rv -P  ${DIR} ${DIRBASE} >> /var/log/ 2>&1
>>
>> Eu fiz um pequeno teste aqui só pra comprovar:
>>
>> scp -v file server: >o 2>e
>>
>> E confirmei que o scp -v escreve em stderr, no final das contas o
>> arquivo 'o' estava vazio e o 'e' tinha os dados, então a linha com 2>&1
>> deve resolver. :)
>>
>> []s
>> --
>> Renato Botelho

Acho que estava comendo bronha no redirecionamento do stderr, agora está 
funcionando corretamente.
Afranio, não testei a sua dica, mais quando estiver com tempo irei 
fazer, valeu.

Valeu a  ajuda de todos e pelas dicas Renato, Nilton e Afrânio.


>>
>> -
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
> -
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

-- 
Paulo Henrique.
Grupo de Usuários do FreeBSD no Brasil.
Fone: (21) 96713-5042

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-12 Por tôpico Nilton OS
Porque não use rsync, acho que é mais simples, desse modo não precisar
passar senha de user.

Coloca rsync server na máquina destino, configura os acesso e pronto.




..
 *Nilton OS* | *Working Linux 15 years ago* |
linuxpro.com.br

*"**Só tem o direito de criticar aquele que pretende ajudar. AL"*


Em 12 de abril de 2014 09:03, Renato Botelho  escreveu:

> On Sex, 2014-04-11 at 17:59 -0300, Paulo Henrique - BSDs Brasil wrote:
> > Saudações,
> >
> > Estou com um problema quanto a redirecionamento do stdout e stderror do
> > scp para um arquivo durante a copia.
> > Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler
> > informou porem sem exito[1].
> >
> > E todos os redirecionamentos que tentei não deram certo.
>
> A primeira pergunta é, qual o shell? (/bin/sh, /bin/csh)? Como você não
> postou o shebang aqui não dá pra saber e isso muda muita coisa. Vou
> responder considerando que seja /bin/sh, se não for me dá um toque.
>
> > #Variaveis Gerais não alteraveis.
> >
> > DATA=`date "+%d-%m-%Y"`
> > SSHSERVER=hostname.intranet
> > SSHUSER=root
> > DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"
>
> Uma boa prática aqui é sempre colocar as variáveis entre {} para evitar
> que o shell se confunda e pense que o @ é parte do nome da variável, por
> exemplo:
>
> DIRBASE="${SSHUSER}@${SSHSERVER}:..."
>
> Outra pergunta, o diretório ${DATA} existe no servidor remoto? Se ele
> não existir vai dar problema se eu me lembro bem. O que você pode fazer
> pra garantir é rodar algo assim antes:
>
> ssh -p  ${SSHUSER}@${SSHSERVER} \
> "mkdir -p /mnt/BKPS/DOMINIO01/${DATA}"
>
> > #Iniciando o Backup
> > echo "Entrando no diretorio do servidor de arquivos"
> > cd /storage/Compartilhamentos/
> > echo "Diretorio Corrente"
> > pwd
> >
> >
> > DIR=Administracao
> > echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >>
> > /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
> > scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa
> > linha NÃO é escrita )
> > echo "O Backup do Diretorio $DIR Foi concluido com exito" >>
> > /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
>
> O > e o >> vai escrever ou adicionar o conteúdo do stdout no arquivo,
> enquanto o 2> e 2>> faz o mesmo para stderr, então vale redirecionar o
> stderr para o stdout assim você garante que tudo seja gravado.
>
> scp -rv -P  ${DIR} ${DIRBASE} >> /var/log/ 2>&1
>
> Eu fiz um pequeno teste aqui só pra comprovar:
>
> scp -v file server: >o 2>e
>
> E confirmei que o scp -v escreve em stderr, no final das contas o
> arquivo 'o' estava vazio e o 'e' tinha os dados, então a linha com 2>&1
> deve resolver. :)
>
> []s
> --
> Renato Botelho
>
> -
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-12 Por tôpico Renato Botelho
On Sex, 2014-04-11 at 17:59 -0300, Paulo Henrique - BSDs Brasil wrote:
> Saudações,
> 
> Estou com um problema quanto a redirecionamento do stdout e stderror do 
> scp para um arquivo durante a copia.
> Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler 
> informou porem sem exito[1].
> 
> E todos os redirecionamentos que tentei não deram certo.

A primeira pergunta é, qual o shell? (/bin/sh, /bin/csh)? Como você não
postou o shebang aqui não dá pra saber e isso muda muita coisa. Vou
responder considerando que seja /bin/sh, se não for me dá um toque.

> #Variaveis Gerais não alteraveis.
> 
> DATA=`date "+%d-%m-%Y"`
> SSHSERVER=hostname.intranet
> SSHUSER=root
> DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"

Uma boa prática aqui é sempre colocar as variáveis entre {} para evitar
que o shell se confunda e pense que o @ é parte do nome da variável, por
exemplo:

DIRBASE="${SSHUSER}@${SSHSERVER}:..."

Outra pergunta, o diretório ${DATA} existe no servidor remoto? Se ele
não existir vai dar problema se eu me lembro bem. O que você pode fazer
pra garantir é rodar algo assim antes:

ssh -p  ${SSHUSER}@${SSHSERVER} \
"mkdir -p /mnt/BKPS/DOMINIO01/${DATA}" 

> #Iniciando o Backup
> echo "Entrando no diretorio do servidor de arquivos"
> cd /storage/Compartilhamentos/
> echo "Diretorio Corrente"
> pwd
> 
> 
> DIR=Administracao
> echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >> 
> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
> scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa 
> linha NÃO é escrita )
> echo "O Backup do Diretorio $DIR Foi concluido com exito" >> 
> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )

O > e o >> vai escrever ou adicionar o conteúdo do stdout no arquivo,
enquanto o 2> e 2>> faz o mesmo para stderr, então vale redirecionar o
stderr para o stdout assim você garante que tudo seja gravado.

scp -rv -P  ${DIR} ${DIRBASE} >> /var/log/ 2>&1

Eu fiz um pequeno teste aqui só pra comprovar:

scp -v file server: >o 2>e

E confirmei que o scp -v escreve em stderr, no final das contas o
arquivo 'o' estava vazio e o 'e' tinha os dados, então a linha com 2>&1
deve resolver. :)

[]s
-- 
Renato Botelho

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-11 Por tôpico Afranio Nunes
Em 12 de abril de 2014 03:38, Marcelo Gondim escreveu:

> Em 11/04/14 17:59, Paulo Henrique - BSDs Brasil escreveu:
> > Saudações,
> >
> > Estou com um problema quanto a redirecionamento do stdout e stderror do
> > scp para um arquivo durante a copia.
> > Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler
> > informou porem sem exito[1].
> >
> > E todos os redirecionamentos que tentei não deram certo.
> >
> > #Variaveis Gerais não alteraveis.
> >
> > DATA=`date "+%d-%m-%Y"`
> > SSHSERVER=hostname.intranet
> > SSHUSER=root
> > DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"
> >
> > #Iniciando o Backup
> > echo "Entrando no diretorio do servidor de arquivos"
> > cd /storage/Compartilhamentos/
> > echo "Diretorio Corrente"
> > pwd
> >
> >
> > DIR=Administracao
> > echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >>
> > /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
> > scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa
> > linha NÃO é escrita )
> > echo "O Backup do Diretorio $DIR Foi concluido com exito" >>
> > /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
> Eu não costumo fazer desse jeito não mas experimenta trocar o >> por &>
> e ver se funciona.
>
> Abração.
> Gondim
>
> >
> > Alguma luz onde estou errano ou o porque desse comportamento do scp,
> > visto que coloquei outros comandos no lugar ( ls -l  e cd $DIR && pwd &&
> > ls ) e o redirecionamento funciona.
> >
> > [1] http://www.fug.com.br/historico/html/freebsd/2012-06/msg00156.html
> >
> > Att. Paulo Henrique.
> >
> >
> >
>
> -
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


scp -rv ARQUIVO root@IP:/tmp 2>&1 |grep -v debug > teste.txt
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-11 Por tôpico Marcelo Gondim
Em 11/04/14 17:59, Paulo Henrique - BSDs Brasil escreveu:
> Saudações,
>
> Estou com um problema quanto a redirecionamento do stdout e stderror do
> scp para um arquivo durante a copia.
> Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler
> informou porem sem exito[1].
>
> E todos os redirecionamentos que tentei não deram certo.
>
> #Variaveis Gerais não alteraveis.
>
> DATA=`date "+%d-%m-%Y"`
> SSHSERVER=hostname.intranet
> SSHUSER=root
> DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"
>
> #Iniciando o Backup
> echo "Entrando no diretorio do servidor de arquivos"
> cd /storage/Compartilhamentos/
> echo "Diretorio Corrente"
> pwd
>
>
> DIR=Administracao
> echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >>
> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
> scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa
> linha NÃO é escrita )
> echo "O Backup do Diretorio $DIR Foi concluido com exito" >>
> /var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
Eu não costumo fazer desse jeito não mas experimenta trocar o >> por &> 
e ver se funciona.

Abração.
Gondim

>
> Alguma luz onde estou errano ou o porque desse comportamento do scp,
> visto que coloquei outros comandos no lugar ( ls -l  e cd $DIR && pwd &&
> ls ) e o redirecionamento funciona.
>
> [1] http://www.fug.com.br/historico/html/freebsd/2012-06/msg00156.html
>
> Att. Paulo Henrique.
>
>
>

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Redirecionamento de scp em shell script não funciona.

2014-04-11 Por tôpico Paulo Henrique - BSDs Brasil
Saudações,

Estou com um problema quanto a redirecionamento do stdout e stderror do 
scp para um arquivo durante a copia.
Pesquisando achei a mesma duvida respondida pelo Eduardo Schoedler 
informou porem sem exito[1].

E todos os redirecionamentos que tentei não deram certo.

#Variaveis Gerais não alteraveis.

DATA=`date "+%d-%m-%Y"`
SSHSERVER=hostname.intranet
SSHUSER=root
DIRBASE="$SSHUSER@$SSHSERVER:/mnt/BKPS/DOMINIO01/$DATA/"

#Iniciando o Backup
echo "Entrando no diretorio do servidor de arquivos"
cd /storage/Compartilhamentos/
echo "Diretorio Corrente"
pwd


DIR=Administracao
echo "Efetuando o backup do Compartilhamento $DIR Para hostname" >> 
/var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )
scp -rv -P  $DIR $DIRBASE >> /var/log/backups-$DIR-$DATA.log ( Essa 
linha NÃO é escrita )
echo "O Backup do Diretorio $DIR Foi concluido com exito" >> 
/var/log/backups-$DIR-$DATA.log ( Essa linha é escrita )

Alguma luz onde estou errano ou o porque desse comportamento do scp, 
visto que coloquei outros comandos no lugar ( ls -l  e cd $DIR && pwd && 
ls ) e o redirecionamento funciona.

[1] http://www.fug.com.br/historico/html/freebsd/2012-06/msg00156.html

Att. Paulo Henrique.



-- 
Paulo Henrique.
BSDs Brasil / UnixBSD.

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd