셸 스 크 립 트 모니터링 시스템 부하,CPU,메모리 사용 현황
1.Liux 아래 메 일 클 라 이언 트 msmtp 소프트웨어 설치(foxmail 과 유사 한 도구)
1.다운로드 설치:
http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0
# tar jxvf msmtp-1.4.16.tar.bz2
# cd msmtp-1.4.16
# ./configure --prefix=/usr/local/msmtp
# make && make install
2.msmtp 설정 파일 과 로그 파일 만 들 기(host 는 메 일 도 메 인 이름,메 일 사용자 이름 fuquanjun,비밀번호 fuquanjun)
# vim /root/.msmtprc
account default
host xxxxx.com
from [email protected]
auth login
user fuquanjun
password fuquanjun
logfile ~/.msmtp.log
# chmod 600 /root/.msmtprc
# touch ~/.msmtp.log
3.mutt 설치 설정:(일반 Liux 에 서 는 기본 설치 mutt 가 있 습 니 다)설치 되 어 있 지 않 으 면 yum 으로 설치 합 니 다.
yum -y install mutt
# vim /root/.muttrc
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="moniter"
set [email protected]
set envelope_from=yes
set rfc2047_parameters=yes
set charset="utf-8
4.메 일 발송 테스트(-s 메 일 제목,-a 표 첨부)
# echo " 123456" | mutt -s " " -a /scripts/test.txt [email protected]
다음 오류 메시지 가 나타 납 니 다.
msmtp: account default not found: no configuration file available
메 시 지 를 보 내 는 중 오류 가 발생 했 습 니 다.하위 프로 세 스 가 78()종료 되 었 습 니 다.이 메 시 지 를 보 낼 수 없습니다.
해결 방법:
msmtp 를 단독으로 사용 하여 테스트 보 내기:/usr/local/msmtp/bin/msmtp-S 프로필 인 데 못 찾았어 요.
msmtp: account default not found: no configuration file available
현재 프로필 경로 보기:/usr/local/msmtp/bin/msmtp-P
ignoring system configuration file/work/target/etc/msmtprc: No such file or directory
ignoring user configuration file /root/.msmtprc: No such file ordirectory
falling back to default account
msmtp: account default not found: no configuration file available
그래서/usr/local/etc/msmtprc /root/msmtprc 로 복사mutt 파일 설치 디 렉 터 리 상황 보기
rpm -ql mutt
그래서/etc/Muttrc /root/muttrc 로 복사 하면 메 일 을 보 낼 수 있 습 니 다.2.서버 시스템 부하 상황 모니터링:
1.uptime 명령 으로 현재 부하 상황 보기(1 분,5 분,15 분 평균 부하 상황)는 애플 의 Mac 컴퓨터 에 도 적 용 됩 니 다.
# uptime
15:43:59 up 186 days, 20:04, 1 user, load average: 0.01, 0.02, 0.00
'load average'는 각각 1 분,5 분,15 분 동안 시스템 의 평균 부하 라 는 뜻 이다.(1)주로'15 분 시스템 부하'를 관찰 하고 이 를 컴퓨터 의 정상 적 인 운행 기준 으로 한다.
(2)15 분 안에(시스템 부하 가 CPU 핵심 수량 으로 나 눈 후의)평균 부하 가 1.0 보다 크 면 문제 가 지속 적 으로 존재 하고 일시적인 현상 이 아니 라 는 것 을 나타 낸다.
(3)시스템 부하 가 0.7 보다 크 면 조 사 를 시작 해 야 한다.문제 가 어디 에 있 는 지 상황 이 악화 되 는 것 을 방지 해 야 한다.
(4)시스템 부하 가 1.0 이상 지속 되면 해결 방법 을 찾 아 이 수 치 를 낮 춰 야 한다.
(5)시스템 부하 가 5.0 에 이 르 면 시스템 에 심각 한 문제 가 있 고 장시간 응답 하지 않 거나 다운 에 가 까 워 진 것 을 나타 낸다.
컴퓨터 에 CPU 가 하나 밖 에 없다 고 가정 해 봐.컴퓨터 에 CPU 2 개 를 설치 했다 면 컴퓨터 의 처리 능력 이 배로 늘 었 고 동시에 처리 할 수 있 는 프로 세 스 수도 배로 늘 었 다 는 뜻 이다.
2 개의 CPU 는 시스템 부하 가 2.0 에 달 할 수 있 음 을 나타 내 는데 이때 모든 CPU 는 100%의 작업량 에 달한다.n 개의 CPU 컴퓨터 를 보급 하면 받 아들 일 수 있 는 시스템 부하 가 최대 n.0 이다.
2.서버 cpu 의 총 핵 수 보기
# grep -c 'model name' /proc/cpuinfo cat /proc/cpuinfo
3.서버 1 분,5 분,15 분 부하 상황 캡 처
# uptime | awk '{print $8,$9,$10,$11,$12}'
load average: 0.01, 0.02, 0.00
4.캡 처 15 분 의 평균 부하 보기
# uptime | awk '{print $12}' ( '{print $12}' , awk 12 , 。 $NF )
# uptime | awk '{print $NF}'
5.시스템 부하 모니터링 스 크 립 트 파일 작성:
# vim /scripts/load-check.sh
[code]
#!/bin/bash
# uptime linux
# ( >>)
date >> /scripts/datetime-load.txt
# 1 、5 、15
uptime | awk '{print $8,$9,$10,$11,$12}' >> /scripts/load.txt
# ( >)
paste /scripts/datetime-load.txt /scripts/load.txt > /scripts/load_day.txt
# chmod a+x /scripts/load-check.sh
6.시스템 부하 결과 파일 메 일 발송 스 크 립 트 작성:
# vim /scripts/sendmail-load.sh
#!/bin/bash
# load_day.txt
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
#
today=`date -d "0 day" +%Y %m %d `
#
echo " $IP $today , 。" | mutt -s "$IP $today " -a /scripts/load_day.txt [email protected]
# chmod a+x /scripts/sendmail-load.sh
7.시스템 부하 모니터링 스 크 립 트 파일 작성:
# vim /scripts/load-warning.sh
#!/bin/bash
# uptime linux
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
# cpu
cpu_num=`grep -c 'model name' /proc/cpuinfo`
# 15
load_15=`uptime | awk '{print $NF}'`
# 15 , 1.0 0。
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
#
average_int=`echo $average_load | cut -f 1 -d "."`
# 15 0.70( 70% )。
load_warn=0.70
# 15 1.0( 0) , ; 1.0
if (($average_int > 0)); then
echo "$IP 15 $average_load, 1.0, !!!" | mutt -s "$IP !!!" [email protected]
else
# 15 ( 0.70 1, 0 )
load_now=`expr $average_load \> $load_warn`
# 15 0.70( 1),
if (($load_now == 1)); then
echo "$IP 15 $average_load, 0.70, 。" | mutt -s "$IP " [email protected]
fi
fi
# chmod a+x /scripts/load-warning.sh
3.서버 시스템 cpu 점용 상황 모니터링:1.top 명령 으로 Liux 시스템 cpu 사용 현황 보기:
# top -b -n 1 | grep Cpu (-b -n 1 1 )
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
2.남 은 cpu 를 캡 처 하 는 백분율 값 명령 보기(정수 부분 만 가 져 오기):
# top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."
3.cpu 모니터링 스 크 립 트 파일 작성:
# vim /scripts/cpu-check.sh
#!/bin/bash
# top linux cpu
# ( >>)
date >> /scripts/datetime-cpu.txt
# cpu ( >>)
top -b -n 1 | grep Cpu >> /scripts/cpu-now.txt
# cpu ( >)
paste /scripts/datetime-cpu.txt /scripts/cpu-now.txt > /scripts/cpu.txt
# chmod a+x /scripts/cpu-check.sh
4.CPU 모니터링 결과 파일 보기:
# cat /scripts/cpu.txt
5.cpu 결과 파일 을 작성 하여 메 일 로 스 크 립 트 를 보 냅 니 다:
# vim /scripts/sendmail-cpu.sh
#!/bin/bash
# cpu.txt
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
#
today=`date -d "0 day" +%Y %m %d `
# cpu
echo " $IP $today cpu , 。" | mutt -s "$IP $today CPU " -a /scripts/cpu.txt [email protected]
# chmod a+x /scripts/sendmail-cpu.sh
4.시스템 cpu 의 상황 을 감시 하고 80%가 넘 을 때 경고 메 일 을 보 냅 니 다.
# vim /scripts/cpu-warning.sh
#!/bin/bash
# cpu
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
# cpu ( )
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`
# cpu 20%, cpu 80%( 20%),
if (($cpu_idle < 20)); then
echo "$IP cpu $cpu_idle%, 80%, 。" | mutt -s "$IP CPU " [email protected]
fi
# chmod a+x /scripts/cpu-warning.sh
5.free 명령 으로 시스템 메모리 모니터링:1.free 명령 을 사용 하여 Liux 시스템 의 메모리 사용 상황 을 봅 니 다.(M 단위)
# free -m
total used free shared buffers cached
Mem: 3952 3414 538 0 168 484
-/+ buffers/cache: 2760 1191
Swap: 8191 86 8105
2.남 은 메모리 free 를 캡 처 하 는 수치 명령 보기:(1)물리 메모리 무료 값:\#free-m|grep Mem|awk'{print$4}'
(2)버퍼 의 free 값:\#free-m|grep-|awk'{print$4}'
(3)구역 별 무료 값 스 왑:\#free-m|grep 스 왑|awk'{print$4}'
3.메모리 모니터링 스 크 립 트 파일 작성:
# vim /scripts/free-mem.sh
#!/bin/bash
# free linux
# ( >>)
date >> /scripts/date-time.txt
# free ( >>)
echo Mem-free: `free -m | grep Mem | awk '{print $4}'`M >> /scripts/mem-free.txt
# free ( >>)
echo buffers/cache-free: `free -m | grep - | awk '{print $4}'`M >> /scripts/buffers-free.txt
# Swap free ( >>)
echo Swap-free: `free -m | grep Swap | awk '{print $4}'`M >> /scripts/swap-free.txt
# ( >)
paste /scripts/date-time.txt /scripts/mem-free.txt /scripts/buffers-free.txt /scripts/swap-free.txt > /scripts/freemem.txt
# chmod a+x /scripts/free-mem.sh
4.메모리 모니터링 결과 파일 보기:
# cat /scripts/freemem.txt
5.free 결과 파일 을 작성 하여 메 일 로 스 크 립 트 를 보 냅 니 다:
# vim /scripts/sendmail-mem.sh
#!/bin/bash
# freemem.txt
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
#
today=`date -d "0 day" +%Y %m %d `
#
echo " $IP $today , 。" | mutt -s "$IP $today " -a /scripts/freemem.txt [email protected]
# chmod a+x /scripts/sendmail-mem.sh
6.시스템 교환 구역 swap 의 상황 을 감시 하고 80%가 넘 을 때 경고 메 일 을 보 냅 니 다.
# vim /scripts/swap-warning.sh
#!/bin/bash
# IP
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
#
swap_total=`free -m | grep Swap | awk '{print $2}'`
# free
swap_free=`free -m | grep Swap | awk '{print $4}'`
# used
swap_used=`free -m | grep Swap | awk '{print $3}'`
if (($swap_used != 0)); then
# , free , , 0
swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`
# 20%( 80% )。
swap_warn=0.20
# ( ( 20% ) 1, ( 20%) 0 )
swap_now=`expr $swap_per \> $swap_warn`
# 80%( 20%, 0),
if (($swap_now == 0)); then
echo "$IP swap $swap_free M , 20%, 80%, 。" | mutt -s "$IP " [email protected]
fi
fi
# chmod a+x /scripts/swap-warning.sh
7.퀘 스 트 가입 계획:시스템 부하 와 CPU 점용 율 은 10 분 마다 한 번 검 측 하고 경고 가 있 으 면 즉시 메 일(10 분 에 한 번 발송)을 보 내 며 부하 와 CPU 검 측 결과 메 일 은 매일 아침 8 시 에 한 번 발송 합 니 다.# crontab -e
*/10 * * * * /scripts/load-check.sh > /dev/null 2>&1
*/10 * * * * /scripts/load-warning.sh
0 8 * * * /scripts/sendmail-load.sh
*/10 * * * * /scripts/cpu-check.sh
*/10 * * * * /scripts/cpu-warning.sh
0 8 * * * /scripts/sendmail-cpu.sh
*/10 * * * * /scripts/free-mem.sh
*/10 * * * * /scripts/swap-warning.sh
0 8 * * * /scripts/sendmail-mem.sh
# service crond restart
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 (다 중 스 레 드 대량 생 성 사용자)예 를 들 어 백업 데이터 베 이 스 는 100 개의 라 이브 러 리 가 있 고 정상 적 인 백업 효율 이 매우 낮 습 니 다.다 중 스 레 드 가 있 으 면 백업 하 는 데 10 시간 이 걸 릴 수도 있 었 는데 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.