Использование 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
|
Терминал
Linux — отличная и продвинутая операционная система, но она не идеальна. Время от времени некоторые приложения могут вести себя беспорядочно и перестать отвечать на запросы или начать использовать много системных ресурсов. Не отвечающие приложения не могут быть перезапущены, потому что исходный процесс приложения никогда не завершается полностью. Единственное решение — перезапустить систему или завершить процесс приложения.
команда
это оболочка, встроенная в большинство оболочек, полученных из Bourne, таких как Bash и Zsh. Поведение команды немного различается между оболочками и автономным исполняемым файлом.
Используйте команду для отображения всех мест в вашей системе, содержащих :
Вывод выше говорит о том, что встроенная оболочка имеет приоритет над автономным исполняемым файлом и используется всякий раз, когда вы печатаете . Если вы хотите использовать двоичный файл, введите полный путь к файлу . В этой статье мы будем использовать встроенную функцию Bash.
Синтаксис команды принимает следующую форму:
Команда отправляет сигнал указанным процессам или группам процессов, заставляя их действовать в соответствии с сигналом. Если сигнал не указан, по умолчанию используется значение (-TERM).
Наиболее часто используемые сигналы:
- () — Перезагрузить процесс.
- () — убить процесс.
- () — Изящно остановить процесс.
Чтобы получить список всех доступных сигналов, вызовите команду с опцией:
Сигналы могут быть указаны тремя различными способами:
- Используя номер (например, или ).
- Используя префикс «SIG» (например, или ).
- Без префикса «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 последних строк из системного лога
локальный (привязаны к процессору и возможны только в пределах компьютера);
— каналы
- pipe (они же конвейеры, так же неименованные каналы), о них я много рассказывал в прошлом посте, примером можно привести: команда1 | команда2. По сути, pipe использует stdin, stdout и stderr.
- Именованные каналы (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