Контролируйте единственный процесс к файлу журнала perodicly

Обычно разрешение колеса мыши определяется настольной средой, которую Вы используете. Какую настольную среду Вы используете в настоящее время?

2
13.04.2017, 15:36
2 ответа

я пытался получить rx_bytes и tx_bytes, но никакая удача, другие вещи работают.. Таким образом, можно использовать ниже сценария для того же

#!/bin/bash

# /sys/class/net/eth0/statistics/rx_bytes
# /sys/class/net/eth0/statistics/tx_bytes

Process="$1"

[[ -z $2 ]] && InterVal=1 || InterVal=$2

show_help() {
cat <<_EOF
Usage :
        $0  <ProcessName>  <Interval (Default 1s)>
_EOF
}

Show_Process_Stats() {
pgrep "${Process}" >/dev/null 2>&1 || { echo "Error: Process($1) it not Running.."; exit 1;};
while :
do
    # timestamp(unix),cpu_activity(%),mem_usage(B),network_activity(B)
    timestamp=$(date +%s)
    read cpu_activty mem_usage < <( ps --no-headers -o %cpu,rssize  -C "${Process}" )   
    echo "${timestamp}","${cpu_activty}","${mem_usage}"
    sleep $InterVal
done
}


Main() {
case $1 in
        ""|-h|--help)
                      show_help
                      ;;
                     *)
                      Show_Process_Stats
                      ;;
esac                      
}


Main $*
1
27.01.2020, 22:23
  • 1
    Отличная работа! Конечно, PS является способом пойти. –  Theodor 15.12.2012, 12:18
  • 2
    , который я возвращу Вам, если я выясню сеть tx, rx –  Theodor 15.12.2012, 13:12

что вычисление должно сделать с rx и tx? я попробовал ниже вещей, проверьте и сообщите нам то, что Вы хотите выполнить.

#!/bin/bash

# /sys/class/net/eth0/statistics/rx_bytes
# /sys/class/net/eth0/statistics/tx_bytes

Process="$1"

[[ -z $2 ]] && InterVal=1 || InterVal=$2

show_help() {
cat <<_EOF
Usage :
                $0  <ProcessName>  <Interval (Default 1s)>
_EOF
}

Show_Process_Stats() {
pgrep "${Process}" >/dev/null 2>&1 || { echo "Error: Process($1) it not Running.."; exit 1;};
old_rx=0
old_tx=0
echo "timestamp,cpu_activty,mem_usage,rx_bytes,tx_bytes"
while :
do
        # timestamp(unix),cpu_activity(%),mem_usage(B),network_activity(B)
        timestamp=$(date +%s)
        raw_rx_bytes=$(< /sys/class/net/eth0/statistics/rx_bytes )
        raw_tx_bytes=$(< /sys/class/net/eth0/statistics/tx_bytes )
        rx_bytes=$(( $raw_rx_bytes - $old_rx ))
        tx_bytes=$(( $raw_tx_bytes - $old_tx ))
        read cpu_activty mem_usage < <( ps --no-headers -o %cpu,rssize  -C "${Process}" )
        echo "${timestamp}","${cpu_activty}","${mem_usage}","${rx_bytes}","${tx_bytes}"
        old_rx=${raw_rx_bytes}
        old_tx=${raw_tx_bytes}
        sleep $InterVal
done
}


Main() {
case $1 in
                ""|-h|--help)
                                          show_help
                                          ;;
                                         *)
                                          Show_Process_Stats
                                          ;;
esac
}


Main $*
0
27.01.2020, 22:23

Теги

Похожие вопросы