[유닉스고급] 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
- 3번 답:
export PATH=$PATH;
아퀼라 서버에서 path의 환경변수를 확인해 봤을때 아무것도 설정되어 있지 않다 그렇기 때문에 메인 하나서버에 있는 기본 path를 하나서버에 넣어주어야 하므로 위와 같은 명령어 입력이 성립하게 된다.
3. 후기
.
댓글남기기