Eu gostaria de copiar squid.conf
de um servidor para outro.
- Os servidores não se falam. Eu gostaria de passar pela minha estação de trabalho.
- Ambos os servidores têm o arquivo, portanto ele será substituído no destino.
- Os arquivos têm
600
permissão e pertencem à raiz. - o login root via ssh está desativado (
PermitRootLogin no
). - Eu gostaria de fazê-lo em uma linha, se possível, pois fará parte de um guia de configuração.
Eu sei fazer
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
copiar arquivos entre servidores e preservar permissões. No entanto, neste caso, receberei "Permissão negada".
Eu também sei que posso fazer isso:
ssh -t source 'sudo cat /etc/squid/squid.conf'
Dessa forma, o -t
sudo pode solicitar a senha de administrador antes de enviar o conteúdo do arquivo.
O problema é que não sei como combinar essas técnicas em algo que solicite a senha do sudo em cada servidor e transfira o arquivo para o seu destino. Isso é possível?
ATUALIZAÇÃO : Aqui está o melhor que eu poderia apresentar:
ssh -t source 'sudo tar czf /tmp/squid.tgz -C /etc/squid squid.conf' && \
ssh source 'cat /tmp/squid.tgz' | \
ssh target 'cat >/tmp/squid.tgz' && \
ssh -t source 'sudo rm /tmp/squid.tgz' && \
ssh -t target \
'sudo tar xzf /tmp/squid.tgz -C /etc/squid && sudo rm /tmp/squid.tgz'
Chamar isso de one-liner parece um exagero. Acho que vou dividi-lo para separar as etapas no guia de configuração.