Você pode usar o filtro de pacotes (PF) para isso, que faz parte do OSX. Primeiro, crie uma regra que rotule todo o tráfego na interface ( en1 neste exemplo - substitua por sua interface real):
echo "pass on en1 label \"traffic-en1\"" | sudo pfctl -f-
sudo pfctl -E # enable PF
Agora o tráfego está sendo contado e você pode visualizar os contadores com sudo pfctl -sl
:
traffic-en1 4701 69 13029 40 6292 29 6737
Sinta-se à vontade para convertê-los em uma formatação mais humana:
sudo pfctl -sl | awk '$1="traffic-en1" { printf "KBytes total: %d (in: %d, out: %d)\n", $4/1024, $6/1024, $8/1024 }'
Qual deve ser algo como KBytes total: 192 (in: 95, out: 97)
.
Você pode redefinir o contador com sudo pfctl -z
.
Nota: o OS X pode reclamar sobre "Nenhum suporte ao ALTQ no kernel, funções relacionadas ao ALTQ desativadas" ao invocar o pfctl - isto é perfeitamente normal e seguro para ignorar.
Nota 2: Não é recomendado jogar com as configurações de firewall remotamente, mas no pior dos casos, pfctl -d
desativará a coisa toda (se você se bloqueou de alguma forma).