Как проверить использование памяти на linux

Использование xhost в Unix/Linux

Данная утилита имеет следующий синтаксис:

$ xhost  remote_host_name ...]

Опции:

  • -help — Служит командой для вывода помощи по командам и опциям.
  • +name — Добавляет «name» (название IP или хостнейма) в список, кто имеет право подключаться к X-серверу.
  • -name — Удаляет «name» (название IP или хостнейма) со списка тех, кто имеет право подключаться к X-серверу.
  • +  — Контроль доступа к X-серверу отключен; разрешение всем и отовсюду.
  • —  — Контроль доступа к X-серверу включен; разрешение только по списку.
  • <ничего>  — Если аргументов не указано то выводится информации о текущем состоянии разрешения подключений.

Выведем информацию о текущем состоянии разрешений пользователей или хостов на подключение:

$ xhost

Разрешить полный доступ к X-серверу (всем и отовюсду):

# xhost +

Запретить доступ к X-серверу (разрешение только по списку):

# xhost -

Разрешить запуск графических программ от имени root на локальной машине:

# xhost local:root

Разрешить запуск графических программ от имени root на локальной машине:

# xhost local:root

Или:

# xhost +si:localuser:root

Разрешить запуск графических программ с 192.168.13.113 на локальной машине:

# xhost + 192.168.13.113

Запретить запуск графических программ с 192.168.13.113 на локальной машине:

# xhost - 192.168.13.113

Можно указать вот так:

  • 192.168.13.113:0 Нулевой дисплей на компьютере Sky
  • 192.168.13.113:0.1 Первый экран нулевого дисплея данного компьютера
  • 192.168.13.113:3 Третий дисплей данного компьютера

Чаще всего имя дисплея — это или просто «:0.0», или «компьютер:0.0». Чтобы узнать какой дисплей используется в системе, выполните:

$ echo $DISPLAY

Чтобы установить DISPLAY переменную, выполните (bash):

$ DISPLAY=192.168.13.113:0.0; export DISPLAY

Чтобы установить DISPLAY переменную, выполните (bash):

$ setenv DISPLAY 192.168.13.113:0.0

xhost + — огромная дыра в безопасности, поскольку она дает каждому доступ к вашим ресурсам X-сервера (не только вашему дисплею, но также и вашу мышь и клавиатуру), поэтому каждый может читать или изменять то, что вы набираете/нажимаете. Плохая привычка использовать «xhost +». Даже когда вы используете «xhost + localhost», вы открываете доступ всем людям кто на localhost-е.  Тогда, как быть и что исользовать? Простейшим способом является ssh-туннелирование.

$ ssh -X oracle@localhost
Last login: Fri Max 2 11:33:55 2017 from localhost

$ if xterm -e true; then echo success; fi
success

Другой способ это — использовать cookie X:

$ xauth extract ~/my-x-cookie $DISPLAY<
$ setfacl -m u:oracle:r ~/my-x-cookie
$ su - oracle -c "DISPLAY=$DISPLAY bash"
Password:

$ if xterm -e true; then echo success; fi
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

xterm Xt error: Can't open display: :0.0

$ xauth merge ~lsc/my-x-cookie
xauth: creating new authority file ~oracle/.Xauthority

$ if xterm -e true; then echo success; fi
success

Можно создать алиас:

alias oracle='
xauth extract $HOME/my-x-cookie $DISPLAY;
setfacl -m u:oracle:r $HOME/my-x-cookie;
su - oracle -c "export DISPLAY=$DISPLAY;
xauth merge $HOME/my-x-cookie;
bash"'

Вот и все, статья «Утилита xhost в Unix/Linux» подошла к завершению.

Настройка/Запуск Logstash в Unix/Linux

И так, установили ЛС и можно приступать к его настройке.

Настройка Logstash в Unix/Linux 

Рассмотрим готовый пример, у меня используется ОС —  CentOS 6/7 и я настрою LS на ней.

Прописываем переменное окружение:

У меня это:

PS: Для того чтобы узнать где лежит ( куда выполнилась установка LS, используйте — whereis logstash команду)!

Чтобы изменения применились, выполните:

И так, основной конфиг я не трогал и он имеет следующую структуру:

Ничего сложного в понимании данных строк — НЕТ!

Все конфиги должны быть в /etc/logstash/conf.d.

Запуск Logstash в Unix/Linux

Перед началом запуска, проверяем что у нас используется «SysV init vs systemdedit»:

Запуск Logstash используя Systemd

Такие дистрибутивы, как Debian Jessie, Ubuntu 15.10+ и многие производные SUSE, используют systemd и команду systemctl для запуска и остановки служб. После установки пакета вы можете запустить Logstash с помощью:

Добавим службу в автозагрузку ОС:

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044):

Запуск Logstash используя init/Upstart

Для систем, использующих «upstart», вы можете запустить Logstash с помощью:

Автоматически созданный файл конфигурации для «upstart» систем — /etc/init/logstash.conf.

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044).

Запуск Logstash используя SysV

Для систем, использующих SysV, для систем, использующих»

Автоматически созданный файл конфигурации для систем SysV — /etc/init.d/logstash.

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044).

Проверяем какие плагины имеются:

Для установки плагина, используйте:

Для обновления:

Чтобы удалить:

Работа с Logstash в Unix/Linux

Сначала давайте проверим вашу установку Logstash, запустив самый простой конвейер Logstash.

Конвейер Logstash имеет два обязательных элемента: вход и выход и один необязательный элемент — фильтр. Плагины ввода используют данные из источника, плагины фильтров изменяют данные, как вы указали, а выходные плагины записывают данные в пункт назначения.

Чтобы проверить установку Logstash, запустите самый простой конвейер Logstash. Например:

Или (если прописали переменное окружение):

Можно прописать что-то и LS отдаст (выход CTR +C).

Как работает LogStash?

Конвейер обработки событий Logstash имеет три этапа: inputs (входы) → filters (фильтры) → outputs (выходы). Входы генерируют события, фильтры изменяют их, а выходы отправляют их в другое место. Входы и выходы поддерживают кодеки, которые позволяют кодировать или декодировать данные при входе или выходе из конвейера без использования отдельного фильтра.

Inputs

Вы используете inputs для получения данных в Logstash. Некоторые из наиболее часто используемых inputs:

Дополнительные сведения о доступных inputs см. в разделе «Input Plugins».

Filters

Фильтры (Filters) являются промежуточными устройствами обработки данных в конвейере Logstash. Вы можете комбинировать фильтры с условными выражениями для выполнения действия над событиями, если оно соответствует определенным критериям. Некоторые полезные фильтры:

Дополнительные сведения о доступных фильтрах см. в разделе «Модули фильтра»(Filter Plugins).

Outputs

Outputs (Выходы) являются заключительной фазой конвейера Logstash. Событие может проходить через несколько выходов, но как только вся обработка вывода завершена, событие завершило свое выполнение. Некоторые часто используемые результатов включают:

Дополнительные сведения о доступных outputs см. в разделе плагины вывода (Output Plugins).

Codecs

Кодеки (Codecs) — это в основном потоковые фильтры, которые могут работать как часть входа (input) или выхода (output). Codecs позволяют вам легко отделить передачу ваших сообщений от процесса сериализации. Популярные кодеки включают в себя json, msgpack и plain (text):

Дополнительные сведения о доступных кодеках см. в разделе плагины кодеков (Codec Plugins).

А на этом, у меня все! Статья «Установка Logstash в Unix/Linux » завершена.

Kill Command in Linux

21 Января 2020
&vert;

Терминал

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

команда

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

Используйте команду для отображения всех мест в вашей системе, содержащих :

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

Синтаксис команды принимает следующую форму:

Команда отправляет сигнал указанным процессам или группам процессов, заставляя их действовать в соответствии с сигналом. Если сигнал не указан, по умолчанию используется значение (-TERM).

Наиболее часто используемые сигналы:

  • () — Перезагрузить процесс.
  • () — убить процесс.
  • () — Изящно остановить процесс.

   Чтобы получить список всех доступных сигналов, вызовите команду с опцией:

Сигналы могут быть указаны тремя различными способами:

  1. Используя номер (например, или ).
  2. Используя префикс «SIG» (например, или ).
  3. Без префикса «SIG» (например, или ).

   Следующие команды эквивалентны друг другу:

   PID, предоставленные команде, могут быть одним из следующих:

  • Если больше нуля, сигнал отправляется процессу с идентификатором, равным .
  • Если равно нулю, сигнал отправляется всем процессам в текущей группе процессов. Другими словами, сигнал отправляется всем процессам, принадлежащим GID оболочки, которая вызвала команду. Используйте команду для просмотра идентификаторов группы процессов (GID).
  • Если равно , сигнал отправляется всем процессам с тем же UID, что и пользователь, вызывающий команду. Если вызывающий пользователь является пользователем root, сигнал отправляется всем процессам, кроме init и самого процесса.
  • Если меньше чем , сигнал отправляется всем процессам в группе процессов eq с GID, равным абсолютному значению .

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

Завершение процессов с помощью команды

Чтобы завершить или завершить процесс с помощью команды, сначала необходимо найти идентификационный номер процесса (PID). Вы можете сделать это , используя различные команды , такие как , , и .

Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно завершить процесс Firefox. Чтобы найти PID браузера, используйте команду:

   Команда напечатает идентификаторы всех процессов Firefox:

Как только вы узнаете номера процессов, вы можете прекратить их все, отправив сигнал:

   Вместо того, чтобы искать PID и затем завершать процессы, вы можете объединить вышеуказанные команды в одну:

Перезагрузка процессов с помощью команды

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

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

Используйте команду, чтобы найти главный PID:

   Как только вы найдете главный PID, перезагрузите настройки Nginx, набрав:

   Приведенная выше команда должна выполняться от имени пользователя root или пользователя с привилегиями sudo .

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

Клиентские запросы и проверка сервера

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

После можно сразу выполнить команду:

iperf3 -c 192.168.0.15

* где 192.168.0.15 — iPerf сервер.

На клиенте мы увидим что-то подобное:

local 192.168.0.20 port 47068 connected to 192.168.0.15 port 5201
Interval           Transfer     Bandwidth       Retr  Cwnd
  0.00-1.00   sec   104 MBytes   873 Mbits/sec   10    391 KBytes
  1.00-2.00   sec   110 MBytes   921 Mbits/sec    4    393 KBytes
  2.00-3.00   sec   111 MBytes   928 Mbits/sec    1    478 KBytes
  3.00-4.00   sec   104 MBytes   875 Mbits/sec    5    423 KBytes

* где:

  • 192.168.0.20 — адрес клиента
  • 192.168.0.15 — адрес сервера
  • ID — идентификатор запросов, нужен для ориентирования, если к серверу идет несколько обращений.
  • Interval — промежуток времени в секундах, на протяжении которого выполнялась передача данных.
  • Transfer — сколько было передано данных за интервал времени.
  • Bandwidth — средняя скорость передачи данных за интервал времени.
  • Retr — количество повторно отправленных TCP-сегментов.
  • Cwnd — одновременно переданных данных.

Установка pexpect в Unix/Linux

Я приведу несколкьо примеров по установке данного ПО.

-=== СПОСОБ 1 — Использование tar рахива ===-

Скачиваем pexpect архив:

# cd /usr/local/src && wget https://netcologne.dl.sourceforge.net/project/pexpect/pexpect/Release%202.3/pexpect-2.3.tar.gz

Распакуем его,и, перейдем в папку:

# tar zxf pexpect-current.tgz && cd pexpect-current

Запускаем установку:

# python setup.py install

Можно юзать!

-=== СПОСОБ 2 — Использования установщика PIP ===-

Для начала, установим PIP:

После чего, выполняем:

# pip install pexpect

Или:

# pip3 install pexpect

Установка закончена, используйте. Примеры покажу ниже.

Установка GoAccess в Unix/Linux

Приведу примеры установок для различных Unix и Linux ОС.

Устанавливаем на deb’s ОС:

# aptitude install goaccess

ИЛИ

$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess

Устанавливаем на rpm’s ОС:

# yum install goaccess

Устанавливаем на Arch Linux:

# pacman -S goaccess

Устанавливаем на Gentoo:

# emerge net-analyzer/goaccess

Устанавливаем на OS X / Homebrew:

# brew install goaccess

Устанавливаем на FreeBSD:

# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

Компилируем с исходного кода:

Во-первых нужно скачать последнюю стабильную версию GoAccess.

# cd /usr/local/src/
# wget http://tar.goaccess.io/goaccess-1.0.2.tar.gz
# tar -xzvf goaccess-*

После чего переходим в распакованный каталог и выполняем сборку программы, если вы хотите можно разрешить сборку с geoip (но лучше прочитать README или INSTALL):

# ./configure --enable-geoip
# make && make install && make clean

Так же, можно использовать git:

$ cd /usr/local/src/ && git clone https://github.com/allinurl/goaccess.git && cd goaccess
$ autoreconf -fiv
$ ./configure --enable-geoip --enable-utf8
$ make && sudo make install

PS: Установите git если не установлен!

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

Установка сервера/клиента

По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.

Для начала выполняем установку расширенного репозитория:

yum install epel-release

Устанавливаем iPerf:

yum install iperf3

Открываем порт в брандмауэре:

firewall-cmd —permanent —add-port=5201/tcp

firewall-cmd —permanent —add-port=5201/udp

firewall-cmd —reload

* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.

Запускаем сервер:

iperf3 -s

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

————————————————————
Server listening on 5201
————————————————————

Сервер ждет запросов.

Использование ab

Для того чтобы установить ab в debian необходимо установить пакет apache2-utils:

apt-get install apache2-utils

Параметры

Утилита запускается с помощью команды ab. Далее рассмотрим основные параметры.

  • -c — очень важный параметр. Определяет количество параллельных запросов отправляемых одновременно
  • -n — количество отправляемых запросов
  • -t — максимальное количество секунд отведенное на тест. Подходит для тестирования приложения в течении определенного временного промежутка. При этому необходимо задать большое значение параметру -n
  • -C cookie-name=value — добавляем cookie в каждый запрос к серверу
  • -H — задаем заголовок запроса
  • -T — Content-type заголовок запроса
  • -p — файл содержащий тело POST запроса

Выполнение теста

Давайте выполним тестирование какого-либо сайта и рассмотрим содержание отчета, который генерирует ab.

ab -c 10 -n 100 http://google.com/
Benchmarking google.com (be patient).....done

Server Software:        gws
Server Hostname:        google.com
Server Port:            80

Document Path:          /
Document Length:        219 bytes

Concurrency Level:      10
Time taken for tests:   1.290 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      54000 bytes
HTML transferred:       21900 bytes
Requests per second:    77.51 [#/sec] (mean)
Time per request:       129.018  (mean)
Time per request:       12.902  (mean, across all concurrent requests)
Transfer rate:          40.87 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       54   56   2.0     55      63
Processing:    70   72   2.4     72      82
Waiting:       70   72   2.3     72      82
Total:        124  128   3.4    127     140

Percentage of the requests served within a certain time (ms)
  50%    127
  66%    128
  75%    129
  80%    130
  90%    133
  95%    134
  98%    138
  99%    140
 100%    140 (longest request)

Сначала выводится различная информация о проводимом тесте, такая как типа серверного ПО, хост, порт, путь и тд. Дальше идут более интересные характеристики. Рассмотрим наиболее важные из них:

  • Time taken for tests — суммарное время потраченное на весь тест
  • Complete requests — количество выполненных запросов
  • Failed requests — количество запросов завершенных отказом
  • Total transferred и HTML transferred — суммарный объем и объем html переданные во время теста
  • Requests per second или rps — количество обрабатываемых запросов в секунду
  • Time per request — среднее время затраченное на запрос с и без учета распараллеливания
  • Transfer rate — скорость передачи данных при прохождении теста

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

Увеличить Max Open File Limit в Unix/Linux

Приведу команды на различные Unix/Linux ОС

Увеличить Max Open File Limit в Linux

Для начала проверим какой предел установлен в ОС:

# cat /proc/sys/fs/file-max

Увеличиваем данный предел  в Linux

Мы можем увеличить лимиты для открытых файлов:

  • Временно.
  • Постоянно.

-===ВРЕМЕННО===-

Если есть необходимость увеличить лимит временно (для тестирования, например), то можно это сделать так:

# sysctl -w fs.file-max=500000

Или:

# echo "500000" > /proc/sys/fs/file-max

Вот еще один пример:

# ulimit -n 65635

-===ПОСТОЯННО===-

Если есть необходимость увеличить лимит навсегда, то  можно это сделать так:

# vim /etc/sysctl.conf

fs.file-max = 500000

Эти настройки будут сохраняться даже после перезагрузки системы. После добавления конфигурации в файл, выполните следующую команду, чтобы изменения вступили в силу:

# sysctl -p

Настройка лимитов для каждого пользователя

# vim /etc/security/limits.conf

Добавляем параметры:

* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000

Проверка установленных лимитов

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

# cat /proc/sys/fs/file-max

Подключаемся от пользователя (у меня это nginx):

# su nginx

Проверяем параметры Hard лимитов:

# ulimit -Hn

В консоле, можно ввести данную команду (очень удобно отображает):

# for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done

Проверяем параметры лимитов Soft:

# ulimit -Sn

Увеличить Max Open File Limit в Mac OS X

Выполним проверку лимитов с помощью:

$ launchctl limit maxfiles

Где:

  • Первый аргумент — soft limit.
  • Второй аргумент — hard limit.

Можно прописать в файл:

# vim ~/.bash_profile

Следующее значение:

ulimit -n 65536 200000

Вот и все!

Увеличюем nginx worker_rlimit_nofile  в nginx ( на уровне Nginx)

В nginx также можно увеличить лимиты с директивой worker_rlimit_nofile, которая позволяет увеличить этот лимит, если это не хватает данного ресурса на лету на уровне процесса:

# vim /etc/nginx/nginx.conf

И прописываем (редактируем):

# set open fd limit to 30000
worker_rlimit_nofile 30000;

После чего, проверяем конфигурацию nginx и перезапускаем его:
Save and close the file. Reload nginx web server, enter:

# nginx -t && service nginx -s reload

ulimit в Kali Linux

Включение ограничений на основе PAM в Unix/Lixux

Для Debian/Ubuntu

Редактируем файл (Debian/Ubuntu):

# vim /etc/pam.d/common-session

Вставляем:

session    required   pam_limits.so

Открываем еще один файл:

# vim /etc/security/limits.conf

Прописываем лимиты:

* soft nofile 65536
* hard nofile 200000

Открываем:

# vim /etc/ssh/sshd_config

И, приводим к виду:

UseLogin yes

И выполняем рестарт:

# reboot

Для CentOS/RedHat/Fedora

Редактируем файл (Debian/Ubuntu):

# vim /etc/pam.d/login

Вставляем:

session    required   pam_limits.so

Открываем еще один файл:

# vim /etc/security/limits.conf

Прописываем лимиты:

* soft nofile 65536
* hard nofile 200000

Открываем:

# vim /etc/ssh/sshd_config

И, приводим к виду:

UseLogin yes

И выполняем рестарт:

# reboot

У меня все! Статья «Увеличить Max Open File Limit в Unix/Linux», завершено.

Установка xhost в Unix/Linux

Иногда, данная утилита не присутствует в ОС и по этому, нужно ее установить.

Установка xhost в DEB ОС

Выполняем установку:

# apt-get install x11-xserver-utils x11-utils

Для поиска можно использовать:

# apt-cache search xhost
x11-xserver-utils - X server utilities

Как-то так.

Установка xhost в RPM ОС

Выполняем установку:

# yum install xorg-x11-server-utils -y

Дополнительные пакеты:

# yum install -y xorg-x11-app*
# yum groupinstall -y 'X Window System'
# yum install -y xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils xterm
# yum -y groupinstall fonts

Для поиска можно использовать:

# yum whatprovides "*/xhost"

Как-то так.

Установка xhost в MacOS X

Выполняем установку homebrew — Установка homebrew на Mac OS X и после чего, выполняем:

$ brew install Caskroom/cask/xquartz

Как-то так.

Проверка используемой памяти

Запустив smem из под непривилегированного пользователя, утилита покажет использование памяти всех процессов, запущенных данным пользователем, отсортированных от меньшего к большему по признаку PSS.
По умолчанию, вывод программы содержит 7 колонок: ID процесса, имя пользователя, команда запуска процесса, количество памяти раздела подкачки, USS, PSS и RSS.

RSS

RSS (размер резидентного набора) — общий объём памяти для процесса. Он включает в себя память, выделенную для общих библиотек, используемых процессом, хотя общие библиотеки могут быть использованы разными процессами,которые загружаются в память только один раз. В следствии этого, RSS — это не точное представление о памяти, используемое процессом.

PSS

PSS (пропорциональный размер памяти) разделяет память, выделенную в общую библиотеку среди других процессов, использующих её. Следовательно, если библиотеку используют 3 процесса, которая использует 60 страниц, то размер PSS будет составлять треть этого размере, т. е. 20 страниц на каждый процесс. Обычно, общий размер PSS составляет размер общей памяти системы. Однако, когда процесс, который разделяет библиотеку убит, PSS не равен общей памяти системы.

USS

USS (уникальный размер набора) относится к общей уникальной памяти процесса. Этот параметр не включает в себя память с общих библиотек. Когда процесс будет убит, USS размер USS будет равен размеру фактической памяти, которая будет освобождена. Таким образом, параметр USS лучше всего отображает состояние памяти, если Вы хотите посмотреть процесс, у которого возможна утечка памяти.
Так же запуск smem от пользователя root позволяет посмотреть процессы всех пользователей.

Простые команды

— показывает агент клиента Hive OS (чтобы выйти, нажмите Ctrl+A, D)

— заново запросить ID рига и пароль

— файловый менеджер, наподобие Norton Commander, но для Linux

обновление Hive OS через консоль, то же самое, что нажать кнопку в веб-интерфейсе

— выполнить принудительную перезагрузку

— выполнить принудительное отключение

Майнеры

— открывает окно с запущенным майнером (чтобы выйти, нажмите Ctrl+A, D)

— запускает или останавливает настроенный майнер

— лог / настройки майнера

Логи системы

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

— показать 100 последних строк из системного лога

локальный (привязаны к процессору и возможны только в пределах компьютера);

— каналы

  1. pipe (они же конвейеры, так же неименованные каналы), о них я много рассказывал в прошлом посте, примером можно привести: команда1 | команда2. По сути, pipe использует stdin, stdout и stderr.
  2. Именованные каналы (FIFO: First In First Out). Данный вид канала создаётся с помощью mknod или mkfifo, и два различных процесса могут обратиться к нему по имени. Пример работы с fifo:

в первом терминале (создаем именованный канал в виде файла pipe и из канала направляем данные с помощью конвейера в архиватор):

# mkfifo pipe
# ls -l
total 0
prw-r--r-- 1 root root 0 Nov  9 19:41 pipe
# gzip -9 -c < pipe > out

во втором терминале (отправляем в именованный канал данные):

# cat /path/to/file > pipe

в результате это приведет к сжатию передаваемых данных gzip-ом

— сигналы

сигнал — это асинхронное уведомление процесса о каком-либо событии. Когда сигнал послан процессу, операционная система прерывает выполнение процесса. Если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале. Если процесс не установил обработчик, то выполняется обработчик по умолчанию.
Все сигналы начинаются на «SIG…» и имеют числовые соответствия, определяемые в заголовочном файле signal.h. Числовые значения сигналов могут меняться от системы к системе, хотя основная их часть имеет в разных системах одни и те же значения. Утилита kill позволяет задавать сигнал как числом, так и символьным обозначением.
Сигналы можно послать следующими способами:

— разделяемая память

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

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

— очереди сообщений

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

Установка trafshow для просмотра сетевой активности Linux/Unix

Trafshow – Практически в реальном времени помогает оценить интенсивность использования канала. TrafShow постоянно показывать информацию о пакетном трафике для конфигурации сетевого интерфейса. Он периодически сортирует и обновляет эту информацию. Я сейчас приведу готовые примеры как установить данную утилиту и так же в своей статье «Установка trafshow для просмотра сетевой активности Linux/Unix» как можно пользоваться trafshow.

Debian/Ubuntu/Mint.

Чтобы установить на дебиано-подобные ОС утилиту trafshow, выполните следующую команду для этого:

# apt-get install netdiag

В данный пакет входят следующие утилиты: trafshow,strobe,netwatch,statnet,tcpspray,tcpblas.

CentOS/RedHat/Fedora.

Чтобы установить на redhat-подобные ОС утилиту trafshow, выполните следующую команду для этого:

# yum install trafshow

Замечание! Нужно только подключить репозиторий EPEL.

FreeBSD.

Чтобы установить на freeBSD утилиту trafshow, выполните следующую команду для этого:

# cd /usr/ports/net/trafshow && make install clean
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: