awk 명령을 활용하여 설정파일의 특정 옵션 변경하는 스크립트

unix와 linux에서 기본적으로 지원되는 명령어 중에 awk가 있다. 이 awk는 무척이나 강력한 기능을 갖고 있는 파일 핸들링 및 문자열 처리 능력을 갖고 있는데 제목과 같이 설정파일에서 특정 옵션값을 검사하고 조건과 비교하여 변경하여 저장할 때 유용하게 사용할 수 있다.

#!/usr/bin/ksh

# cat 명령으로 login.cfg를 출력하여 awk의 표준입력으로 보낸다.

# 만약 필드의 구분자가 : 라면 awk -F: ‘{ 와 같이 -F 옵션으로 필드 구분자를 지정할 수 있다.

cat /etc/security/login.cfg | awk ‘{

# 만약 login.cfg의 각라인에서 첫번째 필드($1)의 값이 auth_type 이면

if ($1 == “auth_type”) {

print “auth_type = PAM_AUTH”

# auth_type 옵션을 PAM_AUTH로 설정하는 문자열로 바꾸어 출력한다.

} else {

# 만약 auth_type이 아니면 원본라인을 그대로 출력한다. ($0)

print $0

}

# 새파일을 login.cfg.new로 저장한다.

# AIX에서 테스트 되었습니다.

}’ >> ./login.cfg.new

# 원본 설정파일을 백업한다.

cp /etc/security/login.cfg /etc/security/login.cfg.20101013

# 새파일을 login.cfg로 복사하여 덮어 쓴다.

cp ./login.cfg.new /etc/security/login.cfg

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top