Monitorar status de transferência das interfaces de rede
Publicado por Sandro Marcell (última atualização em 09/10/2013)
[ Hits: 6.672 ]
Homepage: http://sanmarcell.wordpress.com
Download 1381297433.bwd_meter (versão 2)
Sem ter muito o que fazer por hoje :P, escrevi esse Shell Script básico que mostra o status de consumo das interfaces de rede em tempo real no terminal! Não é lá essas coisas, mas o que tá valendo é a intenção... :)
P.S.: melhorias serão bem-vindas.
#!/bin/bash
#
# Copyright 2013 Sandro Marcell <smarcell@myopera.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
PATH='/bin:/usr/bin:/usr/local/bin'
trap 'echo -ne "{FONTE}33[?12l{FONTE}33[?25h"; exit 0' SIGINT SIGTERM SIGQUIT
[ $# -eq 0 ] && { echo "Usage: $0 -u K|M|G -i interface"; exit 1; }
unit='xxx'
iface='yyy'
while [ $# -ne 0 ]; do
case "$1" in
'-u')
shift
unit="$1"
;;
'-i')
shift
iface="$1"
;;
*)
echo "Usage: $0 -u K|M|G -i interface"
exit 1
esac
shift
done
echo "$unit" | grep -q '\(K\|M\|G\)' || { echo "Use only K(ilo), M(ega) or G(iga)"; exit 1; }
if [ ! -d "/sys/class/net/$iface" ]; then
echo "$iface: interface not found"
exit 1
fi
function bandwidthCalc {
if [ "$1" == 'K' ]; then
echo "scale = 2; $bytes_diff / 128" | bc
elif [ "$1" == 'M' ]; then
echo "scale = 2; $bytes_diff * 8 / 1048576" | bc
elif [ "$1" == 'G' ]; then
echo "scale = 2; $bytes_diff * 8 / 1073741824" | bc
fi
}
echo -ne "{FONTE}33[?25l"
while true; do
exec 3< /sys/class/net/$iface/statistics/rx_bytes; read -u 3 rx_1; exec 3<&-
sleep 1
exec 3< /sys/class/net/$iface/statistics/rx_bytes; read -u 3 rx_2; exec 3<&-
(( bytes_diff = rx_2 - rx_1 ))
rx_bwd=$(bandwidthCalc $unit)
echo -ne "$iface: transfer rate - {FONTE}33[1;33m$rx_bwd{FONTE}33[00m ${unit}bit/s{FONTE}33[0K\r"
done
Obter ip a partir de um NO-IP ou DYNDNS e atualizar o endereço do MUNIN MESTRE em um nó linux.
Mantenha seu relógio ajustado 2.0
Gerando HTML de status de HD e coneccao de internet
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









