Macro (Shell Script & TeraTerm(TTL))

셸 스크립트와 테라텀 매크로로 자동화 방법 소개 (Introduction to Automation Methods with Shell Script & TeraTerm Macro)

Shell Script

Shell Script 개념 및 사용 목적

셸 스크립트(Shell Script)는 동일한 작업의 반복을 줄이기 위해 리눅스 운영체제에 쓰이는 스크립트로 보통 배치파일이라 부르기도 한다. Linux 운영체제에서는 스크립트 종류로는 bash/csh/ksh 등 있다. [1]

Script 자주 쓰는 명령어 : grep, awk, sed

(OS에서 스스로 실습을 해보시길 바랍니다.)

1. grep 설명 :

입력으로 전달된 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어 [2]

  • grep "test" : "test" 문자열이 포함한 행들을 전부 출력 예) rpm -qa | grep "vnc"

  • grep -v "test" : "test" 문자열을 있는 행을 제외한 나머지 내용 출력 예) rpm -qa | grep "vnc" | grep -v "tiger"

2. awk 설명 :

텍스트를 처리를 위해 사용하는 명령어로, 텍스트 형태로 되어있는 데이터를 필드로 구분하여 출력한다.[3]

  • awk "NR>=5" : 5번째 줄부터 결과 출력 예) rpm -qa | awk "NR>=5"

  • awk "/test/" : "test"라는 단어가 포함한 행들을 전부 출 (grep "test"와 같음) 예) free -m | awk "/Mem:/"

  • awk '{print $3}' : 3번 칼럼만 출력 예) df -h | awk '{print $3}'

  • awk '{print $NF}' : 마지막 칼럼만 출력 예) df -h | awk '{print $NF}'

3. sed 설명 :

stream editor의 약자로, 텍스트를 구문 분석하고 변환하기 위해 사용한다. [4]

  • sed "s/test/done/g" : "test"단어를 "done"으로 변 예) df -h | sed "s/%//g"

Script 기초 구성

1. Shell Script 빈 파일 생성 (파일 이름 끝에 .sh를 입력) # vi sample.sh

2. vi에디터로 Shell Script 파일 작성

3. Shell Script 실행 가능하도록 권한 변경 # chmod 777 sample.sh

4. Shell Script 실행 # ./sample.sh

TeraTerm(TTL)

TeraTerm 매크로 사용 목적

TeraTerm는 오픈 소스 무료 터미널 프로그램으로, 이에 존재하는 Macro는 반복 test를 아주 간편하게 사용하기 위해 자동 로그인 및 자동 로그 오픈 등 다양한 기능을 제공한다. [5]

매크로 실행 방법

TeraTerm 실행창에서 [제어] -> [매크로]를 클릭 후 ttl파일 실행

TTL 코드 리뷰

1. 서버 접속 및 로그인

1-1. telnet 접속

connect '1.1.1.1:23 /telnet' // telnet으로 IP 1.1.1.1로 서버 접속 wait 'login' // "login"이라는 단어가 나올 때까지 기다린다. sendln 'sample' // 서버 계정 ID 입력 wait 'Password' // "Password"이라는 단어가 나올 때까지 기다린다. sendln 'samplepw' // 서버 계정 PW 입력

1-2. ssh 접속

connect '1.1.1.1:22 /ssh /auth=password /user=sample /passwd=samplepw' // ssh로 IP 1.1.1.1로 서버 접속 // auth=password --> 인증 방식을 계정 로그인으로 선택 // user=sample --> 서버 계정 ID 입력 // passwd=samplepw --> 서버 계정 PW 입력

2. 로그 시작

logopen 'sample.log' 0 0 // 'sample.log'로 파일 이름 정한 후 로깅 시작 pause 1 // 1초간 대기

3. Shell Script 실행

sendln 'cd /home/sample/' // 'cd /home/ONS/checklist/' 명령어 입력 wait 'sample' // 'ONS'이라는 단어가 나올 때까지 기다린다. sendln './sample.sh' // './ONS_TB_checklist_sample.sh' 명령어 입력 pause 4 // 4초간 대기

4. 로그 및 TeraTerm 종료

logclose // 로그 종료 closett // TeraTerm 종료

Script Example

스크립트 예제파일을 드립니다. 이 예제파일은 Linux ETC의 환경구성요소들을 백업용도로 사용하기 위해 만들었습니다. 예제스크립트를 열어보시면 자세하게 주석을 달아 이해하시기 쉽도록 설명했고, 이 예제파일로 Script 실행방법의 순서대로 실습해보시길 바랍니다.

Script 실행 방법

  • sample.sh 대신 위에 BackupScript_by_yun 파일을 다운로드 하신 후, 실습해보십시오.

1. FileZilla로 만들어 놓은 Shell Script를 서버로 전송

2. Script 파일 넣을 디렉토리 생성 # mkdir -p /home/sample

3. Script 파일 경로 이동 # cd /home/sample # mv ./sample.sh /home/sample

4. 파일 소유자 권한 변경 # chown [소유권자]:[그룹식별자] /home/sample

5. 파일 실행할 수 있도록 권한 변경 # chmod 777 /home/sample/sample.sh

6. Shell Script 실행 # ./home/sample/sample.sh

Reference

[1] Shell script : From Wikipedia, the free encyclopedia [2] 리눅스 grep 사용법 made by 어쩐지 오늘은 [3] awk : From Wikipedia, the free encyclopedia [4] sed : From Wikipedia, the free encyclopedia [5] Tera Term : From Wikipedia, the free encyclopedia

Last updated