Piping um tarball de um servidor unix para um servidor windows via SSH

1

Em uma vida passada como um administrador unix, muitas vezes eu transferia arquivos remotamente, tarando-os para stdout e canalizando essa saída através de SSH. Às vezes eu coloco um "tar -xfp -" na outra ponta do pipe como uma maneira de transferir arquivos com permissões. Hoje eu revisei essa estratégia, exceto que havia duas chaves de macaco. O primeiro que eu estava copiando para uma máquina windows, e o segundo foi que eu não poderia ssh como root para o servidor que eu estava fazendo backup. O Sudo funciona apenas a partir de um TTY, portanto, fazer login como minha conta não reforçada não funcionou.

No final, alguém encontrou a senha de root e descobriu que logins raiz baseados em senha eram permitidos. Então eu consegui facilmente criar o backup:

c:\> plink -batch -pw SECRET root@someServer tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > file.tar.bz2

No entanto, como a máquina windows roda o winsshd, eu quero saber se é possível puxar o tarball da caixa unix para a caixa windows, ao invés de empurrá-lo. O comando que tentei foi:

tar --exclude=/dev --exclude=/sys --exclude=/proc -cjf - / | ssh [email protected] "type con > d:\foo.tar.bz2"

Isso leva ao arquivo que está sendo criado na máquina do Windows, mas nenhum dado está sendo gravado. Existe uma maneira de fazer do jeito que eu quero?

    
por Justin Dearing 09.09.2010 / 23:33

1 resposta

1

Existe algum motivo para você não estar usando scp ? Dado que você tem acesso root na máquina unix, parece que você deve ser capaz de passar por cima de qualquer coisa. Você deve ser capaz de enviar ssh para a caixa unix, emitir o comando:

tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > ~/file.tar.bz2

Em seguida, na caixa do windows, use:

scp root@someServer:~/file.tar.bz2 .
(password prompt)
    
por 10.09.2010 / 08:15