По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Статьи по тематике устранение неисправностей связаны с определенным набором решений проблем. В случае с Linux и Unix полезно иметь некое руководство по доступным инструментам, облегчающим работу по поиску и устранению проблем. Это такой документ, который содержит основные важные команды, позволяющие облегчить жизнь администраторам Linux/Unix при возникновении проблем. Команда "list open files" или команда lsof выглядит достаточно просто, но ее использование в качестве инструмента для устранения неполадок не так очевиден, как кажется на первый взгляд. Например, если у неизвестного процесса открыто несколько файлов, знание того, какие они есть, может помочь определить, является ли процесс легитимным. В первой статье рассмотрим множество вариантов использования команды lsof. Во второй статье рассмотрены рекомендации о том, как исправлять проблемы этим множеством вариаций данной команды. Контрольные вопросы, которые следует задать себе при диагностике проблем, является предметом нашей третьей статьи. Это поможет навести порядок в хаосе, который создают некоторые проблемы. Работа с базами данных Oracle - обычная задача администратора, и немного узнать о них и о том, как тестировать соединения с ними, - ценный инструмент, описанный в четвертой статье. Если проблема связана с подключением, отпадает потребность в вызове администратора баз данных. В завершении нашего руководства приведена статья с инструкциями по командам, необходимым для управления дисками и разбиения их на разделы. Команда lsof Команда lsof - это нечто большее, чем вы можете себе представить. Узнайте обо всех возможностях ее применения для поиска и устранения неполадок. lsof - команда Unix/Linux, которая отображает все открытые файлы или идентифицирует процессы, открытые конкретными файлами. Удобная для оценки безопасности ИС, а также для устранения проблем lsof предлагает широкий спектр параметров, позволяющие использовать её различными способами - иногда даже превосходя команду ps для просмотра процессов и команду netstat для исследования сетевых интерфейсов. Что такое открытые файлы? Для начала давайте рассмотрим, что такое открытые файлы и почему они вам могут быть интересны. Открытые файлы - это файлы, которые использует какой-либо процесс. Этот процесс может быть командой, которую вы выполняете, или приложением, запущенным на сервере, которым вы управляете. Открытые файлы могут включать файлы данных и библиотеки, которые предоставляют общие процедуры. Многие файлы открываются каждый раз, когда вы входите в систему. Вы можете быть удивлены их количеством. Если вам интересно, сколько файлов у вас открыто прямо сейчас, попробуйте эту команду: $ lsof -u admin | wc -l 1715 И если вы когда-нибудь слышали, что для Unix все является файлом, вы, возможно, не слишком удивитесь, узнав, что lsof работает с такими вещами, как сетевые интерфейсы, которые большинство из нас обычно не считают файлами. Почему нам это важно? Иногда появляется необходимость узнать об открытых файлах, потому что вы пытаетесь удалить файл и обнаруживаете, что он уже используется. Может быть, он заполняет ваше дисковое пространство. Вам необходимо узнать, каким файлом какой процесс открыт, чтобы можно было остановить его и очистить файл. В других случаях вам понадобится узнать, что делает неизвестный подозрительный процесс, и только изучение файлов, которые открыл подозрительный процесс, может предоставить ценную информацию. Принцип работы lsof? При применении команды lsof без параметров в терминале выводятся все файлы, которые открыты (используются) в вашей системе. Если вы запустите lsof от своего имени, вы получите длинный список файлов, но выходные данные будут включать в себя множество сообщений об отказе в разрешении - многие из них представляют открытые файлы в файловой системе /proc, которые вам не разрешено видеть. Запустите команду от имени root, и вы увидите больше выходных данных. Что еще интересного? Беглый взгляд на довольно большой справочник lsof отобразит вам, что мы увидели только меньшую ее часть возможностей. lsof имеет обширный список опций. В этой статье мы разберем наиболее полезные. Чтобы начать работу со всеми этими параметрами, вам необходимо о том знать о возможности использования более одной опции. Для этого используйте слово OR. Таким образом, вы получаете список, объединяющий результаты указанных вами параметров. Помимо этого вы можете выбрать вариант, со служебным словом AND. В этом случае ваши опции будут применяться вместе. Другими словами, вы увидите те файлы, процессы и т. д., которые соответствуют всем указанным вами параметрам. Для применения объединения AND, добавьте в свою команду параметр -a. Полезные параметры lsof Примеры использования lsof с параметрами, отображены на скриншотах ниже. Они демонстрируют наиболее полезные вещи, которые вы можете применить с данной командой. На скриншоте ниже lsof, перечисляет все процессы, у которых открыт конкретный файл: На этом скриншоте выводится список всех процессов, у которых есть открытые файлы в определенном каталоге: На этом скриншоте показаны файлы, открытые bash: На этом скриншоте, но с использованием подстроки вместо полного имени процесса: На этом скриншоте перечислены открытые файлы для определенного идентификатора процесса: lsof помогает изучить сетевые подключения: На скриншоте показан пример просмотра портов и/или установленных соединений. Также можно сетевые подключения для одного конкретного источника. Просмотр файлов пользователем На этом скриншоте lsof просматриваем открытые файлы для конкретного пользователя: Для просмотра открытых файлов всех пользователей, кроме определенного (здесь это root), используйте знак ^: Перечислить идентификаторы процессов для процессов, запускаемых конкретным пользователем: $ sudo lsof -t -u froggy 15352 15353 Завершить все процессы, принадлежащие конкретному пользователю: $ sudo kill lsof -t -u froggy Используйте параметр -a для использования оператора AND для объединения ваших опций вместе, помня, что это ограничивает вывод только тем, что соответствует всем указанным условиям:
img
Прокси сервер - это элемент сетевой инфраструктуры, который выполняет роль посредника между клиентским компьютером (терминал, браузер, приложение), находящимся во внутренней сети и другим сервером, который живёт во внешней сети или наоборот. Прокси сервер может применяться для решения следующих задач: усиление безопасности защита приватности балансировка нагрузки на посещаемый ресурс Как можно использовать прокси сервер Прокси сервер принимает и передает запросы от клиентов (которые могут находиться как во внутренней так и во внешней сети) к различным сетевым службам и обеспечивает их передачу целевым серверам. При этом, клиент может даже не знать о том, что взаимодействие осуществляется через прокси сервер. Принимая запросы от клиента прокси сервер может либо: сразу передать их на запрашиваемый ресурс, либо сразу вернуть клиенту запрашиваемый ресурс из своего кэша, либо отказать в доступе к запрашиваемому ресурсу. Всё это делает прокси сервер очень важным элементом сетевой архитектуры. Основные возможности, которыми обладает прокси сервер перечислены ниже: Получение доступа к определенным ресурсам (в том числе заблокированным по каким-либо причинам) - во многих компаниях доступ в Интернет для сотрудников происходит только через прокси сервер. Это делается для того, чтобы пользователь не посещал ресурсы, не разрешенные политикой компании. Однако, прокси также может использоваться и для обхода блокировок. Прямой доступ к ресурсу может быть заблокирован, а к прокси – нет. Таким образом, если обращаться к заблокированному ресурсу через прокси, то можно получить к нему доступ. Правда, в зависимости от того где территориально расположен прокси, скорость доступа может пострадать. Анонимизация IP адреса клиентского компьютера - обращаясь к какому-либо ресурсу через прокси, можно скрыть свой реальный IP адрес, так что “вычислить по IP” вас будет гораздо сложнее. Блокировка вредоносного трафика и определенных ресурсов в сети - мы можем использовать прокси не только для обхода, но и для проведения блокировок. Об одном из таких способов с использованием роутера MikroTik, мы рассказывали статье. Ведение журнала сетевых подключений - прокси позволяет нам отслеживать все сетевые подключения, которые через него проходят. Мы можем включить логирование событий прокси и отправлять их на какое-нибудь LM-решение для последующего анализа. Прокси сервера бывают двух видов: Прямой (Forward) - прямой прокси - это такой промежуточный сервер, которых находится между клиентом и сервером назначения, которому обращается клиент. Чтобы получить контент с сервера назначения, клиент отправляет запрос прокси-серверу с указанием сервера назначения в качестве цели, а прокси запрашивает контент и возвращает его клиенту. Клиент должен быть специально настроен (например, можно указать прокси в браузере) для использования такого прокси для доступа к другим сайтам. Обратный (Reverse) - обратный прокси, напротив, выглядит для клиента, как обычный веб-сервер. Никаких специальных настроек на клиенте не требуется. Клиент делает обычные запросы на получение контента, которые отправляются в пространство имен обратного прокси. Затем прокси решает, куда отправить эти запросы, и возвращает контент так, как если бы он и был сервером назначения. Типичным примером использования обратного прокси-сервера является предоставление пользователям в Интернете доступа к серверу, который находится за межсетевым экраном. Обратные прокси-серверы также можно использовать для балансировки нагрузки между несколькими внутренними серверами или для обеспечения кэширования для более медленного внутреннего сервера. Кроме того, обратные прокси-серверы можно использовать просто для переноса нескольких серверов в одно и то же пространство URL. Использование прокси для усиления безопасности корпоративной инфраструктуры Многие компании имеют ресурсы, которые выставлены в публичную сеть и доступны каждому внешнему пользователю. Это может быть просто сайт компании или сервис, за счёт которого она зарабатывает деньги (например - интернет магазин). Самой большой угрозой для таких ресурсов является угроза взлома. Прокси сервер добавляет дополнительный, “буферный” уровень безопасности между защищаемым ресурсом и внешним трафиком. Таким образом, злоумышленники могут получить доступ к вашему прокси серверу, но не смогут подключиться к серверу, на котором действительно работает защищаемый ресурс, где хранятся ваши данные. Это может значительно уменьшить вероятность взлома ресурса. Контроль пользователей при использовании Интернета Ни одна компания не хочет, чтобы сотрудники получали доступ к незащищенным или неуместным веб-сайтам через корпоративную сеть. Поэтому при построении сетевой архитектуры, администраторы часто принимают решение воспользоваться возможностями прокси сервера. Когда доступ пользователей к Интернету осуществляется через прокси-сервер, сетевые администраторы легко могут контролировать, какие устройства будут иметь доступ и какие сайты эти устройства смогут посещать. С помощью прокси-сервера можно заблокировать нежелательный контент, а также любые сайты, нежелательные для посещения сотрудниками компании в рабочее время. Включив логирование на прокси, сетевые администраторы могут даже отслеживать, к какому контенту и когда обращаются сотрудники для внутренних целей. Многие сотрудники службы безопасности используют это для отслеживания потенциальных незаконных действий или нарушений политик безопасности. Балансировка нагрузки на корпоративные ресурсы Ничто так не раздражает клиента, чем веб-сайт компании, который тормозит и падает, в самый неподходящий момент. Если ресурс популярный, то нагрузка на него может быть колоссальной и сервер, обеспечивающий работу ресурса, может просто не справиться с потоком запросов от клиентов. Прокси серверы, облачные сервисы и технологии пиринга помогают исключить подобные ситуации. Особенно актуально это для ресурсов, данные и контент которых хранятся на множестве серверов, распределенных по всему миру. У пользователей из разных стран может быть разная скорость доступа к ресурсу. В таком случае, прокси сервер может использоваться для создания единого веб-ресурса, который будет служить единой точкой доступа. Прокси будет осуществлять балансировку запросы к каждому целевому серверу, чтобы ни один из них не перегружался. Все это работает в фоновом режиме, чтобы обеспечить бесперебойное обслуживание клиентов ресурсов. Прокси-серверы можно также легко использовать для увеличения скорости и экономии полосы пропускания в сети за счет сжатия трафика, кэширования файлов и веб-страниц, к которым обращаются несколько пользователей, и даже - удаления рекламы с веб-сайтов. Это освобождает полосу пропускания в загруженных сетях.
img
Сегодня подробно расскажем как найти практическое применение знаниям, полученным в статье про структуру asteriskcdrdb, а именно, как сделать ежедневные отчеты о входящих звонках на почту. Создание скрипта Чтобы наш .php скрипт смог подключиться к базе данных, необходимо создать пользователя, с правами, которые буду позволять ему извлекать необходимую информацию. Для этого, подключимся к нашему серверу по SSH [root@asterisk]# mysql mysql>CREATE USER ' user'@'localhost' IDENTIFIED BY 'P@ssw0rd'; На данном этапе мы создали пользователя user с паролем P@ssw0rd. Далее дадим ему необходимые права: mysql> GRANT SELECT ON asteriskcdrdb.cdr TO 'user' Создадим файл с расширением .php, в котором мы отразим подключение к нашей базе данных. Запишем эту конструкцию так: $hostname = "localhost"; //адрес хоста. Скрипт мы будем запускать на той же машине, на которой находится БД asteriskcdrdb; $username = "user"; //отражаем пользователя $password = "P@ssw0rd"; //пароль для созданного нами пользователя $dbName = "asteriskcdrdb"; //база данных, в которой хранятся необходимые нам данные $today = date('y-m-d'); // сегодняшняя дата в формате 2016-03-25 $counter = 1; // счетчик mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); // соединиться к БД mysql_select_db($dbName) or die(mysql_error()); //выбрать базу данных. Если произойдет ошибка - вывести ее $headers = "; charset=windows-1251 "; //заголовок для письма $headers .= "From: Мерион Нетворкс <info@merionet.ru> "; $headers .= "Reply-To: info@merionet.ru "; Предположим, что все входящие звонки приходят на номер секретаря – 100. Так же мы знаем, что при звонке из города, мы видим номер звонящего, который содержит в себе больше 3 символов (пусть у нас используется трехзначная внутренняя нумерация). Наша задача сводится к формулировке запроса к таблице cdr. Добавляем к нашему .php файлу: $query = "SELECT `dst` , `src` , `duration` , `dstchannel` , `calldate` , `disposition` FROM `cdr` WHERE `calldate` >='$today 00:00:00' AND `calldate` <='$today 23:59:59' AND LENGTH( `src` ) >3 AND `dst` = '100';" ; $res=mysql_query($query) or die(mysql_error()); // Выполнить запрос. Если произойдет ошибка - вывести ее. $number = mysql_num_rows($res); // Как много нашлось строк У нас почти все готово. Осталось только обработать данные на выходе. Для этого, нам понадобится следующая конструкция: //формируем шапку нашей таблицы со значениями $mes .= ' table style="max-width: 575px;border-bottom:none; margin: 0 auto;border-spacing: inherit;"> thead> tr style="border-bottom: 2px solid #05477c;"> th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Порядковый номер</th> th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Дата</th> th style="padding:10px; color: #fff; max-width: 100px;background:#05477c;">От кого</th> th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Кому</th> th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Статус звонка</th> /tr> /thead>'; //перебираем значения ассоциативного массива. Число элементов данного массива равно числу строк на выходе sql запроса while ($row=mysql_fetch_array($res)) { $mes .= ' tbody> tr style="width: 100px;"> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;">'.$counter.'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['calldate'].'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['src'].'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;">'.$row['dst'].'</td> td style="padding:10px; text-align:center; border-bottom: 1px solid #eee; min-width: 120px; ">'.$row['disposition'].'</td> /tr>'; $counter = $counter + 1; } Теперь, мы храним в переменной $mes html таблицу, которая готова к отправке на почту. Добавим в конец скрипта: mail("info@merionet.ru", 'Все входящие за '.$today.'', $mes, $headers); ВАЖНО! Если вы используете кириллические символы, установите кодировку .php файла на Кириллицу (windows-1251) Итак, готово. Давайте посмотрим что приходит нам на почту: Работает. Давайте сделаем ежедневное задание на отработку этого скрипта через cron. Сделаем, например, ежедневно, в 17:30, когда рабочий день подходит к концу: 30 17 * * * php /home/admin/mail_report.php Не забудьте в начала скрипта поставить открывающий тэг php, а в конце скрипта закрывающий.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59