jarek 4 Zgłoś post Napisano Maj 22, 2008 Tak jak w temacie.. Poszukuję czegoś co pokazuje mi mniej więcej jakie domeny/konta obciążają w % serwer? Czy jest coś takiego za friko ? : ) Jeżeli nie, a jest płatne to poproszę o linki : ) Bo w google raczej nic nie znalazłem.. Udostępnij ten post Link to postu Udostępnij na innych stronach
ey. 0 Zgłoś post Napisano Maj 22, 2008 server-status Udostępnij ten post Link to postu Udostępnij na innych stronach
jarek 4 Zgłoś post Napisano Maj 22, 2008 ok. thx potem zobaczę Udostępnij ten post Link to postu Udostępnij na innych stronach
lukaschemp 27 Zgłoś post Napisano Maj 22, 2008 Proszę: #!/bin/bash usageHelp="Usage: ${0##*/}" uidHelp="-u starting uid, must be an integer greater than or equal to 0 (only used with \"-w users\")" maxCpuHelp="-m max cpu, must be an integer greater than or equal to 0 and less than 100" watchHelp="-w what to watch, must be \"users\" or \"procs\"" emailHelp="-e must contain an email address" debugHelp="-d specifies debug mode in which -e, -m, and -u do not need to be specified." badOptionHelp="Option not recognised" printHelpAndExit() { echo "$usageHelp" echo "$uidHelp" echo "$maxCpuHelp" echo "$watchHelp" echo "$emailHelp" echo "$debugHelp" exit $1 } printErrorHelpAndExit() { echo echo "$@" echo echo printHelpAndExit 1 } whatTowatch="" email="" startAtUid="-1" maxCpuUsage="-1" debug="" while getopts "hw:e:u:m:d" optionName; do case "$optionName" in h) printHelpAndExit 0;; d) debug="0";; w) whatTowatch="$OPTARG";; e) email="$OPTARG";; u) startAtUid="$OPTARG";; m) maxCpuUsage="$OPTARG";; [?]) printErrorHelpAndExit "$badOptionHelp";; esac done outputCmd="mail -s 'CPU Abusers on ${HOSTNAME}' $email" [[ "$whatTowatch" != "users" ]] && [[ "$whatTowatch" != "procs" ]] && printErrorHelpAndExit "$watchHelp" if [[ -z "$debug" ]] then ( [[ "$maxCpuUsage" -ge 0 ]] && [[ "$maxCpuUsage" -le 100 ]] ) || printErrorHelpAndExit "$maxCpuHelp" [[ "$startAtUid" -eq -1 ]] && [[ "$whatTowatch" == "users" ]] && printErrorHelpAndExit "$uidHelp" [[ -z "$email" ]] && printErrorHelpAndExit "$emailHelp" else outputCmd=cat fi tmpOutputFile=$( mktemp -q -t tmp.cpu.XXXXXXXXXXXX 2>/dev/null ) if [[ -z "$tmpOutputFile" ]] || [[ ! -f "$tmpOutputFile" ]] then tmpOutputFile="/tmp/tmp.cpu.$(date +%S).$$" I=0 while [[ -f "$tmpOutputFile" ]] do tmpOutputFile="$tmpOutputFile.$I" ((I++)) done fi trap "rm -f $tmpOutputFile; exit" SIGINT SIGTERM usersToWatch() { awk -F: '{print $1 , $3}' /etc/passwd | \ while read user id do if [ $id -ge $startAtUid ] then echo $user fi done } sum() { local cum=0 for i in $@ do (( cum = cum + ${i%.*} )) done echo $cum } abusersExist() { if [[ "$whatTowatch" == "users" ]] then for user in $( usersToWatch ) do cpu=$( ps -o pcpu -u $user | grep -v CPU ) local cumUsage=$( sum $cpu ) if [[ $cumUsage -ge $maxCpuUsage ]] then echo "User $user is using $cumUsage% cpu." >> $tmpOutputFile fi done elif [[ "$whatTowatch" == "procs" ]] then local last="" local cumUsage=0 ps -o comm,pcpu -e | grep -v CPU | sort | \ while read comm cpu do if [[ "$comm" != "$last" ]] && [[ ! -z "$last" ]] then if [[ $cumUsage -ge $maxCpuUsage ]] then echo "Process $last is using $cumUsage% cpu." >> $tmpOutputFile fi cumUsage=0 fi cumUsage=$( sum $cumUsage $cpu ) last="$comm" done fi } abusersExist if [ -s $tmpOutputFile ] then ( date; cat $tmpOutputFile ) | eval "$outputCmd" fi rm -f $tmpOutputFile Przykładowe użycie: ./skrypt -w users -d -u 100 Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrick Zgłoś post Napisano Maj 22, 2008 Ogólnie dostępnego nie ma: - server-status z apache. - przełączenie php na fastcgi i monitoring procesów. - slow-log z mysql. I jeszcze kilka jakiś sztuczek Udostępnij ten post Link to postu Udostępnij na innych stronach
jarek 4 Zgłoś post Napisano Maj 22, 2008 ok thx za wszystkie porady i thx @lukaschemp Udostępnij ten post Link to postu Udostępnij na innych stronach
jarek 4 Zgłoś post Napisano Maj 22, 2008 przy skrypcie @lukaschemp pokazuje mi tylko, że httpd uzywa 30% reszta na 0% heh... potem zobaczę inne Udostępnij ten post Link to postu Udostępnij na innych stronach