[Linux 셸 스크립트] 네트워크 - 064 셸 스크립트로 CGI 실행하기
본문 바로가기
IT 이야기/Linux 셸 스크립트

[Linux 셸 스크립트] 네트워크 - 064 셸 스크립트로 CGI 실행하기

by 찬찬이 아빠 2021. 4. 6.
반응형
  1. 사용 명령어

(1) echo

(2) uptime

 

  2. 키워드 & 사용처

(1) 키워드

CGI

 

(2) 사용처

셸 스크립트로 CGI 프로그램을 작성하고 싶을 때 사용합니다.

 

  3. 실행 예제
파일을 /cgi-bin/test.cgi에 설치
웹 브라우저 주소창에 localhost/cgi-bin/test.cgi 입력
Test CGI: uptime
13:59 up 1 day, 15:31, 2 users, load averages: 3.01 1.87 1.68

 

 

  4. 스크립트

#!/bin/sh

 

# CGI 헤더 출력

echo "Content-Type: text/plain"         

echo

 

# 명령어를 실행해서 브라우저에 표시

echo "Test CGI: uptime"                 

uptime

 

 

  5. 해설

이 스크립트는 CGI 프로그램으로 셸 스크립트를 실행합니다. 웹 브라우저로 접속하면 uptime 명령어 출력 결과를 표시해서 서버 로드 평균치 등을 확인할 수 있습니다.

 

CGI 프로그램을 작성할 때 프로그래밍 언어로 보통 펄이나 루비를 자주 사용합니다 .따라서 셸 스크립트로 CGI 프로그램을 작성하는 것이 이상해 보일 수도 있지만 CGI 프로그램을 꼭 펄로 작성해야 하는 것은 아니고 웹 브라우저가 해석 가능하도록 적절히 출력할 수만 있으면 언어는 뭐라도 상관없습니다.

 

예제처럼 명령어 출력 결과를 웹 브라우저에서 표시하고 싶을 때는 셸 스크립트가 편리합니다.

 

에서 CGI 헤더를 출력합니다. 명령어 출력 결과를 그대로 브라우저에서 표시하므로 text/plain으로 출력합니다. 또한 HTTP 헤더 부분과 본문 부분을 빈 줄로 나눠야 하므로빈echo 명령어를 써서 줄바꿈을 출력합니다.

 

에서 HTTP 응답의 본문부분 즉, 웹 브라우저에 표시하는 부분을 출력합니다. "Test CGI: uptime"이라는 문자열을 echo 명령어로 표시한 다음 uptime 명령어를 실행합니다. uptime 명령어는 서버 기동 시간과 과거 1분/5분/15분 로드 평균값을 표시하는 명령어입니다.

$ uptime
23:34 up 2 days, 3:41, 2 users, load averages: 2.23 2.21 .198

이렇게 CGI로 셸 스크립트를 사용하면 웹 브라우저에서 실행 결과를 확인할 수 있습니다. 그 외의 셸 스크립트로 CGI를 사용하는 예로는 서버 구축 활인용이 있습니다. 최소 구성으로 FreeBSD나 CentOS를 설치하면 펄이 설치되지 않습니다. 서버 구축 작업과 프로그램 개발을 동시 진행하는 프로젝트에서 임시로 웹 서버를 실행해서 클라이언트에서 CGI에 접속 가능한지 확인하는 경우가 있습니다. 이때 셸 스크립트로 작성한 CGI 프로그램을 설치해서 클라이언트에서 접속을 미리 확인핼 볼 수 있습니다.

 

 

<주의사항>₩

서버에 부하가 걸리는 명령어를 실행하는 CGI 프로그램을 외부에서 접근 가능하도록 공개하면 대량 접속을 받아서 서버에 악영향을 줄 가능성이 있습니다. 따라서 이런 CGI 프로그램에는 인트라넷에서만 접속 가능하게 하거나 암호를 입력하게 하는 등 접근 제한을 두는 것이 좋습니다.

 

 

 

참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전

반응형

댓글