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 6666 ${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 6666 $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 6666 ${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