'IT 이야기/Linux 셸 스크립트' 카테고리의 글 목록 (3 Page)
본문 바로가기

IT 이야기/Linux 셸 스크립트137

[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 셸 스크립트] 서버 관리 - 111 특정 프로세스가 정지했는지 감시하기 1. 사용 명령어 (1) ps (2) grep (3) wc 2. 키워드 & 사용처 (1) 키워드 프로세스, 감시, 정지 (2) 사용처 서비스 제공 시 존재해야 할 프로세스가 정지하지 않았는지 감시하고 싶을 때 사용합니다. 3. 실행 예제 $ ./process-isalive.sh [ERROR] 프로세스 /usr/llibexec/mysqlid 찾지 못했습니다. start alert.sh ... 4. 스크립트 #!/bin/sh # 감시할 프로세스 명령어 commname="/usr/libexec/mysqld" ① # 대상 명령어 프로세스 수를 카운트 count=$(ps ax -o command | grep "$commname" | grep -v "^grep" | wc -l) ② # grep 명령어 출력 결과가 .. 2021. 4. 29.
[Linux 셸 스크립트] 서버 관리 - 110 서버 구축 패키지 목록을 셸 스크립트 형태로 관리하기 1. 사용 명령어 (1) yum 2. 키워드 & 사용처 (1) 키워드 RPM 패키지, 설치, 구축 (2) 사용처 서버 구축 작업에서 패키지 설치를 자동화하고 싶을 때 사용합니다. 3. 실행 예제 # ./yum-install.sh Loaded plugins: fastestmirror, security Loding mirror speeds from cached hostfile ... 생략 ... yum 명령어로 httpd, zsh, xy, git 설치 4. 스크립트 #!/bin/sh # 설치할 패키지명 정의 pkglist="httpd zsh xz git" ① # 패키지 목록에서 순서대로 한 줄씩 읽기 for pkg in $pkglist ② do # yum 명령어로 패키지 설치 yum -y install $ .. 2021. 4. 27.
[Linux 셸 스크립트] 서버 관리 - 109 RPM 패키지명이 적힌 목록 파일에서 각각의 패키지가 설치, 갱신된 날짜 확인하기 1. 사용 명령어 (1) cat (2) rpm 2. 키워드 & 사용처 (1) 키워드 RPM 패키지, 갱신 시각, 설치, 업데이트 (2) 사용처 여러 서버에 패키지 설치 및 업데이트를 진행하는데 서버마다 작업에 실수가 없는지 확인하고 싶을 때 사용합니다. 3. 실행 예제 $ cat pkg.lst httpd zsh xz git $ ./rpm-lastdate.sh pkg.lst 2021/04/19 11:14:11 : httpd 2021/04/20 13:43:23 : zsh 2020/06/03 15:21:09 : xz 2021/03/24 09:33:12 : git 4. 스크립트 #!/bin/sh # 지정한 목록 파일 존재 확인 if [ ! -f "$1" ]; then ① echo "대상 패키지 목록 파일이 존재.. 2021. 4. 23.
[Linux 셸 스크립트] 서버 관리 - 108 파일명으로 설치된 RPM 패키지명을 확인하기 1. 사용 명령어 (1) rpm (2) exit 2. 키워드 & 사용처 (1) 키워드 RPM 패키지, 설치 (2) 사용처 서버에 있는 파일인지, 패키지에 있는지, 직접 작성한 것인지 알기 위해 RPM 패키지를 조사하고 싶을 때 사용합니다. 3. 실행 예제 $ ./rpm-compkg.sh /etc/ntp.conf /etc/ntp.conf -> ntp-4.2.4p8-3.el6.centos.x86_64 $ ./rpm-compkg.sh /etc/my.cnf /etc/my.cnf는 패키지에 포함되지 않습니다. 4. 스크립트 #!/bin/sh # 파일을 지정하는 명령행 인수를 확인 if [ ! -f "$1" ]; then ① echo "파일이 없습니다: $1" >&2 ① exit 2 ① fi # 파일명에서 속한 R.. 2021. 4. 23.
[Linux 셸 스크립트] 서버 관리 - 107 시스템 셧다운하기 1. 사용 명령어 (1) who (2) ps (3) shutdown 2. 키워드 & 사용처 (1) 키워드 로그인 사용자, 셧다운, 프로세스, 확인, 정지 (2) 사용처 셧다운 절차를 스크립트로 작성해서 확인 항목을 자동으로 체크하고 전원을 내리고 싶을 때 사용합니다. 3. 실행 예제 # ./shutdown.sh [ERROR] who 명령어 출력이 2줄 이상: 작업 중인 사용자가 있습니다. # ./shutdown.sh Broadcast message from park@linux (/dev/pts/1) at 15:32 ... The system is going down for halt NOW ! 4. 스크립트 #!/bin/sh # 자기 이외의 사용자가 로그인하지 않았는지 who 명령어 출력으로 확인 othe.. 2021. 4. 23.
[Linux 셸 스크립트] 서버 관리 - 106 허가된 사용자만 스크립트 실행 가능하게 하기 1. 사용 명령어 (1) id (2) whoami (3) echo 2. 키워드 & 사용처 (1) 키워드 실행 사용자, 권한, root (2) 사용처 어떤 스크립트를 지정한 사용자 이외는 실행 금지하고 싶을 때 합니다. 3. 실행 예제 $ whoami park $ ./id-script.sh [ERROR] batch1 사용자로 실행하세요. 4. 스크립트 #!/bin/sh # 스크립트 실행을 허용할 사용자 정의 script_user="batch1" ① # id 명령어로 현재 사용자를 취득, 정의와 일치하는지 확인 if [ $(id -nu) = "$script_user" ];; then ② # 허가 사용자면 배치 처리 실행 ./batch_program ③ else echo "[ERROR] $script_user.. 2021. 4. 22.
[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 셸 스크립트] 서버 관리 - 104 서버 네트워크 인터페이스와 IP 주소 목록 얻기 1. 사용 명령어 (1) ifconfig (2) awk 2. 키워드 & 사용처 (1) 키워드 NIC, IP 주소, 네트워크 인터페이스 (2) 사용처 서버 NIC와 IP 주소 목록을 표시하고 싶을 때 사용합니다. 3. 실행 예제 $ ./nic-ipaddr.sh [eth0] 10.211.55.18 [eth1] [lo] 127.0.0.1 2021. 4. 22.