grep12 [Linux 셸 스크립트] 서버 관리 - 121 MySQL 레플리케이션 감시하기 1. 사용 명령어 (1) mysql (2) awk (3) grep (4) date 2. 키워드 & 사용처 (1) 키워드 MySQL, 레플리케이션, 감시 (2) 사용처 MySQL 레플리케이션 구성 상태를 정기적으로 감시하고 싶을 때 사용합니다. 3. 실행 예제 $ ./mysql-replcheck.sh [2021/06/24 12:12:12] STATUS NG Slave_IO_Running: No Slave_SQL_Running: Yes Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Cloud not find first log file name in binary log index file' Last_SQL_.. 2021. 6. 17. [Linux 셸 스크립트] 서버 관리 - 113 프로세스를 감시해서 다운 시 자동으로 재실행하기 1. 사용 명령어 (1) service (2) ps (3) grep (4) date (5) echo 2. 키워드 & 사용처 (1) 키워드 프로세스, 감시, 재실행, 자동화 (2) 사용처 웹 서버 운용 시 프로세스가 다운하면 재실행해서 자동으로 장애 대응을 하고 싶을 때 사용합니다. 3. 실행 예제 $ ./process-restart.sh [2021/04/29 11:20:11] 프로세스 /usr/sbin/httpd 찾지 못했습니다. [2021/04/29 11:20:11] 프로세스 /usr/sbin/httpd 실행 Starting httpd: [ OK ] 4. 스크립트 #!/bin/sh # 감시할 프로세스 명령어 commname="/usr/sbin/httpd" ① # 감시 프로세스 실행 명령어 start=".. 2021. 4. 29. [Linux 셸 스크립트] 서버 관리 - 112 특정 프로세스 실행 개수가 제한값을 넘었는지 확인하기 1. 사용 명령어 (1) ps (2) grep (3) wc 2. 키워드 & 사용처 (1) 키워드 프로세스, 다중 실행, 허용값 (2) 사용처 정기적으로 실행되는 명령어의 다중 실행을 감시해서 허용값을 넘으면 경고하고 싶을 때 사용합니다. 3. 실행 예제 $ ./process-numcheck.sh [ERROR] 프로세스 /home/park/bin/calc 다중 실행 (3) start alert.sh ... 4. 스크립트 #!/bin/sh # 감시할 프로세스 명령어와 프로세스 허용 수 commname="/home/park/bin/calc ① threshold=3 ① # 프로세스 개수 카운트 count=$(ps ax -o command | grep "$commname" | grep -v "^grep" | wc.. 2021. 4. 29. [Linux 셸 스크립트] 서버 관리 - 105 서버에 작성된 사용자 계정 목록 얻기 1. 사용 명령어 (1) grep (2) cut 2. 키워드 & 사용처 (1) 키워드 사용자 계정, 구분자, 컬럼 (2) 사용처 텍스트 파일에서 구분자를 지정해서 특정 컬럼을 추출하고 싶을 때 사용합니다. 3. 실행 예제 $ ./sep-cut.sh root bin daemon ... 생략 ... sshd nginx park 4. 스크립트 #!/bin/sh # 사용자 계정 정보 파일 filename="/etc/passwd" # 줄 첫 글자가 #인 주석 줄은 제외하고 cut 명령어로 # * 첫 번째 값을 표시 [-f 1] # * 구분자 기호는 " [-d ":"]로 표시 grep -v "^$" "$filename" | cut -f 1 -d ":" 5. 해설 이 스크립트는 유닉스의 시스템 사용자 계정 정보가 적.. 2021. 4. 22. [Linux 셸 스크립트] 텍스트 처리 - 085 HTML 파일 문자 코드를 자동으로 판별해서 UTF-8로 인코딩된 파일로 바꾸기 1. 사용 명령어 (1) grep (2) sed (3) iconv 2. 키워드 & 사용처 (1) 키워드 HTML, meta 태그, 문자 코드 (2) 사용처 HTML 파일 meta 태그에서 자동으로 문자 코드를 판별해서 UTF-8로 변환하고 싶을 때 사용합니다. 3. 실행 예제 $ ./charset-utf8.sh $ ls newdir/ &2 ⑤ coontinue ⑤ fi # meta 태그에서 추출한 문자 코드에서 UTF-8으로 변환 # 디렉터리 $outdir에 출력 iconv -c -f "$charset" -t UTF-8 "$filename" > "${outdir}/${filename}" ⑥ done 5. 해설 이 스크립트는 현재 디렉터리에 있는 HTML 파일(확장자 .html)을 HTML 파일에 있는 m.. 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 082 정해진 자릿수 숫자에 하이픈 넣기(우편번호 등) 1. 사용 명령어 (1) getopts (2) shift (3) awk (4) grep (5) sed 2. 키워드 & 사용처 (1) 키워드 옵션, 자릿수, 스페이스 제거, 우편번호 (2) 사용처 우편번호나 전화번호 같은 텍스트에서 정해진 자리에 하이픈을 넣거나 삭제하고 싶을 때 사용합니다. 3. 실행 예제 $ cat number-nohyphen.txt # 숫자뿐인 우편번호 562001 2250022 A1200B1 $ ./num-hyphen.sh number-nohyphen.txt # 하이픈 추가 561-0001 225-0022 $ cat number-hyphen.txt # 하이픈이 있는 우편번호 562-0001 325-10022 362-0001 A1B-0C1C $ ./number-hyphen.sh -d .. 2021. 4. 13. [Linux 셸 스크립트] 텍스트 처리 - 081 오른쪽 정렬로 숫자를 표시하는 텍스트 표 만들기 1. 사용 명령어 (1) grep (2) printf 2. 키워드 & 사용처 (1) 키워드 서식 출력, 텍스트 변형, 포맷 (2) 사용처 숫자를 카운트하는 명령어에서 세로 위치를 정리해서 리포트하고 싶을 때 사용합니다. 3. 실행 예제 $ ./printf.sh 1 (app20210409.log) 73 (app20210410.log) 146 (app20210412.log) 11 (info.log) 5 (system.log) 4. 스크립트 #!/bin/sh # 검색할 문자열 정의 search_text="ERROR 19:" # 현재 디렉터리에서 확장자가 .log인 파일을 순서대로 처리 for filename in *.log ① do # 일치하는 줄 수를 -c 옵션으로 취득 count=$(grep -c "$se.. 2021. 4. 12. [Linux 셸 스크립트] 텍스트 처리 - 073 CSV 파일에 ID 목록을 입력해서 대응하는 ID 컬럼값 얻기 1. 사용 명령어 (1) read (2) grep 2. 키워드 & 사용처 (1) 키워드 IFS, CSV, 레코드, 컬럼, 구분자, 분할 (2) 사용처 ID 목록 파일과 CSV 파일에서 지정한 ID의 컬럼값을 표시하고 싶을 때 사용합니다. 3. 실행 예제 $ cat data.csv 2021. 4. 8. [Linux 셸 스크립트] 텍스트 처리 - 069 텍스트 파일에서 구분자를 지정해서 컬럼 추출하기 1. 사용 명령어 (1) env (2) grep (3) cut 2. 키워드 & 사용처 (1) 키워드 환경 변수, 분지라, 컬럼 (2) 사용처 설정된 환경 변수 목록을 얻어서 어떤 변수명이 정의되어 있는지 확인하고 싶을 때 사용합니다. 3. 실행 예제 $ ./env.sh 2021. 4. 7. [Linux 셸 스크립트] 파일처리 - 047 바이너리 파일에 포함된 문자열 열기 1. 사용 명령어 (1) strings (2) grep 2. 키워드 & 사용처 (1) 키워드 바이너리 파일, 검색, 실행 파일 (2) 사용처 에러 메시지를 바탕으로 그 메시지를 출력하는 명령어를 찾고 싶을 때 사용합니다. 3. 실행 예제 $ ./strings.sh /home/park/myapp/bin/start: error: Unknown Error /home/park/myapp/bin/kill: Unknown Error at %s /home/park/myapp/bin/kill: Unknown Error at %s:%d 4. 스크립트 #!/bin/sh # 검색할 에러 메시지 message="Unknown Error" strings -f /home/park/myapp/bin/* | grep "$messag.. 2021. 3. 26. 이전 1 2 다음