Vorrei copiare squid.conf
da un server all'altro.
- I server non parlano tra loro. Mi piacerebbe passare attraverso la mia postazione di lavoro.
- Entrambi i server hanno il file, quindi verrà sovrascritto sulla destinazione.
- I file hanno il
600
permesso e sono di proprietà di root. - login root tramite SSH è disabilitata (
PermitRootLogin no
). - Mi piacerebbe farlo in una riga, se possibile, poiché farà parte di una guida all'installazione.
Lo so fare
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
per copiare file tra server e conservare le autorizzazioni. Tuttavia, in questo caso riceverò "Autorizzazione negata".
So anche che posso farlo:
ssh -t source 'sudo cat /etc/squid/squid.conf'
In questo modo -t
consente a sudo di richiedere la password dell'amministratore prima di inviare il contenuto del file.
Il problema è che non so come combinare quelle tecniche in qualcosa che chiederà la password sudo su ciascun server e trasferirà il file alla sua destinazione. È possibile?
AGGIORNAMENTO : Ecco il meglio che ho potuto inventare:
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'
Chiamare questo un one-liner sembra un tratto. Penso che lo analizzerò per separare i passaggi nella guida all'installazione.