Нужен сервис для контроля сетевого трафика для каждого процессы

Есть ли инструмент как сервис, который может контролировать сетевой трафик для каждого процессы. Так, чтобы я мог использовать командную строку для анализа использования?

1
задан 16 July 2018 в 07:04

1 ответ

Согласно Вашим комментариям Вам не нужны никакие журналы, экономил на диске и желании выполнить монитор сети, поскольку системная служба, включенная в системе, запускается. Давайте сделаем это.

Установка nethogs утилита:

sudo apt install nethogs

Создайте сценарий удара в своем корневом каталоге (Ваш, может заменить его другим каталогом), предположение, что Ваше имя пользователя bob:

touch /home/bob/nethogs.sh

Сделайте созданный исполняемый файл сценария:

chmod +x /home/bob/nethogs.sh

Открытый сценарий в текстовом редакторе и копии и вставке ее код:

#!/bin/bash
pipe=/tmp/nethogs_pipe

trap "rm -f $pipe" EXIT

if [[ ! -p $pipe ]]; then
    mkfifo $pipe
fi
exec 3<>$pipe
nethogs -t -a >&3 2>&1

exit 0

Сохраните изменения и закройте текстовый редактор. Затем создайте другой сценарий для чтения именованного канала, созданного nethogs.sh сценарий:

touch /home/bob/netmon.sh

Сделайте исполняемый файл сценария:

chmod +x /home/bob/netmon.sh

Копия и вставка к netmon.sh код:

#!/bin/bash

pipe="/tmp/nethogs_pipe"

while true
do
    if read line; then
        echo $line
    fi
done <"$pipe"

exit 0

На следующем шаге мы должны преобразовать nethogs.sh сценарий удара к системной службе. Создайте/откройте файл в редакторе:

sudo nano /etc/systemd/system/nethogs.service

и скопировать/вставить код (замена bob в ExecStart с Вашим именем пользователя):

[Unit]
After=network.target

[Service]
ExecStart=/home/bob/nethogs.sh

[Install]
WantedBy=default.target

Сохраните изменения и закройте файл. Сделайте созданный сервис включенным в системе, запустите:

sudo systemctl enable nethogs.service

Запустите nethogs сервис:

sudo systemctl start nethogs.service

и проверка его состояние:

sudo systemctl status nethogs.service

Наконец cd к Вашему корневому каталогу, где netmon.sh сценарий находится, и выполните сценарий:

./netmon.sh

Выходить из контролирующего нажатия CTRL+C.Это все.

Если Вы хотите сохранить данные мониторинга для управления, замените содержание nethogs.sh сценарий с кодом:

#!/bin/bash
log="/var/log/nethogs.log"
err="/var/log/nethog.err"
nethogs -t -a > $log 2> $err

exit 0

и сервис перезапуска:

sudo systemctl restart nethogs.service

Живой монитор через именованный канал будет отключен, и вывод сценария будет сохранен к /var/log/nethogs.log файл - просто открывает его с less или tail, например:

tail -f /var/log/nethogs.log

Все ошибки будут сохранены к /var/log/nethogs.log файл. /var/log/nethogs.log будет очищен каждый раз, компьютер перезагрузил/обслужил перезапущенный, чтобы отключить очистку файлов и включить вывод, добавляющий содержание замены nethogs.sh сценарий с другим кодом:

#!/bin/bash
log="/var/log/nethogs.log"
err="/var/log/nethog.err"
nethogs -t -a >> $log 2>> $err

exit 0

Комментарий. В nethogs управляют опциями -t и -a в сценариях может быть заменен согласно Вашей установленной версии. В Ubuntu 18.04 nethogs опция версии -t средства tracemode и опция -a listen all interfaces.

0
ответ дан 8 December 2019 в 00:15

Другие вопросы по тегам:

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