Хорошее предложение из хинду документа alt-install: Вместо chroot /your/chroot/path /bin/bash
выполненный
chroot /your/chroot/path /bin/env -i TERM=$TERM /bin/bash
env -i
уберет среду (chroot-среда, вероятно, отличается или даже является несовместимой), в то время как TERM=$TERM
сделает chroot
редактор bash
зная о родителе TERM
переменная ($TERM
расширен родительской оболочкой прежде, чем выполнить команды).
Да, /proc/net/dev
- обычный способ. Вы также можете использовать файлы в /sys/class/net/eth0/statistics
, если вам так проще.
Или же moreutils содержит ifdata
сценарий, который получит эту информацию для вас. Например, чтобы распечатать количество байт в (-sib
) и вылет (-sob
), вы сделаете:
$ ifdata -sib -sob eth0
48115944587
71982675360
-вывод в том же порядке, что и флаги, так что это 48... в и 71... вылет.
Он также будет вычислять битов / сек за последнюю секунду для вас (делая сна 1
, в основном):
$ ifdata -bips -bops eth0
1148
1755
В прошлом я использовал вывод ifconfig
, чтобы собрать статистику по пропускной способности и записать ее в графит. Каждый интерфейс имеет счетчик RX и TX, который подсчитывает байты пропускной способности. Вам нужно только написать скрипт, который периодически опрашивает ifconfig и записывает разницу между текущим и предыдущим значением на экран или в файл.
eth0 Link encap:Ethernet HWaddr 00:0c:29:cf:12:d3
inet addr:10.100.3.26 Bcast:10.100.3.31 Mask:255.255.255.248
inet6 addr: fe80::20c:29ff:fecf:12d3/64 Scope:Link
inet6 addr: 2001:xxx:7927:3::26/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:160523475 errors:0 dropped:921 overruns:0 frame:0
TX packets:106097000 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2912933876 (2.7 GiB) TX bytes:3734512667 (3.4 GiB)
eth1 Link encap:Ethernet HWaddr 00:0c:29:cf:12:dd
inet addr:10.100.0.1 Bcast:10.100.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fecf:12dd/64 Scope:Link
inet6 addr: 2001:xxx:7927::1/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:92858590 errors:0 dropped:0 overruns:0 frame:0
TX packets:142257564 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1849495529 (1.7 GiB) TX bytes:389856127 (371.7 MiB)
eth2 Link encap:Ethernet HWaddr 00:0c:29:cf:12:e7
inet addr:10.100.4.1 Bcast:10.100.4.255 Mask:255.255.255.0
inet6 addr: 2001:xxx:7927:4::1/64 Scope:Global
inet6 addr: fe80::20c:29ff:fecf:12e7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10951337 errors:0 dropped:0 overruns:0 frame:0
TX packets:16448597 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1437098401 (1.3 GiB) TX bytes:1634328371 (1.5 GiB)
Скрипт находится по адресу https://gist.github.com/MerijntjeTak/1cddb08d191045e66a9c, возможно, вы сможете почерпнуть из этого какое-то вдохновение.
. Вы знакомы с sar
?
Вы можете попробовать sar -n ВСЕ
, чтобы получить всю возможную сетевую статистику, или если вам нужна статистика rx и tx для каждого сетевого устройства, каждую секунду - попробуйте следующее:
sar -n DEV 1
Для 5-секундной средней величины rx и tx для eth0 (например) сделайте:
sar -n DEV 1 5 | grep -i eth0 | tail -n1 | awk '{print $5, $6}'