Я хотів би скопіювати squid.conf
з одного сервера на інший.
- Сервери не розмовляють між собою. Я хотів би пройти свою робочу станцію.
- На обох серверах є файл, тому він буде перезаписаний у ціль.
- Файли мають
600
дозвіл і належать root. - root вхід через ssh відключений (
PermitRootLogin no
). - Я хотів би зробити це в одному рядку, якщо це можливо, оскільки це буде частиною посібника з налаштування.
Я знаю, що робити
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
копіювати файли між серверами та зберігати дозволи. Однак у цьому випадку я отримаю "Дозвіл відмовлено".
Я також знаю, що можу це зробити:
ssh -t source 'sudo cat /etc/squid/squid.conf'
Таким чином, -t
sudo дозволяє запитувати пароль адміністратора, перш ніж виводити вміст файлу.
Проблема полягає в тому, що я не знаю, як поєднати ці методи в те, що попросить пароль sudo на кожному сервері та перенести файл за призначенням. Чи можливо це?
ОНОВЛЕННЯ : Ось найкраще, що я міг придумати:
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'
Називати це одноколісним здається розтягуванням. Думаю, я просто розбию його на окремі кроки в посібнику з налаштування.