[유닉스고급] 12 10장 시스템관리 쉘스크립트

과제 내용 : 12 10장 시스템관리 쉘스크립트 유닉스고급(쉘스크립트)

김태양 1834041

0. 해야 할일

  • 문제 이해
  • 해결 방법

1. 문제 이해

(1) ostype 문자열이 fedora가 되도록 다음 소스를 변경하세요. 지금 현재는 rhel fedora 문자열이 검색되는 소스입니다. $( cat /etc/*release | grep ID_LIKE | sed “s/ID_LIKE=//;s/"//g“ ) # rhel fedora

  • # 문자열이 주어졌을 때 이를 나누어서 문자를 구별해서 받는 방법을 설명한다.

(2) 네트워크 정보를 사용자로부터 입력 받을 때, ip4.address=192.168.122.10/24 의 형태를 이용하여 netmask= 255.255.255.0 값을 받는다. 만약 netmask 값이 255.255.255.192 라면 ip4.address 값을 어떻게 입력하여야 하나요 ?

  • # 서브넷 마스크 계산법

(3) 원격 서버인 아퀼라 시스템에서 which 명령으로 ip 명령어의 경로를 찾을 수 있고 echo $PATH 조회도 되는데, 유독 쉘스크립트를 실행하면 IP: command not found 에러 발생한다. 쉘스크립트 소스를 변경하여 에러를 제거하세요.

  • # ssh 접속시 path 설정

2. 해결 방법

  • 1번 답:
cat /etc/*release | grep ID_LIKE | sed "s/ID_LIKE=//;s/\"//g" | awk '{print $2}'

또는

cat /etc/*release | grep ID_LIKE | sed "s/ID_LIKE=//;s/\"//g" | cut -d ' ' -f2

awk란 awk는 파일로부터 레코드(record)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 프로그램입니다.

print 기능을 이용해 표준입력 받은 값들을 출력하는데 $1 $2 등을 사용하여 공백에 따라 나뉜 필드값을 지정할 수 있다.

또한

cut에도 공백에 따라 파일 필드를 구별하여 출력 할 수 있다

-d 옵션을 통해서 작은 따음표 안에 있는 문자에 따라 문자열을 구별할 수 있다 또한 -f 옵션을 이용하여 잘라낸 필드를 선택하여 출력할 수 있다.

위 옵션을 이용해서 위의 9주차 과제의 문제를 두가지로 해결 할 수있다.

who | cut -d ' ' -f 1 | sort | uniq | wc -l
who | awk '{print $1}' | sort | uniq | wc -l
  • 2번 답:
ip4.address=192.168.122.10/26

test

  • 3번 답:
export PATH=$PATH;

test

아퀼라 서버에서 path의 환경변수를 확인해 봤을때 아무것도 설정되어 있지 않다 그렇기 때문에 메인 하나서버에 있는 기본 path를 하나서버에 넣어주어야 하므로 위와 같은 명령어 입력이 성립하게 된다.

3. 후기

.

카테고리:

업데이트:

댓글남기기