Coleta de utilização de rede utilizando SAR (systat package)
Publicado por Hertz Raya Zocolan Silva (última atualização em 11/07/2018)
[ Hits: 1.914 ]
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 ------------------------------------------------------------
#
Huawei Claro - Configurar modem Huawei no Linux
Informação sobre partições montadas em Xdialog
Renomear legendas srt de filmes e séries
Gerenciador de contas de usuários
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Queda no serviços da Cloudflare, alguns sites estão fora do ar. (1)
Perfil criado no samba ad dc não loga no Windows 10 e 11 (11)









