IT 이야기/Linux 셸 스크립트137 [Linux 셸 스크립트] 서버 관리 - 123 로그 출력을 감시해서 로그에 특정 문자열이 있으면 경고하기 1. 사용 명령어 (1) tail (2) read 2. 키워드 & 사용처 (1) 키워드 로그 파일, 감시, 실시간 (2) 사용처 시스템 점검 작업을 하면서 실시간으로 감시 대상 로그 파일을 보기 좋게 가공해서 출력하고 싶을 때 사용합니다. 3. 실행 예제 $ ./log-tailgrep.sh !주의! 파일을 찾지 못했습니다 : [03ac2fsd.dat] File Not Found !주의! 파일을 찾지 못했습니다 : [pxac2fsd.dat] File Not Found !경고! 애플리케이션 이상 : [6I7cht1npA] Application Error 실시간으로 로그를 추적해서 주의 메시지를 추가해서 출력 4. 스크립트 #!/bin/sh # 감시 대상 로그 파일명 설정 logfile="/var/log/my.. 2021. 7. 6. [Linux 셸 스크립트] 서버 관리 - 122 MySQL 테이블을 CSV로 출력하기 1. 사용 명령어 (1) mysql (2) date (3) tr 2. 키워드 & 사용처 (1) 키워드 MySQL, CSV 파일 (2) 사용처 정기적으로 데이터베이스에서 SELECT한 결과를 CSV 파일로 출력하고 싶을 때 사용합니다. 3. 실행 예제 $ ./mysql-csvout.sh csv_outputdir로 지정한 디렉터리에 CSV 파일로 출력 4. 스크립트 #!/bin/sh #데이터베이스 접속 설정 DBHOST="192.168.11.5" ① DBUSER="park" ① DBPASS="PASSWORD" ① DBNAME="test" ① # mysql 명령어 경로 MYSQL="/usr/bin/mysql" ② # CSV 파일 출력 경로와 리포트 작성용 SQL문 파일명 지정 csv_outputdir="/ho.. 2021. 6. 18. [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 셸 스크립트] 서버 관리 - 120 MySQL 데이터베이스 백업하기 1. 사용 명령어 (1) mysqldump (2) date (3) gzip (4) find (5) xargs 2. 키워드 & 사용처 (1) 키워드 MySQL, 데이터베이스, 백업, 덤프 파일 (2) 사용처 MySQL 데이터베이스 백업을 정기적으로 자동 수행하고 싶을 때 사용합니다. 3. 실행 예제 $ ./musql-dbbackup.sh /home/park/backup에 백업 파일이 작성됨 4. 스크립트 #!/bin/sh # 데이터베이스 접속 설정 DBHOST="192.168.11.5" ① DBUSER="park" ① DBPASS="PASSWORD" ① DBNAME="testdb" ① # 데이터베이스 백업 설정 BACKUPDIR="/home/park/backup" ② BACKUP_ROTATE=3 ② MYS.. 2021. 6. 11. [Linux 셸 스크립트] 서버 관리 - 119 웹 페이지 변경 감시하기 1. 사용 명령어 (1) curl (2) cmp (3) echo (4) date 2. 키워드 & 사용처 (1) 키워드 URL, 파일 변경, 감시 (2) 사용처 비정기적으로 변경되는 웹 사이트 내용을 감시해서 변경이 있으면 알리고 싶을 때 사용합니다. 3. 실행 예제 $ ./url-diffcheck.sh [2021/06/11 12:12:12] 파일이 변경되었습니다. 대상 URL: http://www.example.org/update.html 4. 스크립트 #!/bin/sh # 감시 대상 URL url="http://www.example.org/update.html" ① # 내려받기 파일명 정의 newfile="new.dat" ② oldfile="old.dat" ② # 파일 내려받기 curl -so "$ne.. 2021. 6. 11. [Linux 셸 스크립트] 서버 관리 - 118 CPU 사용률 감시하기 1. 사용 명령어 (1) mpstat (2) tail (3) awk (4) echo (5) date (6) iostat 2. 키워드 & 사용처 (1) 키워드 CPU, 부하, idle, 이용률, 감시 (2) 사용처 CPU 부하를 정기적으로 감시해서 idle 값이 낮아지면 경고를 출력하고 싶을 때 사용합니다. 3. 실행 예제 $ ./cpu-idlecheck.sh [2021/06/11 12:12:12] CPU %idle Alert: 4.53 (%) ALERT... 4. 스크립트 #!/bin/sh # 감시할 CPU %idle 허용값. 이 값 이하면 경고 idle_limit=10.0 ① # CPU %idle을 mpstat 명령어로 취득, 마지막 줄의 평균값을 추출 cpu_idle=$(mpstat 1 5 | tai.. 2021. 6. 11. [Linux 셸 스크립트] 서버 관리 - 117 메모리 스왑 감시하기 1. 사용 명령어 (1) vmstat (2) awk (3) date (4) echo 2. 키워드 & 사용처 (1) 키워드 메모리, 감시, 스왑 (2) 사용처 남은 메모리를 정기적으로 감시해서 스왑이 발생하면 경고하고 싶을 때 사용합니다. 3. 실행 예제 $ ./swapcheck.sh [2021/05/26 12:12:12] Swap Alert: 352 (si+so) ALERT... 4. 스크립트 #!/bin/sh # 감시할 스왑 발생 횟수. 이 숫자를 넘기면 경고 swapcount_limit=10 ① # vmstat 명령어 출력에서 스왑인, 스왑아웃 값 취득 swapcount=$(vmstat 1 6 | awk 'NR >=4 {sum += $7 + $8} END{print sum}') ② # 스왑 횟수가 허.. 2021. 6. 11. [Linux 셸 스크립트] 서버 관리 - 116 디스크 용량 감시하기 1. 사용 명령어 (1) df (2) awk (3) read (4) echo (5) rm 2. 키워드 & 사용처 (1) 키워드 디스크, 사용량, 사용률, 용량 (2) 사용처 디스크 사용률을 정기적으로 감시하여 허용값 이상으로 올라가면 경고하고 싶을 때 사용합니다. 3. 실행 예제 $ ./df-diskcheck.sh [2021/05/14 12:12:12] Disk Capacity Alert: /usr/local (92% used) ALERT... 4. 스크립트 #!/bin/sh # 감시할 디스크 사용률의 허용값 % used_limit=90 ① # df 명령어 출력 결과 임시 파일명 tmpfile="df.tmp.$$" ② # df 명령어로 디스크 사용량 표시. 첫 줄은 헤더이므로 제거 df -P | awk .. 2021. 5. 26. [Linux 셸 스크립트] 서버 관리 - 115 웹 접근 감시하기 1. 사용 명령어 (1) curl (2) date (3) echo 2. 키워드 & 사용처 (1) 키워드 웹 감시, 서비스 감시, HTTP 스테이터스 코드 (2) 사용처 운용하는 웹 서비스에서 접근 확인을 정기적으로 실행해서 이상 발생 시 경고 통지를 하고 싶을 때 사용합니다. 3. 실행 예제 $ ./web-curlcheck.sh [2021/05/13 12:12:12] HTTP 스테이터스 이상:HTTP status[503] ALERT... 4. 스크립트 #!/bin/sh # 감시 대상 URL 지정 url="http://www.example.org/webapps/check" ① # 현재 시각을 [2021/05/13 12:12:12] 형식으로 조합 date_str=$(date '+%Y/%m/%d %H:%M:%.. 2021. 5. 13. [Linux 셸 스크립트] 서버 관리 - 114 서버 ping 감시하기 1. 사용 명령어 (1) ping (2) sleep (3) date 2. 키워드 & 사용처 (1) 키워드 서버 감시, 네트워크 종료 스테이터스 (2) 사용처 네트워크 상태가 이상하지 않은지 도는 서버가 정지했느닞 ping 명령어로 감시하고 싶을 때 사용합니다. 3. 실행 예제 #$ ./ping_alert.sh 192.168.2.1 [2021/05/12 13:43:12] Ping OK: 192.168.2.1 4. 스크립트 #!/bin/sh # ping 실행 결과 스테이터스 0이면 성공이므로 1로 초기화 result=1 ① # 대상 서버가 명령행 인수로 지정되지 않으면 에러 종료 if [ -z "$1" ]; then ② echo "대상 호스트를 지정하세요." >&2 ② exit 1 ② fi # ping 명령.. 2021. 5. 12. 이전 1 2 3 4 5 ··· 14 다음