Tôi muốn sao chép squid.conf
từ máy chủ này sang máy chủ khác.
- Các máy chủ không nói chuyện với nhau. Tôi muốn đi qua máy trạm của tôi.
- Cả hai máy chủ đều có tệp, vì vậy nó sẽ được ghi đè lên mục tiêu.
- Các tập tin có sự
600
cho phép và được sở hữu bởi root. - đăng nhập root thông qua ssh bị vô hiệu hóa (
PermitRootLogin no
). - Tôi muốn làm điều đó trong một dòng, nếu có thể, vì nó sẽ là một phần của hướng dẫn thiết lập.
Tôi biết phải làm
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
để sao chép các tập tin giữa các máy chủ và giữ quyền. Tuy nhiên, trong trường hợp này tôi sẽ nhận được "Quyền bị từ chối".
Tôi cũng biết tôi có thể làm điều này:
ssh -t source 'sudo cat /etc/squid/squid.conf'
Bằng cách này, -t
sudo cho phép hỏi mật khẩu quản trị viên trước khi xuất nội dung của tệp.
Vấn đề là, tôi không biết cách kết hợp các kỹ thuật đó vào một cái gì đó sẽ yêu cầu mật khẩu sudo trên mỗi máy chủ và chuyển tệp đến đích. Điều này có thể không?
CẬP NHẬT : Đây là điều tốt nhất tôi có thể đưa ra:
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'
Gọi đây là một lót có vẻ như một căng. Tôi nghĩ rằng tôi sẽ chia nó thành các bước riêng biệt trong hướng dẫn thiết lập.