서버관리_10 프로세스를 감시해서 다운 시 자동으로 재실행하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: service, ps, wc, grep, date, echo
키워드: 프로세스, 감시, 재실행, 자동화
사용처: 웹 서버 운용 시 프로세스가 다운하면 재실행해서 자동으로 장애 대응을 하고 싶을 때
실행 예제
$ ./process-restart.sh
[2023/05/30 10:30:15] /usr/sbin/httpd 찾지 못했습니다.
[2023/05/30 10:30:15] 프로세스 /usr/sbin/httpd 실행
Starting httpd: [ OK ]
스크립트
#!/bin/sh
# 감시할 프로세스 명령어
commna...
서버관리_09 특정 프로세스 실행 개수가 제한값을 넘었는지 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: ps, grep, wc
키워드: 프로세스, 다중 실행, 허용값
사용처: 정 기적으로 실행되는 명령어의 다중 실행을 감시해서 허용값을 넘으면 경고하고 싶을 때
실행 예제
$ ./process-numcheck.sh
[ERROR] 프로세스 /home/user1/bin/calc 다중 실행 (3)
start alert.sh ...
스크립트
#!/bin/sh
# 감시할 프로세스 명령어와 프로세스 허용수
commname="/home/user1/bin/calc" # -------------------------------------...
서버관리_08 특정 프로세스가 정지했는지 감시하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: ps, grep, wc
키워드: 프로세스, 감시, 정지
사용처: 서비스 제공 시 존재해야 할 프로세스가 정지하지 않았는지 감시하고 싶을 때 사용합니다.
실행 예제
$ ./process-isalive.sh
[ERROR] 프로세스 /usr/llibexec/mysqlid 찾지 못했습니다.
start alert.sh ...
스크립트
#!/bin/sh
# 감시할 프로세스 명령어
commname="usr/libexec/mysqld" # -------------------------------------------------- 1...
서버관리_07 서버 구축 패키지 목록을 셸 스크립트 형태로 관리하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: yum
키워드: RPM 패키지, 설치, 구축
사용처: 서버 구축 작업에서 패키지 설치를 자동화하고 싶을 때 사용합니다.
실행 예제
# ./yum-install.sh
Loaded plugins: fastestmirror, security
Loding mirror speeds from cached hostfile
(생략)
yum 명령어로 httpd, zsh, xy, git 설치
스크립트
#!/bin/sh
# 설치할 패키지명 정의
pkglist="httpd zsh xz git" # ----- 1...
서버관리_06 RPM 패키지명이 적힌 목록 파일에서 각각의 패키지가 설치, 갱신된 날짜를 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: cat, rpm
키워드: RPM패키지, 갱신 시각, 설치, 업데이트
사용처: 여러 서버에 패키지 설치 및 업데이트를 진행하는데 서버마다 작업에 실수가 없는지 확인하고 싶을 때
실행 예제
# 설치 후 확인해야 할 패키지 목록을 작성합니다.
$ 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 : gi...
서버관리_05 파일명으로 설치된 RPM 패키지명을 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: rpm, exit
키워드: RPM패키지, 설치
사용처: 서버에 있는 파일인지, 패키지에 있는지, 직접 작성한 것인지 알기 위해 RPM패키지를 조사하고 싶을 때
실행 예제
$ ./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는 패키지에 포함되지 않습니다.
스크립트
#!/bin/bash
# 파일을 지정하는 명령행 인수를 확인
if [ ! -f "$1...
서버관리_04 시스템 셧다운하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: who, ps, shutdown
키워드: 로그인 사용자, 셧다운, 프로세스, 확인, 정지
사용처: 셧다운 절차를 스크립트로 작성해서 확인 항목을 자동으로 체크하고 전원을 내리고 싶을 때
실행 예제
# ./shutdown.sh
[ERROR] who 명령어 출력이 2줄 이상: 작업 중인 사용자가 있습니다.
# ./shutdown.sh
Broadcast message from user1@linux
(/dev/pts/1) at 15:32 ...
The system is going down for hal...
241 post articles, 35 pages.