21 lines
1.2 KiB
Bash
Executable File
21 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# 운영 서버(EC2) /home/ubuntu/temp/apache-peak.sh 사본 — 평일 12:50 cron 등록
|
|
# 10초 간격 780회 = 130분 (12:50~15:00). vmstat 모니터링과 같은 시각에 실행.
|
|
LOG="/home/ubuntu/temp/apache_$(date +%Y%m%d-%H%M).log"
|
|
echo "time busy idle K W R total_accesses db_conn db_max db_total" > "$LOG"
|
|
for i in $(seq 1 780); do
|
|
s=$(curl -s http://localhost/server-status?auto)
|
|
sb=$(echo "$s" | awk -F': ' '/^Scoreboard/{print $2}')
|
|
db=$(sudo -n /usr/bin/mariadb -N -B -e "SHOW GLOBAL STATUS WHERE Variable_name IN ('Connections','Max_used_connections','Threads_connected')" 2>/dev/null \
|
|
| awk '{v[$1]=$2} END{printf "%s %s %s", (v["Threads_connected"]?v["Threads_connected"]:"NA"), (v["Max_used_connections"]?v["Max_used_connections"]:"NA"), (v["Connections"]?v["Connections"]:"NA")}')
|
|
echo "$(date +%H:%M:%S) \
|
|
$(echo "$s" | awk -F': ' '/^BusyWorkers/{print $2}') \
|
|
$(echo "$s" | awk -F': ' '/^IdleWorkers/{print $2}') \
|
|
$(echo "$sb" | tr -cd 'K' | wc -c) \
|
|
$(echo "$sb" | tr -cd 'W' | wc -c) \
|
|
$(echo "$sb" | tr -cd 'R' | wc -c) \
|
|
$(echo "$s" | awk -F': ' '/^Total Accesses/{print $2}') \
|
|
${db:-NA NA NA}" >> "$LOG"
|
|
sleep $(( 10 - $(date +%s) % 10 ))
|
|
done
|