일반 텍스트 구성 파일을 인코딩한 다음 대상으로 "티"하려면 어떻게 해야 합니까?

일반 텍스트 구성 파일을 인코딩한 다음 대상으로 "티"하려면 어떻게 해야 합니까?

nginx.conf일반 텍스트 형식의 Nginx 구성이 있습니다. 라틴 문자와 공백 들여쓰기가 있으며 총 250줄 정도입니다. 소스에서 Nginx를 컴파일할 때 이것을 사용합니다. 소스코드를 컴파일한 후 텍스트 에디터를 이용해 생성(비어있음) nginx.conf한 후 일반 구성을 복사해서 붙여넣고 저장한 후 Nginx를 띄워 일반 구성을 사용하게 했습니다. 빌드 프로세스의 자동화 구성요소와 함께 편집기에 복사하여 붙여넣는 것은 약간 번거롭습니다.

일반 프로필은 온라인이 아닌 (적어도 가까운 미래에는) 나에게 지역적으로 보입니다. 그러므로 이는 금지되거나 curl금지 wget됩니다. 이상적으로는 바닐라를 nginx.conf단일 문자열로 인코딩한 다음 열기-복사-붙여넣기-저장-종료 댄스를 우회하여 tee서버 측에서 인코딩하고 싶습니다 .nginx.conf

워크플로는 다음과 같습니다.

  1. Nginx 소스 코드 획득 및 컴파일

  2. Nginx 스캐폴딩 빌드

  3. nginx.conftee(또는 이와 유사한) 사전 코딩된 문자열을 공급하여 자동으로 생성됩니다.

  4. 바운스 Nginx

3단계로 어떻게 진행하나요?

답변1

tee원격 서버를 사용하고 싶다면

ssh user@remote tee /path/to/nginx.conf < local-nginx.conf

이는 원격 /path/to/nginx.conf사용자가 원격 콘텐츠에 쓸 수 있다고 가정합니다.

> /dev/null표준 출력을 억제하려면 추가합니다 .

답변2

존재하다코멘트연결을 통해 원격 서버에 Nginx 애플리케이션을 구축했지만 구성 파일은 로컬 시스템에 저장되어 ssh있다고 설명합니다.nginx.conf

이 경우 다음을 scp사용하여 구성 파일을 로컬 시스템에서 원격 시스템으로 직접 복사하십시오.

ssh rUser@rHost                              # Connect to remote system
… build nginx etc …

scp my_nginx.conf rUser@rHost:nginx.conf    # Copy from current directory to $HOME on remote

이 명령은 대상에 대한 선택적 경로를 사용합니다( scp경로가 로 시작하지 않는 경우 원격 사용자의 경로에 상대적). 대상 파일에 직접 쓸 수 있는 권한이 없고 쓸 수 없는 경우 대신 with를 사용할 수 있습니다. 하지만 이것은 단순히 파이프로 연결할 수 없기 때문에 더 추악합니다.$HOME/scproot@rHostsshsudo표준 입력또한 비밀번호 입력도 허용합니다 sudo.

scp my_nginx.conf rUser@rHost:/tmp/nginx.conf.$$ &&
    ssh -t rUser@rHost "sudo sh -c 'cat /tmp/nginx.conf.$$ >/etc/nginx.conf'; rm -f /tmp/nginx.conf.$$"

이 구성은 필요한 경우 ssh … sudo sh -c '…'Nginx를 다시 시작할 수 있는 공간도 제공합니다.

관련 정보