시스템 프로그래밍 - 8. 쉘스크립트

Walker·2021년 11월 22일
0

명령어로 하던 서버작업을 자동화하는 것에 가장 많이 쓰이며
적어도 작성된 쉘스크립트를 읽고 이해하는 수준은 되어야 함

반복적이고 일상적인 작업(로그 정리)은 자동화하는 것이 용이

쉘스크립트 파일은 실행권한(x)이 필요하므로 없는 경우 chmod 777로 권한부여 후 실행

echo로 변수 표현은 한번에 여러개도 가능하다

ls와 같은 명령어의 결과를 배열에 담아 출력도 가능하다.

쉘스크립트의 경우 사용하는 환경(bash 외 등등)에 따라 문법이 다른 경우들이
있으므로 가급적 기본문법(bash)를 따르는 것이 좋고 그외는 읽었을 때 이해가 가능해야 함

아래와 같은 배열을 출력하는 쉘스크립트를 작성 후 실행하려하면
'permission denied'라는 메시지가 발생하는데 파일에 실행권한(x)이 없기 때문이다.

'chmod 777 파일명'으로 실행권한 추가 후에는 쉘스크립트 실행이 가능하다.

위와 같이 사전에 지정된 지역변수(키워드)를 사용하면
pid, 쉘스크립트 이름, 인자정보들 등을 활용 할 수 있다.

숫자와 연산자마다 space(띄어쓰기 빼먹는 것 주의!)

위와 같이 띄어쓰기가 하나라도 되어있지 않으면 에러발생(띄어쓰기 빼먹는 것 주의!)
exit는 선택사항(해당 분기에서 프로그램을 종료할꺼면 필요)

> 까지는 호환이 가능하나 >= 에서는 에러가 발생(표준 사용 추천)

가급적 표준 문법을 쓰는 것이 호환성에 좋고
전체를 외우고 있기 보다는 필요할 때 참조하여 사용을 추천

확인하고 싶은 서버의 상태를 확인하여, 핑이 실패하면 다른 서버를 사용하는 등의 작업 수행

결과적으로 위의 코드는 ls 명령과 같은 결과가 출력됨

쉘스크립트로 50~100줄 정도의 프로그래밍은 가능해야 기본을 어느정도 이해했다고 할 수 있음
(검색을 통해 예제들을 잘 이해하고 사용하는 것도 방법)

실행시 받은 인자의 null 여부를 먼저 확인하고 null이 아닐 경우
날짜명을 포함한 이름으로 압축 백업 파일을 만드는 쉘스크립트

2일 된 로그 파일은 압축하고, 3일 이상된 로그 압축파일은 삭제하는 쉘스크립트
(전체 스크립트를 외워서 짜는 것은 어려우니 인터넷으로 검색하여 참고하고
이해하여 커스텀하는 것을 첫걸음으로 활용)

profile
I walk slowly, but I never walk backward. -Abraham Lincoln-

0개의 댓글