Из команды

watch -n1 "ifconfig eth0 | grep GiB"

Я дал вывод ниже.

Теперь я просто хочу последние 5 цифр перед (ГиБ). Я написал регулярное выражение для этого, и, кажется, работает

(\d{1,4})(?!.*\d)\sGiB

Единственная проблема в том, что я не могу использовать это с командой, которую я показал выше? Я использую Ubuntu любую помощь

2 ответа2

2

Ваш тест будет прерван, если сервер перезагрузится или будет очень занят: ifconfig масштабирует используемые им единицы в зависимости от того, сколько данных было передано. Например, сервер, которым я управляю, имеет следующее:

RX bytes:8697322454215 (7.9 TiB)  TX bytes:2151364718288 (1.9 TiB)

Возможно, вам будет проще наблюдать за содержимым /proc/net/dev , откуда ifconfig получает свои данные. Его содержимое выглядит как

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo: 1204278   13020    0    0    0     0          0         0  1204278   13020    0    0    0     0       0          0
 wlan0: 658883131  568453    0    0    0     0          0         0 56092206  420036    0    0    0     0       0          0
0

попробуйте sed:

| sed 's/.*(\([0-9.]*\s\)GiB)\s.*/\1/'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .