squid.conf
한 서버에서 다른 서버로 복사하고 싶습니다 .
- 서버가 서로 대화하지 않습니다. 워크 스테이션을 살펴보고 싶습니다.
- 두 서버 모두 파일이 있으므로 대상에서 덮어 씁니다.
- 파일에
600
권한이 있으며 루트가 소유합니다. - ssh를 통한 루트 로그인이 비활성화되었습니다 (
PermitRootLogin no
). - 설치 안내서의 일부이므로 가능하면 한 줄로하고 싶습니다.
할 줄 알아
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
서버간에 파일을 복사하고 권한을 보존합니다. 그러나이 경우 "Permission denied"가 표시됩니다.
또한 내가 할 수 있다는 것을 알고 있습니다.
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'
이것을 하나의 라이너라고 부르는 것은 스트레칭과 같습니다. 설치 안내서의 단계를 구분하기 위해 세분화하겠습니다.