CPU 사용률, 메모리 사용률, I/O 사용률 및 네트워크 사용률을 모니터링 할 수있는 스크립트를 만들려고합니다. 현재 리눅스에서 필요한 명령을 실행해야하는 스크립트가 있습니다. 다행히 결국, 나는 매 15 분마다 이것을 실행할 수있을 것이고, 그런 다음 특정 정보를 사용하여 데이터를 분석 할 수있을 것이다. 다음은 스크립트입니다.리눅스의 성능 모니터링 스크립트
#!/bin/sh
########################################################
OUTPUT="ServerPerf`date '+%d%m%y'`.out"
(
echo "=================================================="
echo " Script Starting Time : `date` "
echo "================================================="
echo " Disk I/O Status "
echo "================================================="
echo
iostat
echo
echo "================================================="
echo "##################################################"
echo " NETWORK TCP PARAMETERS STATUS "
echo "##################################################"
echo
echo
netstat -sp tcp
echo
echo " Processes List "
echo
ps -elf
echo
echo " END "
echo
echo "##################################################"
echo "##################################################"
echo " NETWORK CONNECTION PARAMETER "
echo "##################################################"
echo
echo
netstat -an
echo
echo
echo "##################################################"
echo " NETWORK TRAFFIC STATUS ON INTERFACES "
echo "##################################################"
echo
echo
netstat -i
echo
echo
echo "##################################################"
echo " SERVER MEMORY/CPU Utilization Report "
echo "##################################################"
echo
top -d1 -n 5
echo "=================================================="
echo " VMSTAT INFO "
echo "=================================================="
echo
vmstat 5 5
echo
echo "=================================================="
echo " Script Ending Time : `date` "
echo
echo "=================================================="
) >> $OUTPUT
이제 생성 된 이러한 파일에서 유용한 데이터를 가져오고 싶습니다.
이- 로드 평균
- CPU 유휴 비율
- 커널 이용
- 메모리 사용률
- 스와핑 활동
나 ': 데이터로 분류 될 수있는 몇 가지 종류가있다 이 명령을 사용하여이 5 개의 파일을 생성하려고하는데 어려움을 겪고있는 것 같습니다.
grep "load avg" /home/test/logs/ServerPerf180610.out | awk '{ print $6 }' | awk -F, '{ print $1 }' > load_avg.txt
grep "CPU states" /home/test/logs/ServerPerf180610.out | awk '{ print $3 }' | awk -F% '{ print $1 }' > cpu_idle.txt
grep "CPU states" /home/test/logs/ServerPerf180610.out | awk '{ print $7 }' | awk -F% '{ print $1 }' > cpu_kernel.txt
grep "Memory" /home/test/logs/ServerPerf180610.out | awk '{ print $5 }' | awk -FG '{ print $1 }' > memory_util.txt
grep "Memory" /home/test/logs/ServerPerf180610.out | awk '{ print $11 }' | awk -FG '{ print $1 }' > swap_util.txt
이러한 명령이 실행되는 동안 출력 파일은 단지 비어 있습니다. 왜 내가이 파일을 생성 할 수 없는지 아는 사람 있습니까?
정말 고맙습니다. 다음은 출력 파일의 복사본입니다 :
는 아론에게, UDPATE 감사 http://www.queencitytech.com/ServerPerfRepo180610.out
다른 버전이 있기 때문에 확실하게 알 수 없습니다. 하지만 문제 해결을 위해 awk 부분을 제거해 보셨습니까? 즉, 중간에 두 awk 명령 대신 "grep ...> load_avg.txt"를 사용 하시겠습니까? – MJB
맨 위 명령이이 스크립트에서 사용되고 있습니다. 나는 awk를 제거하려고했지만 아무 것도 출력하지 않겠다. – Aaron
vmstat과 dstat은 어떨까요? – Drakosha