Tenho alguns arquivos compactados que quero transferir para um servidor remoto e extrair diretamente na unidade de destino.
É semelhante a este comando
dd if=/dev/sda bs=5M conv=fsync status=progress | gzip -c -9 | ssh user@DestinationIP 'gzip -d | dd of=/dev/sda bs=5M'
A partir desta pergunta sobre falha do servidor .
No meu caso o arquivo já está compactado então gzip -9
não será necessário adicioná-lo à fonte.
Seria mais ou menos assim:
load-some-file /drive/image.tar.gz | ssh user@DestinationIP 'gzip -d | dd of=/dev/sda bs=5M'
Qual comando deveria load-some-file
ser?
Um comando como esse será cat
suficiente ou dd
ele será suficiente?
A saída de pode dd
ser enviada ssh
diretamente para o comando?
Nenhum comando. Faz com que
ssh
ele mesmo leia o arquivo, ou seja, redireciona sua entrada:cat /drive/image.tar.gz | ssh …
deve funcionar, mas esse é um uso inútil decat
.Sim, em princípio. Há muitos comandos que podem emitir sua entrada como está, veja esta resposta . Ainda assim, se você só quer
ssh
obter o arquivo em seu stdin, então o redirecionamento de entrada será suficiente.