По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье мы постараемся разобрать, как создать, отследить и завершить процесс. Посмотрим следующие задачки: Запуск задачи в активном и фоновом режиме; Заставить задачу выполнятся после выхода из системы; Отслеживать и сортировать активные процессы; Завершать процессы; Постараемся разобрать следующие понятия: Fg (foreground) и bg (background); Nohup (no hang up); Ps - информация об активных процессах; Pstree - дерево процессов; Pgrep - поиск процессов; Pkill - завершение процессов; Top - диспетчер задач; Free - загрузка оперативной памяти; Uptime - время и полнота загрузки; Screen - управление сессиями. Начнем разбирать данную тему с простой команды. Команда sleep man sleep С помощью данной команды мы можем выставить задержку на определенное время, собственно, о чем и написано в справочной статье. Она обычно пригождается, когда необходимо выполнить какой-то скрипт и компьютер должен немного подождать. В частности, мы можем посмотреть следующий пример: sleep 1000 - после данной команды, мы можем вводить в консоль различные символы, они будут появляться на экране но машина и операционная система не будет реагировать. Для того чтобы прервать нажимаем ctrl + c сочетание клавиш. Когда набираем команду, она начинает работать в активном режиме и занимает консоль, и мы соответственно ничего не можем делать. Так как компьютер у нас сейчас много задачный, процессор многозадачный, операционная система многозадачная, мы можем запускать какие-то процессы в фоновом режиме. Для того, чтобы это сделать необходимо набрать команду и в конце поставить знак амперсанда "". Т.е. мы получим следующее sleep 1000. Как, только мы написали команду плюс амперсанд и нажали Enter. Мы видим появился один процесс, и он бежит в фоновом режиме. Есть такая команда jobs, она показывает выполняющиеся задачи, бегущие процессы. И вот мы видим, что у нас есть одна выполняющаяся задача sleep на 1000 секунд. Мы можем еще запустить один sleep 999. Практического эффекта нету, данный пример необходим для наглядности процессов. Появился еще один процесс с отличным от прошлого id. Итого у нас 2 процесса. Теперь представим, что нам необходимо поработать с сервером, но в настоящий момент необходимо обновить, например, репозиторий или пакеты. Мы запускаем процесс обновления с амперсандом и продолжаем работу в обычном режиме, консоль стандартного вывода у нас свободна. Но если нам необходимо вернутся к процессу, который бежит в фоне. Мы можем использовать команду fg и номер процесса, например, 1 или 2. Так же сданной командой мы можем использовать PID, т.е. уникальный идентификатор процесса. Таким образом мы можем видеть, что мы оказались внутри указанного процесса. Для выхода нажимаем ctrl+z. И теперь данная задача будет остановлена. В чем можно убедится, используя команду job. И соответственно, чтобы запустить процесс используем команду bg #процесса. Небольшой итог: Есть команда, показывающая процессы jobs. И команды fg и bg, которые позволяют отправить процессы в фоновый режим и вернуть обратно. Команда PS man ps Согласно описанию, данная команда показывает снапшот текущих процессов. У данной команды очень много ключей, но очень часть данная команда используется в таком виде ps aux. Это означает вывести результат по всем пользователям, все процессы, даже запущенные вне нашего терминала. Это помогает, когда у нас много пользовательская среда, или мы запустили от имени суперпользователя, а сами переключились на текущего. Выглядит данная картинка примерно так: На данной картинке мы можем увидеть от имени какого пользователя процессы выполняются. Это снимок процессов системы, статический снапшот. Он выполнен на тот момент, когда мы подали команду на терминал. Внизу на картинке, можно увидеть наши sleep, значит они на момент ввода команды бежали в фоновом режиме. Кроме того, мы можем запускать данную команду, через pipeline. Например: ps aux | grep sleep Команда grep - отсортировать. И в данном случае мы увидим только два наших процесса. Мы так же можем убить процессы. Процессы убиваются командой kill PID (т.е по его ID). Вот таким образом мы можем завершить процесс. Запустим еще несколько процессов. Теперь мы можем их завершить массово с использованием их сортировки killall sleep например. Мы можем увидеть, что процессы завершились. Данная команда может быть полезно при зависании какого ни будь приложения. Действие данной команды работает, только в пределах пользователя от которого данную команду запустили. Если выполнять данную команду от root. То данная команда завершит процессы у всех пользователей с именем sleep. Если мы создадим процесс, а затем выйдем из терминала (команда exit). Заходя обратно выполняя ps aux мы так же в фоне увидим, что процесс выполняется. А набрав jobs мы не увидим данный процесс. Это происходит потому, что команда jobs показывает только текущие процессы запущенные из данной консоли. Есть такой тонкий нюанс. Если мы запускаем в нашем сеансе процессы, бэкграунд или активный режим, при завершении сессии наши процессы завершаются. Получается следующее, при подключении к серверу, через ssh все наши процессы запущенные при обрыве сессии прервутся. Например, мы запустим процесс обновления системы и завершим нашу сессию процесс обновления прервется. Чтобы у нас процессы не завершались при выходе из системы пользователя, есть команда nohup. Используем ее. nohup sleep 10000 Во-первых, данная команда позволяет заменить стандартный вывод на вывод в файл и во -вторых команда будет выполнятся, пока будет запущенна операционная система. Вне зависимости от наличия пользователя в системе, который запустил. Есть достаточно много нюансов. Можно логинится, разлогиниватся и попадать в тот же сеанс, а в современных Ubuntu уже практически нет необходимости использовать данную команду. Но все же, чтобы гарантированно процесс работал необходимо использовать данную команду. Теперь можно посмотреть команду pstree. Данная команда позволяет посмотреть все процессы в иерархическом виде дерева. На картинке, четко виден родительский процесс systemd, который запускает все остальные процессы. Например sshd - подключение к серверу, которое запускает bash - интерпретатор, далее запускается sudo , su и pstree в самом конце. Есть еще интересные команды pgrep и pkill. Есть просто запустить pgrep то данная команда ничего не выдаст. А если в совокупности с ключами и названием процесса, то данная команда вернет идентификационный номер данного процесса. Мы так же можем добавить ключ -l, то команда вернет и название процессов. У нее много других ключей. Можно, например, команде сказать pgrep -u root -l, т.е показать все процессы пользователя root. Следовательно, команда pkill позволяет убить все эти процессы. Например: pkill sleep. Мы убили все процессы sleep. В реальной же ситуации, мы обычно используем команду top. Данная команда позволяет наблюдать и не только в режиме реального времени за процессами. Посмотрим на данные выводимые данной утилитой. Мы видим, что по умолчанию данная утилита сортирует по загрузке процессора. Мы можем перейти в режим помощи нажав клавишу "h". Ключей и опций у данной утилиты достаточно много. Можно воспользоваться клавишами """", для переключения сортировки, например на сортировку по загруженности оперативной памяти. В данной утилите мы можем сказать, что необходимо завершить той или иной процесс. Практически он аналогичен Диспетчеру задач в операционной системе windows. Для того, чтобы убить процесс нажимаем клавишу "k" и система ждет ввода PID процесса. По умолчанию он берет тот PID, который находится в самом верху. Т.е. по факту самый загружающий процесс систему. Если у нас, что-то висит, то достаточно удобно завершить такой процесс. После ввода PID система запросит, какой сигнал ей необходимо послать по умолчанию сигнал номер 15 или sigterm - т.е. сигнал завершения работы в мягком режиме. Если мы хотим использовать более жесткий вариант отправляем цифру 9, или sigkill. В таком случае операционная система, очень жестко потушит процесс наплевав на зависимые процессы от данного и те процессы от которых зависит данный процесс. Команда uptime man uptime Данная команда показывает, как долго у нас запущена система. Сам по себе эти данные нам ничего не дают. Данная команда. полезна в контексте, если нам передали сервера, и мы видим у них очень большой аптайм, следовательно, сервера не обновлялись и не перезагружались. Данная команда полезна помимо параметра сколько запущенна системаданная команда показывает общую загрузку системы. Это показывают три цифры в выводе данной команды. Там достаточно сложная формула по которой рассчитывается данный параметра, во внимание принимается загрузка ЦП, жестких дисков, оперативной памяти. Первая цифра - это загрузка в минуту, вторая цифра - это загрузка в последние пять минут и третья цифра - это загрузка в последние 15 минут. Исходя из последней картинки, цифры примерно одинаковые, а значит нагрузка равномерна. Если цифры скачут, значит необходимо анализировать, особенно если на сервере есть просадка по производительности. Команда free man free Данная команда показывает свободное и используемое количество памяти в системе. И в данном случае, так же, как и в windows task manager, под памятью понимается оперативная память, так и файл подкачки (windows), раздел подкачки (swap Linux). Swap раздел, это раздел системы используемый для ее нужд если системе не хватает оперативной памяти. Это раздел на жестком диске, который используется в качестве оперативной памяти. Но жесткий диск значительно медленней оперативной памяти, поэтому сначала заполняется оперативная память, а только потом используется раздел подкачки (swap). Команда screen man screen Она есть не во всех дистрибутивах по умолчанию. Эта команда, которая позволяет создать типа оконного менеджера. Это удобно, когда подключаешься по ssh и получаешь, как будто бы несколько окон в пределах одного терминала. Понятно, что современные ssh клиенты позволяют открыть сколько угодно вкладок и работать с ними параллельно. Запускаем screen. Переходим во внутрь screen, запускаем какую-нибудь команду, например, ping ya.ru. Далее нажимаем ctrl+a и затем d и получаем: Первая команда позволяет находится в текущем окне, а вторая клавиша d позволяет свернуть текущий скрин. Теперь можно закрывать терминал, вылогиниваться из консоли. Процесс запущенный в скрине будет работать. Для того, чтобы восстановить окно с процессом достаточно ввести screen -r и мы вернемся к бегущему процессу. Для того, чтобы завершить screen необходимо внутри ввести exit. Если у нас есть потребность запустить несколько окон, то можно это сделать следующим образом: Screen -S yandex ping ya.ru, screen -S rambler ping r0.ru Где yandex и rambler - это просто названия окон (alias) Просмотреть бегущие окна: screen - ls Чтобы вернутся к нужному окну вводим screen -r alias
img
Прогресс не стоит на месте и постепенно, телефонные станции на базе IP вытесняют устаревшие аналоговые АТС. При миграции с аналоговой на IP – АТС, основной головной болью для бизнеса является сохранение телефонной емкости, которая была подключена к аналоговой АТС и к которой так привыкли постоянные клиенты. В данном случае на помощь приходит FXO шлюз. Забегая вперед хочется отметить, что процесс подключения аналоговых линий всегда сложен: возникает множество проблем с корректной передачей CallerID, определением Busy Tones (сигналов занято), шумами или помехами на линии и прочими неприятностями. Итак, если вас не отпугивает вышеперечисленные трудности, то мы с радостью спешим рассказать как настроить бюджетный VoIP шлюз D-Link DVG-7111S и подключить его к IP-АТС Asterisk. Данная статья будет полезна тем, кто имеет аналоговые телефонные линии и хочет скрестить их сетью VoIP. Что такое FXO и FXS? Зачастую, некоторые компании, по тем или иным причинам, не могут отказаться от использования старых аналоговых линий. Причин может быть множество, например, провайдер может отказаться переводить на протокол SIP номер, который многие годы знают все заказчики или невозможность миграции со старой мини-АТС. Именно для таких случаев необходим VoIP-шлюз, который позволит состыковать устройства разных поколений. Разберемся с терминологией. Для соединения IP-АТС с аналоговыми линиями служат интерфейсы FXO (Foreign eXchange Office) и FXS (Foreign Exchange Station). Интерфейс FXS – это порт, с помощью которого аналоговый абонент подключается к аналоговой телефонной станции. Простейшим примером может служить телефонная розетка в стене у Вас дома. FXO – это интерфейс, в который включаются аналоговые линии. Следовательно, любая аналоговая линия имеет два конца, на одном из который интерфейс FXS (АТС), а на другом FXO (Телефон). Другими словами, чтобы было совсем понятно: FXS - если вам требуется подключить аналоговый телефон к IP – АТС, то воспользуйтесь FXS портом (шлюзом) FXO - если вам требуется подключить аналоговую линию от провайдера к IP – АТС, то воспользуйтесь FXO портом (шлюзом) Таким образом, для того чтобы скрестить сеть VoIP с аналоговой нам нужно иметь такое адаптирующее устройство, которое бы преобразовывало сигналы аналоговой телефонной линии в сигналы VoIP. Настройка В нашем примере мы имеем в распоряжении: аналоговую линию от провайдера услуг, IP-АТС Asterisk и шлюз D-Link DVG-7111S. Первое, что необходимо сделать – включить шлюз в одну сеть с IP-АТС Asterisk с помощью интерфейса WAN, порт LAN подключить в локальный свич, а также подключить имеющуюся аналоговую линию в порт FXO на шлюзе. Теперь шлюз можно найти по адресу 192.168.8.254, только предварительно нужно на управляющей АРМ настроить адрес 192.168.8.1. Перед нами открывается вэб-интерфейс, через который можно управлять шлюзом. Стандартный логин admin без пароля. Теперь необходимо сконфигурировать дополнительные сетевые настройки. Для этого переходим в раздел Setup -> Internet Setup и настраиваем новый адрес шлюза из той же сети, в которой находится Asterisk, а также адреса серверов DNS. Жмём Apply Далее переходим на вкладку VoIP Setup и настраиваем следующие параметры: PHONE 1 - FXS Настраивается если у вас есть отдельный аналоговый телефон. Сюда заносим его Extension, который зарегистрирован на Asterisk. В разделе PHONE 2 - FXO настраиваются параметры имеющейся аналоговой линии в соответствии с настройками транка на Asterisk. Номер и пароль на шлюзе и на Asterisk должна совпадать. В разделе SIP PROXY SERVER настраиваются параметры подключения к IP-Атс Asterisk. Указываем IP-адрес нашего сервера, порт (по умолчанию 5060) и время регистрации TTL. Нажимаем Apply. Во вкладке LAN Setup выбираем режим Bridge, всё остальное оставляем без изменений. Переходим в раздел ADVANCED -> VOIP CODECS и настраиваем нужный приоритет голосовых кодеков. В разделе CPT/ Cadence рекомендуем выключить опцию BTC, поскольку разные провайдеры могут по-разному отдавать сигнал “Занято” это может являться причиной внезапных обрывов. В разделе HOT LINE включаем данную функцию и вписываем номер телефонной линии. Теперь, при звонке из ТФоП, шлюз сам наберет данный номер с минимальной задержкой и вызов пойдёт через Asterisk. На этом настройка шлюза завершена, рекомендуем провести следующий набор действий MAINTENANCE -> Backup and Restore -> System--Save and Reboot -> Save all settings -> Reboot Настройка FreePBX Теперь необходимо на IP-АТС Asterisk создать соответствующий транк. В нашем случае, транк для подключения аналоговой линии от D-Link будет выглядеть так: В разделе sip Settings -> Outgoing указываем адрес, который настраивали на шлюзе host=192.168.1.2 //ip - адрес шлюза port=5060 context=from-trunk qualify=yes type=peer insecure=no В разделе sip Settings -> Incoming настраиваем такие же параметры аналоговой линии, которые настраивали на шлюзе. Номер и пароль должны совпадать. host=dynamic username=495123456 secret=тут_ваш_пароль context=from-trunk qualify=yes type=friend insecure=no Готово! Осталось только настроить входящую и исходящую маршрутизацию. О ее настройке можете почитать по ссылке ниже: Настройка маршрутизации вызовов
img
На самом деле поиск DNS это не то, что требует частого внимания. Но иногда приходится заботиться об этом. Например, если у вашего провайдера слабые сервера или же в вашей сети часто происходят DNS обращения, то нужно настроить локальный кэширующий DNS сервер. Как кэширующий DNS-сервер может пригодиться? Кэширующий DNS-сервер занимается обработкой DNS запросов, которые выполняет ваша система, затем сохраняет результаты в памяти или кэширует их. В следующий раз, когда система посылает DNS запрос для того же адреса, то локальный сервер почти мгновенно выдает результат. Эта идея может показаться бесполезной. Подумаешь, какие-то там секунды. Но если DNS сервера провайдера тратят много времени на разрешение имени, то в результате падает скорость Интернет серфинга. Например, домашняя страница новостного канала MSNBC для корректной работы обращается более чем к 100 уникальным доменам. Даже если на запрос тратится одна десятая секунды, в итоге получается 10 секунд ожидания, что по нынешним меркам слишком много. Локальный кэширующий DNS увеличивает скорость не только дома или в офисе, он также помогает работе серверов. Например, у вас есть почтовый сервер с анти-спам фильтром, который выполняет очень много DNS запросов. Локальный кэш намного увеличить скорость его работы. И наконец, system-resolved поддерживает новейшие стандарты вроде DNSSEC и DNSoverTLS или DoT. Эти технологии увеличивают безопасность при работе в Интренет. Какой локальный кэширующий сервер выбрать? В этом руководстве будет использован сервер systemd-resolved. Эта утилита является частью набора управления системой systemd. Если в вашей системе используется systemd, а большинство дистрибутивов Linux используют это, то в системе уже установлен systemd-resolved, но не запущен. Большинство систем не используют эту утилиту. systemd-resolved запускает небольшой локальный кэширующий DNS-сервер, который мы настроим на запуск при загрузке системы. Затем мы изменим конфигурацию всей системы так, чтобы DNS запросы шли на локальный сервер. Как проверить используется ли systemd-resolved? В некоторых дистрибутивах, например Ubuntu 19.04, по умолчанию используется systemd-resolved. Если у вас уже запущен systemd-resolved, тогда не нужно что-то настраивать в системе. Но нужно проверить на корректность утилит управления сетевыми настройками, такие как NetworkManager, так как они могут игнорировать системные настройки сети. Перед тем как перейти к следующему разделу проверьте запущен ли в вашей системе systemd-resolved: $ resolvectl status Если в ответ получите сообщение ниже, значит в системе не настроен systemd-resolved: $ resolvectl status Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found. И наоборот, если на выходе видите что-то подобное, то systemd-resolved уже работает: Global LLMNR setting: yes MulticastDNS setting: yes DNSOverTLS setting: opportunistic DNSSEC setting: allow-downgrade DNSSEC supported: no Current DNS Server: 1.1.1.1 DNS Servers: 1.1.1.1 1.0.0.1 Включение и настройка systemd-resolved Отдельно устанавливать systemd-resolved не нужно, так как этот сервис является частью systemd. Всё что нужно сделать это запустить его и добавить в автозагрузку. Для включения данной службы введите команду ниже: $ sudo systemctl start systemd-resolved.service Далее нужно ввести следующую команду, чтобы добавить службу в автозапуск. $ sudo systemctl enable systemd-resolved.service И наконец нужно прописать DNS сервера, куда будет обращаться локальный сервер для разрешения имен. Есть много разных сервисов, но приведённые ниже самые быстрые, бесплатные и оба поддерживают DNSSEC и DoT: Google Public DNS 8.8.8.8 8.8.4.4 Cloudflare Public DNS 1.1.1.1 1.0.0.1 Для этого откройте конфигурационный файл systemd-resolved любым текстовым редактором: $ sudo nano /etc/systemd/resolved.conf Отредактируйте строку, которая начинается на: #DNS= И пропишите одну из вышеуказанных пар. Мы используем Cloudflare Public DNS: DNS=1.1.1.1 1.0.0.1 Сохраните изменения и перезапустите службу systemd-resolved: $ sudo systemctl restart systemd-resolved.service Итак, systemd-resolved уже запущен и готов для выполнения быстрых и безопасных DNS запросов, как только мы настроим систему соответствующим образом. Настройка системы для использования systemd-resolved Есть несколько путей настройки системы на использование локального DNS сервера. Мы рассмотрим два наиболее используемых метода. Первый – рекомендуемый метод, второй конфигурация в режиме совместимости. Разница в том, как будет обрабатываться файл /etc/resolv.conf. В файле /etc/resolv.conf содержатся IP адреса серверов разрешения имен, которые используются программами. Программы при необходимости разрешения доменного имени обращаются к этому файлу в поисках адресов серверов разрешения имен. Итак, первый метод конфигурации заключается в создании символьной ссылки на /run/systemd/resolve/stub-resolv.conf. В этом случае файл /etc/resolv.conf управляется службой systemd-resolved. Это может вызвать проблемы в том случае, если другие программы пытаются управлять файлом /etc/resolv.conf. Режим совместимости оставляет /etc/resolv.conf не тронутым, позволяя программам управлять им. В этом режиме, в настройках программ, управляющих файлом /etc/resolv.conf в качестве системного сервера разрешения имен должен быть указан IP 127.0.0.53. Конфигурация в рекомендуемом режиме При этом режиме конфигурация проводится вручную. Сначала нужно удалить или переименоваться оригинальный файл /etc/resolv.conf. Лучше переименовать, чтобы при необходимости можно было использовать информацию в нем. $ sudo mv /etc/resolv.conf /etc/resolv.conf.original Затем создаем символьную ссылку: $ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf И наконец перезапускаем службу systemd-resolved: $ sudo systemctl restart systemd-resolved.service Настройка в режиме совместимости В режиме совместимости, нужно убедиться, что локальный сервер разрешения имен system-resolved запущен и используется системными службами. Откройте файл /etc/resolv.conf любым редактором: $ sudo nano /etc/resolv.conf Удалите все строки, которые содержать ключевое слово nameserver и добавьте одну единственную строку: nameserver 127.0.0.53 Этот файл мажет быть изменён любой программой. Чтобы предотвратить это нужно настроить программы так, чтобы в качестве DNS они использовали адрес 127.0.0.53. Отладка systemd-resolved Посмотреть, как система выполняет DNS запросы после внесённых изменений сложно. Самый эффективный метод – это включить режим отладки для службы systemd-resolved, а затем просмотреть файл логов. systemd-resolved можно перевести в режим отладки созданием специального служебного файла, в котором содержатся настройки отладки. Делается это следующей командой: $ sudo systemctl edit systemd-resolved.service Вставьте в файл следующие строки: [Service] Environment=SYSTEMD_LOG_LEVEL=debug После этого служба systemd-resolved автоматический перезапуститься. Откройте второй терминал и просмотрите логи в journald: $ sudo journalctl -f -u systemd-resolved Строка, которая содержит слова “Using DNS server” показывает, какой DNS сервер используется для разрешения имён. В нашем случае это DNS сервера Cloudflare Using DNS server 1.1.1.1 for transaction 19995. Слова “Cache miss” в начале строки означает, что для данного домена нет закэшированной информации: Cache miss for example.com IN SOA И наконец слова “Positive cache” в начале строки означает, что systemd-resolved уже запрашивал информацию об этом домене и теперь ответы возвращает из кэша: Positive cache hit for example.com IN A Не забудьте отключить режим отладки, так как в это время создается большой файл логов. Сделать это можно командой: $ sudo systemctl edit systemd-resolved.service а затем удалить добавленные выше две строки. Использование защищенных DNS запросов systemd-resolved один из немногих DNS серверов, которые поддерживает DNSSEC и DNSoverTLS. Эта два механизма позволяют убедиться, что полученная DNS информация подлинная (DNSSEC) и он не был изменён по пути (DoT). Эти функции легко включаются редактированием основного конфигурационного файла system-resolved: $ sudo nano /etc/systemd/resolved.conf Измените файл следующим образом: DNSSEC=allow-downgrade DNSOverTLS=opportunistic Сохраните изменения и перезапустите службу systemd-resolved. $ sudo systemctl restart systemd-resolved.service Пока прописанные DNS сервера поддерживают эти две функции все DNS запросы будут защищены. DNS сервера Google и CloudFlare поддерживают эти механизмы защиты. Заключение Теперь ваша система будет выполнять DNS запросы быстро и эффективно даже если провайдер не работает достаточно быстро. Кроме этого, ваша цифровая жизнь лучше защищена новейшими механизмами защиты DNS запросов.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59