Monitorar status de transferência das interfaces de rede
Publicado por Sandro Marcell (última atualização em 09/10/2013)
[ Hits: 6.215 ]
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
Acesso remoto via SSH sem senha
Ferramenta para o CBQ - parte 1
Script Para Ajustar o Intevalo de Legendas
Criar políticas para o SELinux
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Quais Shell Scripts vocês usam? (15)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (22)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba