lighttpd 포트를 변경하는 Bash 스크립트

lighttpd 포트를 변경하는 Bash 스크립트

알겠습니다. 또 다른 질문입니다. 포트를 가져온 다음 이를 교체하여 구성 파일에 넣는 스크립트를 작성 중입니다. 예를 들어.

이 명령을 실행하면...(cat /var/log/lighttpd/access.log | tail -1) 마지막 줄은 숫자 12입니다. 그런 다음 (sed -i 's/ 8162/81 ??????/' /etc/lighttpd/lighttpd.conf)에서 cat (/var/log/lighttpd/access.log | tail -1)을 출력하고 싶습니다. 포트 8162와 /8112는 12입니다. 기본적으로 출력 12를 가져온 다음 새 포트 8112를 생성합니다. 변수 등을 생성하려면 어떻게 해야 합니까? awk가 유용합니까? 아니면 순차적으로 뭔가를 해야 할 수도 있습니다. 나는 모른다. 어떤 아이디어나 생각이 있나요? ? ?

답변1

다음 방법을 시도해 보세요.

  1. 캡처 12변수: var=$(cat /var/log/lighttpd/access.log | tail -1), 그런 다음
  2. 이것을 sed명령에 넣으세요:

    sed -i.bak "s/8162/81$var/" /etc/lighttpd/lighttpd.conf
    

    또는

  3. cat이제 다음과 같이 sed에 명령줄을 추가합니다.

    sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
    

경고하다:

  1. 이 구문에 문제가 발생할 경우를 대비하여 항상 백업을 만드십시오.

    sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
    
  2. 사용된 큰따옴표에 유의하십시오 ". 큰따옴표가 없으면 명령이 변수를 처리하지 않거나$(cat /var/log/lighttpd/access.log | tail -1)

관련 정보