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.662 ]
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 ------------------------------------------------------------ #
Ajuste de data e hora automática
mysqlapache2combo - Pequeno script que facilita a vida
Configuração de rede wireless (WPA)
Acertando número para numeração
Nenhum comentário foi encontrado.
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Graduação e certificação Eng. de redes e Eng. Linux[DUVIDA] (0)
Controle do PS5 no Linux Mint funciona? (3)
Autenticação necessária. um aplicativo quer acesso ao chaveiro "c... (1)