Coleta de utilização de rede utilizando SAR (systat package)
Publicado por Hertz Raya Zocolan Silva (última atualização em 11/07/2018)
[ Hits: 2.117 ]
Script para coleta de informações de rede. Informações coletadas:
Data
Hora
Colisao
Pacotes RX (ifconfig)
Pacotes TX (ifconfig)
Pacotes RX (sar)
Pacotes TX (sar)
Active Connections Openings (sar)
Passive Connection Openings (sar)
Failed Connection Attempts (sar)
Connection Resets Received (sar)
Connections Established (sar)
Segments Received (sar)
Segments Out (sar)
Segments Retransmited (sar)
Bad Segments Received (sar)
Formato do arquivo de saída: CSV com (;) separando os campos
#!/bin/bash
#
# Script : /usr/local/scripts/coleta_network.sh
# Feito : Hertz S. ( 11/04/2016 )
# Obs : Script para coleta de informacoes de utilizacao
# de espaco em network
#
#exec 1>/dev/null
#exec 2>&1
#
# Rotina de Inclusao de Variaveis Globais -------------------------------------
#
PROCESS_NAME="Coleta de Informacoes de Rede"
DEVICE="$1"
if [ -z ${DEVICE} ]
then
echo -e "\nSintaxe: $0 [NIC_NAME}\n"
exit 23
else
ifconfig ${DEVICE} 1>/dev/null 2>&1
ERRO="$?"
if [ ${ERRO} -gt 0 ]
then
echo -e "\nNIC ${DEVICE} invalida ! ...\n"
echo -e "\nNIC valida(s) : `ifconfig -a | grep flag | grep -v LOOP | cut -d\: -f1,1 | sed 'N ; s/\n/ , /g'`\n"
exit 23
else
conf_nic="`ifconfig ${DEVICE} | grep inet | grep -v prefi | wc -l`" ; conf_nic="`echo ${conf_nic}`"
if [ "${conf_nic}" -eq 0 ]
then
echo -e "NIC ${DEVICE} sem IP configurado !\n"
exit 23
fi
fi
fi
export PATH=$PATH:/usr/bin
SERVER="`hostname`"
IP_LOCAL="`/sbin/ifconfig | grep \"cast\" | head -1 | awk '{print $2}' | cut -d\: -f2,2`"
DT_FULL="`date +%d/%m/%Y`"
DT_DT="`date +%d%m%Y`"
DT_HORA="`date +%H:%M:%S`"
DT_HR="`date +%H%M%S`"
DT_MES="`date +%m_%Y`"
DT_ano="`date +%Y`"
DT_mes="`date +%m`"
DT_DIA="`date +%a`"
if [ "${DT_DIA}" = "Sun" ] ; then DT_DIA="Domingo" ; fi
if [ "${DT_DIA}" = "Mon" ] ; then DT_DIA="Segunda" ; fi
if [ "${DT_DIA}" = "Tue" ] ; then DT_DIA="Terca" ; fi
if [ "${DT_DIA}" = "Wed" ] ; then DT_DIA="Quarta" ; fi
if [ "${DT_DIA}" = "Thu" ] ; then DT_DIA="Quinta" ; fi
if [ "${DT_DIA}" = "Fri" ] ; then DT_DIA="Sexta" ; fi
if [ "${DT_DIA}" = "Sat" ] ; then DT_DIA="Sabado" ; fi
if [ "${DT_mes}" = "01" ] ; then DT_MES_NAME="Janeiro" ; fi
if [ "${DT_mes}" = "02" ] ; then DT_MES_NAME="Fevereiro" ; fi
if [ "${DT_mes}" = "03" ] ; then DT_MES_NAME="Marco" ; fi
if [ "${DT_mes}" = "04" ] ; then DT_MES_NAME="Abril" ; fi
if [ "${DT_mes}" = "05" ] ; then DT_MES_NAME="Maio" ; fi
if [ "${DT_mes}" = "06" ] ; then DT_MES_NAME="Junho" ; fi
if [ "${DT_mes}" = "07" ] ; then DT_MES_NAME="Julho" ; fi
if [ "${DT_mes}" = "08" ] ; then DT_MES_NAME="Agosto" ; fi
if [ "${DT_mes}" = "09" ] ; then DT_MES_NAME="Setembro" ; fi
if [ "${DT_mes}" = "10" ] ; then DT_MES_NAME="Outubro" ; fi
if [ "${DT_mes}" = "11" ] ; then DT_MES_NAME="Novembro" ; fi
if [ "${DT_mes}" = "12" ] ; then DT_MES_NAME="Dezembro" ; fi
# Declaracao de Variaveis -----------------------------------------------------
DIRCOL="/usr/local/coleta_`hostname`/network/${DT_MES}"
mkdir -p ${DIRCOL}
#
# Inicio do Script ------------------------------------------------------------
#
FSTXT="${DIRCOL}/${DT_DT}.txt"
/usr/bin/sar -n DEV 1 2 | grep ${DEVICE} > /tmp/sarn.$$
netstat --statistic > /tmp/net.$$
COLISAO_NIC="`/sbin/ifconfig ${DEVICE} | grep -e col | awk '{print $11}'`"
RX_NIC="`/sbin/ifconfig ${DEVICE} | grep RX | grep -v err | cut -d\( -f2,2 | cut -d\) -f1,1`"
TX_NIC="`/sbin/ifconfig ${DEVICE} | grep TX | grep -v err | cut -d\( -f2,2 | cut -d\) -f1,1`"
NIC_RX_PCK="`cat /tmp/sarn.$$ | tail -1 | grep ${DEVICE} | awk '{print $3}'`"
NIC_TX_PCK="`cat /tmp/sarn.$$ | tail -1 | grep ${DEVICE} | awk '{print $4}'`" ; yes | rm /tmp/sarn.$$ 2>/dev/null
ACTIVE_CONNECTIONS_OPENINGS="`cat /tmp/net.$$ | grep \"active connections openings\" | awk '{print $1}'`"
PASSIVE_CONNECTION_OPENINGS="`cat /tmp/net.$$ | grep \"passive connection openings\" | awk '{print $1}'`"
FAILED_CONNECTION_ATTEMPTS="`cat /tmp/net.$$ | grep \"failed connection attempts\" | awk '{print $1}'`"
CONNECTION_RESETS_RECEIVED="`cat /tmp/net.$$ | grep \"connection resets received\" | awk '{print $1}'`"
CONNECTIONS_ESTABLISHED="`cat /tmp/net.$$ | grep \"connections established\" | awk '{print $1}'`"
SEGMENTS_RECEIVED="`cat /tmp/net.$$ | grep \"segments received\" | grep -v \"bad\" | awk '{print $1}'`"
SEGMENTS_SEND_OUT="`cat /tmp/net.$$ | grep \"segments send out\" | awk '{print $1}'`"
SEGMENTS_RETRANSMITED="`cat /tmp/net.$$ | grep \"segments retransmited\" | awk '{print $1}'`"
BAD_SEGMENTS_RECEIVED="`cat /tmp/net.$$ | grep \"bad segments received\" | awk '{print $1}'`"
yes | rm /tmp/net.$$ 2>/dev/null
COLISAO_NIC="`echo ${COLISAO_NIC}`"
RX_NIC="`echo ${RX_NIC}`"
TX_NIC="`echo ${TX_NIC}`"
NIC_RX_PCK="`echo ${NIC_RX_PCK}`"
NIC_TX_PCK="`echo ${NIC_TX_PCK}`"
ACTIVE_CONNECTIONS_OPENINGS="`echo ${ACTIVE_CONNECTIONS_OPENINGS}`"
PASSIVE_CONNECTION_OPENINGS="`echo ${PASSIVE_CONNECTION_OPENINGS}`"
FAILED_CONNECTION_ATTEMPTS="`echo ${FAILED_CONNECTION_ATTEMPTS}`"
CONNECTION_RESETS_RECEIVED="`echo ${CONNECTION_RESETS_RECEIVED}`"
CONNECTIONS_ESTABLISHED="`echo ${CONNECTIONS_ESTABLISHED}`"
SEGMENTS_RECEIVED="`echo ${SEGMENTS_RECEIVED}`"
SEGMENTS_SEND_OUT="`echo ${SEGMENTS_SEND_OUT}`"
SEGMENTS_RETRANSMITED="`echo ${SEGMENTS_RETRANSMITED}`"
BAD_SEGMENTS_RECEIVED="`echo ${BAD_SEGMENTS_RECEIVED}`"
COLISAO_NIC_X="Colisao"
RX_NIC_X="Pacotes RX (ifconfig)"
TX_NIC_X="Pacotes TX (ifconfig)"
NIC_RX_PCK_X="Pacotes RX (sar)"
NIC_TX_PCK_X="Pacotes TX (sar)"
ACTIVE_CONNECTIONS_OPENINGS_X="Active Connections Openings (sar)"
PASSIVE_CONNECTION_OPENINGS_X="Passive Connection Openings (sar)"
FAILED_CONNECTION_ATTEMPTS_X="FAiled Connection Attempts (sar)"
CONNECTION_RESETS_RECEIVED_X="Conection Resets Received (sar)"
CONNECTIONS_ESTABLISHED_X="Connections Established (sar)"
SEGMENTS_RECEIVED_X="Segments Received (sar)"
SEGMENTS_SEND_OUT_X="Segments Out (sar)"
SEGMENTS_RETRANSMITED_X="Segments Retransmited (sar)"
BAD_SEGMENTS_RECEIVED_X="Bad Segments Received (sar)"
if [ -f "${FSTXT}" ]
then
echo $FSTXT existe > /dev/null
echo "${DT_FULL};${DT_HORA};${COLISAO_NIC};${RX_NIC};${TX_NIC};${NIC_RX_PCK};${NIC_TX_PCK};${ACTIVE_CONNECTIONS_OPENINGS};${PASSIVE_CONNECTION_OPENINGS};${FAILED_CONNECTION_ATTEMPTS};${CONNECTION_RESETS_RECEIVED};${CONNECTIONS_ESTABLISHED};${SEGMENTS_RECEIVED};${SEGMENTS_SEND_OUT};${SEGMENTS_RETRANSMITED};${BAD_SEGMENTS_RECEIVED}" >> ${FSTXT}
else
echo $FSTXT nao > /dev/null
echo "[ ${SERVER} ${IP_LOCAL} ] - ${DT_MES_NAME} de ${DT_ano}" > ${FSTXT}
echo "" >> ${FSTXT}
echo "Data;Hora;${COLISAO_NIC_X};${RX_NIC_X};${TX_NIC_X};${NIC_RX_PCK_X};${NIC_TX_PCK_X};${ACTIVE_CONNECTIONS_OPENINGS_X};${PASSIVE_CONNECTION_OPENINGS_X};${FAILED_CONNECTION_ATTEMPTS_X};${CONNECTION_RESETS_RECEIVED_X};${CONNECTIONS_ESTABLISHED_X};${SEGMENTS_RECEIVED_X};${SEGMENTS_SEND_OUT_X};${SEGMENTS_RETRANSMITED_X};${BAD_SEGMENTS_RECEIVED_X}" >> ${FSTXT}
echo "${DT_FULL};${DT_HORA};${COLISAO_NIC};${RX_NIC};${TX_NIC};${NIC_RX_PCK};${NIC_TX_PCK};${ACTIVE_CONNECTIONS_OPENINGS};${PASSIVE_CONNECTION_OPENINGS};${FAILED_CONNECTION_ATTEMPTS};${CONNECTION_RESETS_RECEIVED};${CONNECTIONS_ESTABLISHED};${SEGMENTS_RECEIVED};${SEGMENTS_SEND_OUT};${SEGMENTS_RETRANSMITED};${BAD_SEGMENTS_RECEIVED}" >> ${FSTXT}
fi
#
# Final do Script ------------------------------------------------------------
#
baixar mp3 do site mp3tube.net
Adiciono linhas ao sources.list
Troca de imagem da tela de bloqueio de usuário no Linux Mint MATE
Nenhum comentário foi encontrado.
Berry Bank: Criando um Banco Digital Gamificado para seus Filhos com Gentoo, Flask e Tailscale
Papagaiando o XFCE com temas e recursos
Instale o DOOM Retro no Gentoo facilmente via Overlay
Steam (Flatpak) rodando jogos em partição NTFS
O dock Plank + U-Launcher deixam qualquer desktop mais produtivo
Instalar Linux em notebook Sony Vaio VPCEG13EB (17)
Alguém tem que acabar com ANATEL!!! (10)
O que você está ouvindo agora? [2] (229)









