echo25 [Linux 셸 스크립트] bash - 132 정수값으로 난수 얻기 1. 사용 명령어 (1) nc (2) echo (3) sleep 2. 키워드 & 사용처 (1) 키워드 난수, 정수 (2) 사용처 외부 명령어를 사용하지 않고 셸 스크립트만으로 난수를 얻고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-random.sh Connection to 192.168.2.1 80 port [tcp/http] succeeded! Wait: 4 sec. Connection to 192.168.2.1 80 port [tcp/http] succeeded! 4. 스크립트 #!/bin/bash # 접속 정보 정의 ipaddr="192.168.2.1" ① port=80 ① # 1에서 10까지의 정수값 난수를 RANDOM 변수에서 얻기 waittime=$((RANDOM % 10 + 1)).. 2021. 7. 13. [Linux 셸 스크립트] bash - 130 파이프 처리로 각 명령어 종료 상태값 조사하기 1. 사용 명령어 (1) echo 2. 키워드 & 사용처 (1) 키워드 파이프, 종료 스테이터스 (2) 사용처 파이프 처리 중에 어떤 명령어 종료 스테이터스를 확인해서 명령어의 성공/실패를 판단하고 싶을 때 사용합니다. 3. 실행 예제 $ ./pipestatus.sh [ERROR] sort-data.sh에 실패했습니다. 4. 스크립트 #!/bin/bash # 다음과 같은 처리를 하는 경우를 가정 # script.sh : 데이터 출력 # sort-data.sh : 데이터 정렬 # calc.sh : 출력 데이터 계산 ./script.sh | ./sort-data.sh | ./calc.sh > output.txt ① # 다른 명령어를 실행하면 PIPESTATUS 값이 사라지므로 결과를 복사해둠 pipe_sta.. 2021. 7. 13. [Linux 셸 스크립트] bash - 128 변수 내부 문자열 일부를 치환하기 1. 사용 명령어 (1) echo 2. 키워드 & 사용처 (1) 키워드 파라미터 확장, 문자열, 치환, sed (2) 사용처 변수 내부 문자열을 sed 명령어를 사용하지 않고 치환하고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-where.sh perl /opt/local/bin/perl /usr/bin/perl 4. 스크립트 #!/bin/bash # 조사할 명령어 얻기 command="$1" ① # 인수 확인 if [ -z "$command" ]; then ② echo "에러: 조사 대상 명령어를 지정하세요." >&2 exit 1 fi # 환경 변수 $PATH의 :을 스페이스로 치환, for문 반복해서 사용 for dir in ${PATH//:/ } ③ do if [ -f "${dir}/${c.. 2021. 7. 6. [Linux 셸 스크립트] bash - 127 변수 내부 문자열을 n 번째부터 m 번째까지 추출하기 1. 사용 명령어 (1) read (2) echo 2. 키워드 & 사용처 (1) 키워드 문자열, 일부, 추출 (2) 사용처 ID 목록 파일에서 지정한 ID 패턴만 추출하고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-substr.sh id.lst AC38421021 0 AC98102495 1 ID 첫 문자가 "AC"인 것만 표시됨 4. 스크립트 #!/bin/bash # 지정한 ID 파일에서 $id $status를 한 줄씩 # read 명령어로 읽어들임 while read id status ① do # 셸 변수 id 첫 두 글자가 AC인지 확인 if [ "${id:0:2}" = "AC" ]; then ② echo "$id $status" fi done < "$1" 5. 해설 이 스크립트는 ID 목.. 2021. 7. 6. [Linux 셸 스크립트] bash - 126 사칙 연산을 간단하게 작성하기 1. 사용 명령어 (1) echo 2. 키워드 & 사용처 (1) 키워드 산술식, 산술 확장, 산술 평가 (2) 사용처 expr 명령어를 사용하지 않고 산술식을 계산한 결과를 얻고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-arithmetic.sh 1.txt에서 100.txt 까지 100개의 파일이 작성됨 4. 스크립트 #!/bin/bash # 브레이스 확장으로 1에서 100까지 숫자 목록 생성 for i in {1..100} ① do # 산술 확장을 이용해서 파일명에 3을 곱해서 계산한 # 값을 텍스트 파일에 저장 echo $((i * 3)) > ${1}.txt ② done 5. 해설 이 스크립트는 1에서 100가지의 파일명을 가진 파일을 작성합니다. 파일 내용은 파일명 숫자에 3을 곱한 값입.. 2021. 7. 6. [Linux 셸 스크립트] bash - 125 for 반복문을 간단히 작성하기 1. 사용 명령어 (1) ping (2) echo 2. 키워드 & 사용처 (1) 키워드 브레이스 확장, bash (2) 사용처 IP 주소 목록 등을 브레이스 확장으로 간단히 작성하고 싶을 때 사용합니다. 3. 실행 예제 $ ./bash-brace.sh [OK] Ping -> 192.168.2.1 [OK] Ping -> 192.168.2.2 [OK] Ping -> 192.168.2.3 [OK] Ping -> 192.168.2.4 [OK] Ping -> 192.168.2.5 4. 스크립트 #!/bin/bash # bash 브레이스 확장 {}으로 IP 주소 목록 작성 for ipaddr in 192.168.2.{1..5} ① do ping -c 1 "$ipaddr" > /dev/null 2>&1 if [ $?.. 2021. 7. 6. [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. 이전 1 2 3 다음