Как создать TMUX из источника без корневого доступа с пользовательским либелистом 2.1?

iftop прослушивает последние 40 секунд трафика, если вызывается только один раз или когда вызывается без параметров. слушает истекший период. Опрос, который он выполняет во время работы, не отражает истинного использования сервера с течением времени.

Отслеживание трафика с помощью iftop также создает нагрузку на систему, которая может быть более или менее значительной в зависимости от объема трафика, так как сетевые данные должны передаваться и обрабатываться API pcap.

Несмотря на то, что это отличный инструмент для отладки сетевых проблем и, в частности, информации о конкретных транзитных потоках, это не так уж и хороший инструмент для долгосрочного использования.

Для трафика или полосы пропускания я предлагаю использовать SNMP в более профессиональной среде или для более простого использования ifconfig.

Я бы подробно рассказал гораздо больше, однако я нашел предыдущий пост, в котором о мониторинге трафика и скорости рассказывается более подробно, чем я думал.

Как мне обработать вывод ifconfig, чтобы определить скорость моего соединения?

В качестве заключительной детали, ничего против iftop, ЕСЛИ вы это понимаете

1) просто измеряет мгновенную скорость каждый раз, когда вы запускаете скрипт (каждый 5 минут?)

2) не следует использовать в системах с высокой нагрузкой

1
31.07.2018, 21:21
3 ответа

Возникла похожая проблема при запуске tmux даже после установки libevent -2.1.so.7. У меня сработало создание символической ссылки установленного файла в каталог /lib64/.

$sudo ln -s /usr/local/lib/libevent-2.1.so.7.0.0 /lib/x86_64-linux-gnu/libevent-2.1.so.7

$ldd tmux
    linux-vdso.so.1 (0x00007fff6f9fe000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f675b5eb000)
    libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f675b3c1000)
    libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007f675b16b000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f675af50000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f675ab5f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f675a940000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f675ba9f000)
0
28.01.2020, 00:31

Как упоминалось в Почему gcc не может найти libevent при сборке tmux из исходников? , опции with-libevent=dirнет. Поэтому при настройке Tmux сделайте следующее:

DIR="$HOME/path/to/libevent"
./configure CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/.libs"

Обратите внимание, что это .libs , а не lib. Я предполагаю, что это изменение в libevent 2.1.

Это заставит его пройти проверку конфигурации и скомпилировать. Тем не менее, вы еще не вышли из леса. Если вы сделаете только это, то при попытке запустить tmuxвы получите эту ошибку:

error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory

В этом сообщении в блоге есть решение -добавить путь .libsк LD_LIBRARY_PATH, вот так:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/path/to/libevent/.libs

Теперь, чтобы это «закрепилось» при следующем входе в систему, вставьте приведенную выше строку в свой файл ~/.bashrc. Если вы просто запустите команду в своем терминале, она будет действовать только для этого сеанса.

0
28.01.2020, 00:31

Вы можете использоватьpkg-configсделать это легко.

Сначала постройте libevent. В этом примере мы будем устанавливать от libeventдо/tmp/libevent-вам не нужно создавать это каталог вручную, он будет создан автоматически во время сборки обработать. Вам не нужно быть пользователем root для запускаmake install:

$./autogen.sh
$./configure  --prefix=/tmp/libevent
$ make
$ make install

Теперь у вас должно быть/tmp/libevent/lib/pkgconfig/libevent.pc:

$ cat /tmp/libevent/lib/pkgconfig/libevent.pc
#libevent pkg-config source file

prefix=/tmp/libevent
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: libevent
Description: libevent is an asynchronous notification event loop library
Version: 2.2.0-alpha-dev
Requires:
Conflicts:
Libs: -L${libdir} -levent
Libs.private:
Cflags: -I${includedir}

Обратите внимание, что prefixуказывает на каталог, который мы передали в качестве аргумента. до ./configure.

Перед сборкой tmux добавьте /tmp/libevent/lib/pkgconfigвPKG_CONFIG_PATH:

$ export PKG_CONFIG_PATH=/tmp/libevent/lib/pkgconfig:$PKG_CONFIG_PATH
$ pkg-config --cflags --libs libevent
-I/tmp/libevent/include -L/tmp/libevent/lib -levent

А потом собрать tmuxнормально:

$./autogen.sh
$./configure
$ make

Обратите внимание, что для того, чтобы фактически начать tmuxс вашим пользовательским libeventнеобходимо правильно установить LD_LIBRARY_PATH:

$ ldd./tmux
        linux-vdso.so.1 (0x00007ffce3d92000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f2f1d77e000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f2f1d527000)
        libevent-2.2.so.1 => not found
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2f1d30b000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2f1cf42000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f1cd3d000)
        /lib64/ld-linux-x86-64.so.2 (0x000055cdf0697000)
$./tmux
./tmux: error while loading shared libraries: libevent-2.2.so.1: cannot open shared object file: No such file or directory
$ LD_LIBRARY_PATH=/tmp/libevent/lib./tmux -V
tmux master

РЕДАКТИРОВАТЬ:

Чтобы обойти настройку LD_LIBRARY_PATH, вы можете установить rpathпри построенииtmux:

$./configure LDFLAGS="-Wl,-rpath=/tmp/libevent/lib"
$ make
$ ldd./tmux
        linux-vdso.so.1 (0x00007ffcc6de1000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007fbe121a4000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fbe11f4c000)
        libevent-2.2.so.1 => /tmp/libevent/lib/libevent-2.2.so.1 (0x00007fbe11cf7000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbe11adc000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fbe11712000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe1150e000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe112f1000)
        /lib64/ld-linux-x86-64.so.2 (0x000055f057ef4000)
 $./tmux -V
 tmux master
0
28.01.2020, 00:31

Теги

Похожие вопросы