Архив метки: Linux

Использование консоли Linux для завершения процессов

Иногда уничтожение процесса — единственный способ избавиться от него. Несмотря на резкое название, «убить» процесс просто означает «заставить его выключиться». Вот как это сделать из командной строки Linux или macOS.

Что такое процесс?

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

Вы можете объединить процессы в две группы:

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

Если процессы на переднем плане находятся перед персоналом театра и актерами, то фоновые процессы — это закулисная команда «за кадром».

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

Гуманный ответ

«Убить» процесс просто означает «заставить процесс завершиться». Это может быть необходимо, если процесс отказывается отвечать.

Linux предоставляет команды kill, pkill и killall чтобы позволить вам сделать именно это. Эти команды могут использоваться с любым типом процесса, графической или командной строки, переднего плана или фона.

Команда завершения

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

Чтобы ps поиск по всем процессам, используйте опцию -e (все процессы). Желательно передавать результаты через less, их будет довольно много. Введите ps, пробел, -e, пробел, | (символ канала), другой пробел, а затем введите less. Нажмите Enter, чтобы выполнить команду.

ps -e | less

Это даст вам список процессов, который выглядит как на скриншоте ниже. Вы можете искать вперед less используя клавишу / и вы можете искать назад, используя ? ключ.

Чтобы сосредоточиться на интересующем вас процессе, направьте вывод ps через grep и укажите имя — или часть имени — процесса.

ps -e | grep shutter

Найдя PID процесса, который вы хотите завершить, передайте его команде kill в качестве параметра. Чтобы завершить процесс shutter определенный предыдущей командой, используйте эту команду:

kill 2099

Команда kill является тихим убийцей — она ​​не дает никаких отзывов, если прошла успешно.

Команда pkill

Команда pkill позволяет вам убить процесс — или процессы — по имени. Вам не нужно идентифицировать процесс по PID. Для использования pkill вы предоставляете поисковый pkill который pkill использует для проверки по списку запущенных процессов. Соответствующие процессы прекращаются. Таким образом, вы должны быть уверены, что вы правильно написали этот поисковый запрос.

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

Предположим, что есть процесс с «subq» в его имени. Мы будем использовать команду ps -u dave | grep чтобы заглянуть за занавес. Вы можете видеть, что «subq» будет соответствовать этому процессу и только этому процессу. Это было просто, чтобы вы могли увидеть полное название процесса.

ps -u dave | grep subq

Давайте предположим, что наш пользователь этого не сделал; все, что они знают, — это имя процесса, содержащее подстроку «subq». Они используют pgrep чтобы проверить, что существует только одно совпадение с поисковым термином. Затем они используют этот поисковый термин вместе с pkill.

pgrep subq



pkill subq

Вы можете использовать pkill чтобы убить несколько процессов одновременно. Здесь пользователь запускает pgrep чтобы проверить, сколько процессов запущено Chrome. Они используют pkill чтобы убить их всех. Затем они проверяют с помощью pgrep что все они были удалены.

pgrep chrome



pkill chrome



pgrep chrome

Если запущено несколько процессов с одним и тем же именем, но вы не хотите уничтожать их все, вы можете использовать pgrep с параметром -f (командная строка), чтобы определить, какой процесс какой. Простым примером будут два процесса ping . Вы хотите убить одного из них, но не другого. Вы можете использовать их командные строки, чтобы различать их. Обратите внимание на использование кавычек для переноса параметра командной строки.

pgrep -f "ping 192.168.4.22"



pkill -f "ping 192.168.4.22"

Команда killall

Предупреждение . В операционных системах Solaris и OpenIndiana команда killall уничтожит все принадлежащие вам процессы. Если вы являетесь пользователем root или вы выпустили sudo killall вы перезагрузите компьютер! Во время исследования этой статьи это поведение было подтверждено последней версией OpenIndiana Hipster 2018.10.

Команда killall работает аналогично команде pkill но с определенным отличием. Вместо передачи поискового запроса команде необходимо указать точное имя процесса.

Вы не можете предоставить частичное совпадение с именем процесса; Вы должны предоставить полное имя процесса, как показано:

killall shutt

killall shutter

Опция -y (младше чем) позволяет вам завершать процессы, которые выполнялись менее указанного периода. Период указан числами, за которыми следует одна из следующих единиц:

  • s (секунды)
  • m (минуты)
  • h (часы)
  • d (дни)
  • w (недели)
  • M (месяцы, примечание, заглавная «М»)
  • y (годы)

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

killall -y 2m ana

Опция -o (старше чем) позволяет вам убивать процессы, которые выполнялись дольше указанного периода. Эта команда уничтожит все ssh соединения, которые работали дольше суток:

killall -o 1d sshd

Эти команды позволят вам точно и безопасно идентифицировать и завершать ошибочные процессы.

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

 



2019-05-14T11:57:13
Вопросы читателей

21 лучший инструмент Kali Linux для взлома и тестирования на проникновение

Вот наш список лучших инструментов Kali Linux, которые позволят вам оценить безопасность веб-серверов и помочь в проведении взлома и ручного тестирования на проникновение.

Если вы читаете обзор на Kali Linux, вы поймете, почему он считается одним из лучших дистрибутивов Linux для взлома и пентеста.

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

Это один из наиболее рекомендуемых дистрибутивов Linux для этичных хакеров. Читать

Установка Zabbix на Ubuntu Server c nginx + MySQL + php-fpm

zabbix-logo




Сегодня рассмотрим статью про установку системы мониторинга на Ubuntu Server 18.04. В качестве самой системы мониторинга будем использовать известную утилиту – Zabbix.




И так начнем:




Добавление Zabbix репозитория




Установите пакет конфигурации репозитория. Этот пакет содержит файлы конфигурации apt (менеджера пакетов приложений).




Cкачиваем пакет для Ubuntu Server 18.04




cd /tmp




wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1%2Bbionic_all.deb




Если у вас Debian или CentOS, то переходим по ссылке и ищем zabbix для вашего дистрибутива linux




После того как пакет загрузится произведем его установку:




sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb




Теперь обновим индексы пакетов:




sudo apt update




Установка сервера и веб-интерфейса




Для установки Zabbix сервера с MySQL набираем следующую команду:




sudo apt install zabbix-server-mysql zabbix-agent




Для установки Zabbix веб-интерфейса:




sudo apt install zabbix-frontend-php




Создание базы данных MySQL




Если у Вас еще не установлена БД MySQL, то сейчас самое время ее установить, в терминале набираем следующее:




sudo apt install mysql-server mysql-client




Теперь можно создать БД Zabbix:




mysql -uroot -p<пароль>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<пароль>';
mysql> quit;




Импорт данных




Теперь импортируйте изначальную схему и данные сервера на MySQL:




sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix




Вам будет предложено ввести пароль от недавно созданной базы данных.




Настройка базы данных для Zabbix сервера




Измените zabbix_server.conf для использования созданной базы данных. Например:




sudo nano /etc/zabbix/zabbix_server.conf




DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<пароль>




В параметре DBPassword используйте пароль от MySQL базы данных Zabbix




Запуск Zabbix




Самое время запустить процессы Zabbix сервера/агента и добавить их в автозагрузку:




sudo systemctl enable zabbix-server && sudo systemctl start zabbix-server
sudo systemctl enable zabbix-agent && sudo systemctl start zabbix-agent




Установка nginx и php-fpm




Добавим сторонний репозиторий (более актуальные версии nginx и php)




sudo add-apt-repository ppa:ondrej/php
sudo apt update




Ставим php и nginx. На момент написания статьи актуальная версия php7.3, а nginx 1.15.12




sudo apt install nginx php7.3 php7.3-common php7.3-zip php7.3-mysql php7.3-fpm php7.3-cli php7.3-cgi php7.3-curl php7.3-gd php7.3-json php7.3-mbstring php7.3-opcache php7.3-readline php7.3-xml php7.3-xmlrpc php-imagick php-memcache




Настройка nginx




С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный файл — /etc/nginx/conf.d/default.conf. Приводим его к следующему виду:




sudo nano /etc/nginx/conf.d/default.conf




server {
     listen      111.222.333.444:80;
     server_name zabbix.server.ru www.zabbix.server.ru;
     root        /usr/share/zabbix;
     index       index.php index.html index.htm;
location / {
         try_files $uri $uri/ /index.php?$args;
     if (!-e $request_filename)     
     {         rewrite ^(.+)$ /index.php?q=$1 last;     
     }     
     location ~* ^.+.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {         
               expires     max;     
     }     
location ~ [^/].php(/|$) {         
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         
               if (!-f $document_root$fastcgi_script_name) {             
                   return  404;         
               }         
               fastcgi_pass    127.0.0.1:9001;         
               fastcgi_index   index.php;         
               include         /etc/nginx/fastcgi_params;     }  }




  • 111.222.333.444 – ваш IP адрес сервера
  • zabbix.server.ru – меняем на свой FQDN




Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.




nginx -t
sudo systemctl restart nginx




Настройка Zabbix Frontend




Идем в браузер и открываем адрес http://zabbix.server.ru. Вы должны увидеть установщик Zabbix 4.x.




zabbix-4.2




Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.




zabbix-4.2




На следующем этапе указываем параметры доступа к базе данных,




zabbix-4.2




потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры.




zabbix-4.2




Потом будет страница с проверкой введенных данных.




zabbix-4.2




Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.




zabbix-4.2




После нажатия на Finish увидите окно авторизации Zabbix сервера.







Стандартная учетная запись для входа в web интерфейс zabbix следующая:




  • Пользователь Admin
  • Пароль zabbix




После логина увидите стандартный dashboard.







Настройка Zabbix Agent на Linux




Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на другую машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:




sudo nano /etc/zabbix/zabbix_agentd.conf




Server=192.168.13.117
ServerActive=192.168.13.117
Hostname=srvubn01 # имя вашего узла мониторинга, которое будет указано на сервере zabbix.




Перезапускаем агент:




sudo systemctl restart zabbix-agent




На этом установка сервера мониторинга Zabbix окончена.



[endtxt]



2019-05-10T06:45:11
Monitoring

Защита сайтов на WordPress с помощью Fail2Ban

Ваши сайты на WordPress пытаются ломать?

Мой VDS находится под мониторингом Zabbix’а. Вчера я стал активно получать на почту сообщения о большой загрузке сервера.

Я не выдержал и зашел на Zabbix посмотреть графики загрузки.

CPU Utilization

Читать

Проверка скорости записи на диск в Ubuntu 18.04

Для того, чтобы измерить скорость записи на диск, можно воспользоваться стандартной утилитой linux — dd. С ее помощью мы создадим на диске файл размером 1 Gb частями по 1Mb.

Измеряем скорость записи на диск:

sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync

После чего мы можем наблюдать результат.

На одной из моих виртуальных машин он получился следующий (FirstVDS):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.19209 s, 336 MB/s

На другом результаты оказались совершенно иные (Amazon Micro Instance EC2):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 13.5856 s, 79.0 MB/s

На третьем результаты тоже оказались весьма иными (FirstVDS):

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 7.75306 s, 138 MB/s

Четвёртому результату вы наверняка будете очень удивлены:

 

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.528269 s, 2.0 GB/s

Такой скорости удалось достичь, использовав маленькую хитрость родом из 2000х годов, а именно — РАМдиск (как создать и использовать читайте по ссылке).

Возможно вас заинтересует недорогой, проверенный, честный и очень надежный хостинг отличное соотношение цены и качества от FirstVDS. Хочу сказать, что хостинг-провайдер полностью оправдал мои ожидания. Серверы работают стабильно, без сбоев, что для меня очень важно. Производительности хватает с головой — даже под нагрузкой всё работает быстро и плавно. Настройка проста и понятна, интерфейс удобный, а если что-то вдруг не получается, всегда можно обратиться в техподдержку. Ребята там реально молодцы — отвечают быстро и помогают по делу. В общем, я полностью доволен. Если кому-то нужен надёжный и доступный vds в аренду, могу смело рекомендовать!

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

firstvds rpices server

Как использовать DANE / TLSA

DNS-аутентификация именных объектов (DANE) – отличная функция, которая использует преимущества подписанной зоны DNSSEC, чтобы сообщить клиенту, какой сертификат TLS он должен ожидать при подключении к безопасному адресату через HTTPS или SMTPS. Через безопасный канал (DNSSEC) клиент может запросить открытый ключ сервера. Это означает, что атака «Человек-в-середине» (MITM) с поддельным сертификатом будет выставлена напрямую, т. е. больше невозможно. Кроме того, доверие к органам сертификации (ЦС) больше не требуется. Читать