Lentamente, confuso meu caminho aprendendo como manipular variáveis para um script bash que estou escrevendo. Eu estou tentando usar AWK (tentei Grep mas não granular o suficiente eu não acho) para puxar a fonte e dest de iftop.
O comando iftop base que estou usando é:
sudo iftop -t -L1 -s1 -f "dst host 10.0.0"
Eu posso mudar o dst para src para obter o reverso. Portanto, o exemplo de saída do comando acima é:
interface: eth0
IP address is: 10.0.0.104
MAC address is: b8:27:eb:6a:26:84
Listening on eth0
# Host name (port/service if enabled) last 2s last 10s last 40s cumulative
--------------------------------------------------------------------------------------------
1 10.0.0.255 => 0b 0b 0b 0B
10.0.0.15 <= 1.14Kb 1.14Kb 1.14Kb 291B
--------------------------------------------------------------------------------------------
Total send rate: 480b 480b 480b
Total receive rate: 1.29Kb 1.29Kb 1.29Kb
Total send and receive rate: 1.76Kb 1.76Kb 1.76Kb
--------------------------------------------------------------------------------------------
Peak rate (sent/received/total): 480b 1.29Kb 1.76Kb
Cumulative (sent/received/total): 120B 331B 451B
============================================================================================
Estou tentando usar o AWK para enviar os dois endereços IP (ou podem ser domínios) para as variáveis em que posso fazer algo no bash.
Se eu usar um comando como:
sudo iftop -t -L1 -s1 -f "dst host 10.0.0" 2> /dev/null | awk '/^ 1 / {print $2}'
Isso me dá o primeiro IP ou domínio, mas agora preciso da segunda linha abaixo. Eu tentei usar algo como:
sudo iftop -t -L1 -s1 -f "dst host 10.0.0" 2> /dev/null | awk '/^ 1 /{c=2} c&&c-- {print $2}'
Isso quase funciona, mas por causa do espaçamento branco na segunda linha, AWK conta o que é a coluna 2 na primeira linha como coluna 1 no segundo, então a saída que obtenho é:
10.0.0.255
<=
Eu sinto que estou perto, mas não consigo descobrir como usar um único comando AWK para citar os dois números certos.
Não é possível executar facilmente uma segunda comparação de padrões para o 2º número, pois o espaço em branco antes do IP ou do domínio não é suficiente para continuar, não é o ideal, portanto, quero combinar com o primeiro e depois mova para a próxima linha, mas escolha a coluna 1 em vez da coluna 2.
Eu também quero evitar a execução de um segundo comando iftop, pois os resultados podem ser diferentes do primeiro.
Depois, preciso saber como convertê-los em variáveis para um script bash em vez de imprimi-los na tela.
Alguma idéia?