Copiando para um sistema de arquivos NTFS em uma máquina remota enquanto pré-formando metadados

0

Eu quero copiar um monte de arquivos para uma partição NTFS em uma máquina remota enquanto aguardo as datas do arquivo. Preservar metadados em uma cópia local já é complicado em um sistema de arquivos NTFS:

$ cp -p testfile /windows/c/
cp: die Zeiten für '/windows/c/testfile' werden beibehalten: Vorgang nicht zulässig

(Traduzido: "tempos de preservação não são admissíveis")

Funciona apenas ao copiar como root:

$ sudo cp -p testfile /windows/c/

Isso já é estranho, mas ainda não sei uma solução melhor.

Mas como copiar para uma máquina remota? Eu gostaria de fazer:

$ scp -p testdir root@remote:/windows/c/

Mas a máquina remota tem apenas 'sudo', sem acesso de senha para 'root'. Eu quero deixar assim. Eu poderia fazer:

$ tar testdir | ssh remote sudo tar x --directory=/windows/c

mas não consigo inserir a senha do 'sudo' dessa maneira. Eu também tentei

remote$ mkfifo /tmp/channel.tar
remote$ sudo tar xf /tmp/channel.tar --directory=/windows/c
$ mkdir /tmp/remote-tmp
$ sshfs remote:/tmp /tmp/remote-tmp
$ tar cf /tmp/remote-tmp/channel.tar testdir

mas nada acontece na máquina remota. Talvez o sshfs não suporte FIFOs? Eu não tenho mais ideia.

    
por Lemming 16.08.2018 / 12:45

2 respostas

1

O truque de pipe parece funcionar na máquina remota localmente. O SSHFS parece ser o bloqueador. Eu encontrei um caminho de trabalho sem o SSHFS:

remote$ mkfifo /tmp/channel.tar
remote$ sudo tar xf /tmp/channel.tar --directory=/windows/c
$ tar c testdir | ssh remote dd of=/tmp/channel.tar
    
por 16.08.2018 / 16:14
0

Usar o tar como o contêiner para preservar as informações do arquivo é uma boa ideia.

Se as senhas não forem uma opção, você sempre poderá adicionar uma chave ssh à conta raiz na máquina remota e fazer a autenticação baseada em certificado.

    
por 16.08.2018 / 16:20