Ich möchte squid.conf
von einem Server auf einen anderen kopieren .
- Die Server sprechen nicht miteinander. Ich möchte meine Workstation durchgehen.
- Beide Server haben die Datei, daher wird sie auf dem Ziel überschrieben.
- Die Dateien haben die
600
Berechtigung und gehören root. - root login via ssh ist deaktiviert (
PermitRootLogin no
). - Ich würde es gerne in einer Zeile tun, wenn es möglich ist, da es Teil einer Installationsanleitung sein wird.
Ich weiß es zu tun
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
Kopieren von Dateien zwischen Servern und Beibehalten von Berechtigungen. In diesem Fall erhalte ich jedoch die Meldung "Erlaubnis verweigert".
Ich weiß auch, dass ich das kann:
ssh -t source 'sudo cat /etc/squid/squid.conf'
Auf diese Weise -t
kann sudo das Administratorkennwort anfordern, bevor der Inhalt der Datei ausgegeben wird.
Das Problem ist, dass ich nicht weiß, wie ich diese Techniken zu etwas kombinieren soll, das auf jedem Server nach dem sudo-Passwort fragt und die Datei an ihren Zielort überträgt. Ist das möglich?
UPDATE : Hier ist das Beste, was ich mir einfallen lassen konnte:
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'
Dies als Einzeiler zu bezeichnen, scheint eine Strecke zu sein. Ich denke, ich werde es nur aufteilen, um Schritte in der Setup-Anleitung zu trennen.