По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
RPM (Red Hat Package Manager) - это наиболее популярная утилита управления пакетами для Linux систем на базе Red Hat, таких как (RHEL, CentOS и Fedora). Она используется для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения. Пакет состоит из архива файлов и информации о пакете, включая имя, версию и описание. Формат файлов также называется RPM. Есть несколько способов откуда можно взять пакеты RPM: CD/DVD с программным обеспечением, CentOS Mirror, RedHat (нужен аккаунт) или любые открытые сайты репозитория. В RPM используется несколько основных режимов команд: Install (используется для установки любого пакета RPM), Remove (используется для удаления, стирания или деинсталляции пакета), Upgrade (используется для обновления существующего пакета), Query (используется для запроса пакета) и Verify (используется для проверки пакетов RPM). Рассмотрим это на примере. У нас есть пакет, и теперь посмотрим, что мы можем с ним делать. Установка Как узнать информацию о пакете RPM без установки? После того, как мы скачали пакет мы хотим узнать информацию о пакете перед установкой. Мы можем использовать -qipoption (запрос информации о пакете), чтобы вывести информацию о пакете. $ sudo rpm -qip GeoIP-1.5.0-11.el7.x86_64.rpm Вывод: Name : GeoIP Version : 1.5.0 Release : 11.el7 Architecture: x86_64 Install Date: (not installed) Group : Development/Libraries Size : 2905020 License : LGPLv2+ and GPLv2+ and CC-BY-SA Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5 Source RPM : GeoIP-1.5.0-11.el7.src.rpm Build Date : Sat 05 Nov 2016 08:29:17 PM UTC Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem Vendor : CentOS URL : http://www.maxmind.com/app/c Summary : Library for country/city/organization to IP address or hostname mapping Description : GeoIP is a C library that enables the user to find the country that any IP address or hostname originates from. It uses a file based database that is accurate as of June 2007 and can optionally be updated on a weekly basis by installing the GeoIP-update package. This database simply contains IP blocks as keys, and countries as values. This database should be more complete and accurate than using reverse DNS lookups. This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/ Как установить RPM пакет? Мы можем использовать параметр -ivh для установки определенного пакета, как показано ниже. $ sudo rpm -ivh GeoIP-1.5.0-11.el7.x86_64.rpm Вывод: Preparing... ################################# [100%] package GeoIP-1.5.0-11.el7.x86_64 is already installed Как проверить установленный пакет RPM? Мы можем использовать параметр -q с именем пакета, и он покажет, установлен ли пакет или нет. $ sudo rpm -q GeoIP Вывод: GeoIP-1.5.0-11.el7.x86_64 Как вывести список всех файлов для определенного установленного пакета RPM? Мы можем перечислить все файлы установленных пакетов rpm, используя опцию -ql с командой rpm. $ sudo rpm -ql GeoIP Вывод: /etc/GeoIP.conf /etc/GeoIP.conf.default /usr/bin/geoiplookup /usr/bin/geoiplookup6 /usr/bin/geoipupdate /usr/lib64/libGeoIP.so.1 /usr/lib64/libGeoIP.so.1.5.0 /usr/lib64/libGeoIPUpdate.so.0 /usr/lib64/libGeoIPUpdate.so.0.0.0 /usr/share/GeoIP /usr/share/GeoIP/GeoIP-initial.dat /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIPASNum.dat /usr/share/GeoIP/GeoIPASNumv6.dat /usr/share/GeoIP/GeoIPCity.dat /usr/share/GeoIP/GeoIPCityv6.dat /usr/share/GeoIP/GeoIPCountry.dat /usr/share/GeoIP/GeoIPCountryv6.dat /usr/share/GeoIP/GeoIPv6-initial.dat ... Как вывести список недавно установленных пакетов RPM? Мы можем использовать параметр -qa с параметром --last, в котором будут перечислены все недавно установленные пакеты rpm. $ sudo rpm -qa --last Вывод GeoIP-1.5.0-11.el7.x86_64 Sat 01 Sep 2019 11:34:09 AM UTC wget-1.14-15.el7_4.1.x86_64 Sun 26 Aug 2019 03:21:02 PM UTC iwl7265-firmware-22.0.7.0-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:18 PM UTC libgomp-4.8.5-28.el7_5.1.x86_64 Thu 16 Aug 2019 02:10:15 PM UTC iwl2030-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:15 PM UTC iptables-1.4.21-24.1.el7_5.x86_64 Thu 16 Aug 2019 02:10:15 PM UTC yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl6000-firmware-9.221.4.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl4965-firmware-228.61.2.24-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl105-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl100-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC iwl1000-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC ca-certificates-2018.2.22-70.0.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC iwl6000g2b-firmware-17.168.5.2-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:12 PM UTC ... Как установить RPM пакет без зависимостей? Мы можем использовать параметры -ivh с параметром --nodeps для проверки отсутствия зависимостей, чтобы установить конкретный пакет без зависимостей, как показано ниже. $ sudo rpm -ivh --nodeps GeoIP-1.5.0-11.el7.x86_64.rpm Вывод Preparing... ################################# [100%] Как заменить установленный пакет RPM? Мы можем использовать параметры -ivh –replacepkgs для замены установленного пакета. $ sudo rpm -ivh --replacepkgs GeoIP-1.5.0-11.el7.x86_64.rpm Вывод Preparing... ################################# [100%] Updating / installing... 1:GeoIP-1.5.0-11.el7 ################################# [100%] Удаление Как удалить пакет RPM? Мы можем использовать параметр -e для удаления определенного пакета, установленного без зависимостей. Обратите внимание, что удаление определенного пакета может нарушить работу других приложений. $ sudo rpm -e --nodeps GeoIP Обновление Как обновить установленный пакет RPM? Для обновления пакета мы используем параметры -Uvh $ sudo rpm -Uvh GeoIP-1.5.0-11.el7.x86_64.rpm Запрос Как запросить все установленные пакеты? Мы можем использовать параметры -a вместе с q для запроса всех установленных пакетов на сервере. $ sudo rpm -qa Вывод python-firewall-0.4.4.4-14.el7.noarch ncurses-base-5.9-14.20130511.el7_4.noarch plymouth-0.8.9-0.31.20140113.el7.centos.x86_64 kbd-misc-1.15.5-13.el7.noarch vim-common-7.4.160-4.el7.x86_64 bash-4.2.46-30.el7.x86_64 dmidecode-3.0-5.el7.x86_64 filesystem-3.2-25.el7.x86_64 kbd-1.15.5-13.el7.x86_64 vim-enhanced-7.4.160-4.el7.x86_64 firewalld-0.4.4.4-14.el7.noarch .... Как запросить конкретный пакет? Мы можем использовать команду grep, чтобы узнать, установлен ли конкретный пакет или нет. $ sudo rpm -qa | grep GeoIP Вывод GeoIP-1.5.0-11.el7.x86_64 Как запросить файл, который принадлежит пакету RPM? Чтобы узнать к какому пакету RPM относится файл /usr/lib64/libGeoIP.so.1.5.0. используем следующую команду. $ sudo rpm -qf /usr/lib64/libGeoIP.so.1.5.0 Вывод GeoIP-1.5.0-11.el7.x86_64 Проверка Как получить информацию для конкретного пакета? Мы можем использовать параметры -i вместе с q, чтобы получить информацию для конкретного пакета, как показано ниже. $ sudo rpm -qi GeoIP Вывод Name : GeoIP Version : 1.5.0 Release : 11.el7 Architecture: x86_64 Install Date: Thu 16 Aug 2018 02:04:09 PM UTC Group : Development/Libraries Size : 2905020 License : LGPLv2+ and GPLv2+ and CC-BY-SA Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5 Source RPM : GeoIP-1.5.0-11.el7.src.rpm Build Date : Sat 05 Nov 2016 08:29:17 PM UTC Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem Vendor : CentOS URL : http://www.maxmind.com/app/c Summary : Library for country/city/organization to IP address or hostname mapping Description : GeoIP is a C library that enables the user to find the country that any IP address or hostname originates from. It uses a file based database that is accurate as of June 2007 and can optionally be updated on a weekly basis by installing the GeoIP-update package. This database simply contains IP blocks as keys, and countries as values. This database should be more complete and accurate than using reverse DNS lookups. This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/ Как проверить RPM пакет? Мы можем проверить пакет, сравнив информацию об установленных файлах пакета с базой данных rpm, используя опцию -Vp. $ sudo rpm -Vp GeoIP-1.5.0-11.el7.x86_64.rpm Как проверить все пакеты RPM? Мы можем проверить все установленные пакеты rpm, используя опцию -Va $ sudo rpm -Va Вывод S.5....T. c /etc/sysconfig/authconfig S.5....T. c /etc/yum.repos.d/CentOS-Base.repo .M....... c /etc/machine-id .M....... g /etc/udev/hwdb.bin .M....... g /var/lib/systemd/random-seed .M....... c /etc/shadow S.5....T. c /etc/ssh/sshd_config .M....... c /etc/audit/rules.d/audit.rules S.5....T. c /etc/NetworkManager/NetworkManager.conf ....L.... c /etc/pam.d/fingerprint-auth ....L.... c /etc/pam.d/password-auth ....L.... c /etc/pam.d/postlogin
img
Представьте ситуацию, пользователи пытаются получить доступ к вашему сайту, но он не открывается. Знаете в чём дело? Возможно, есть ошибки, которые не были выявлены и решены раньше. Разочарованные пользователи покидают ваш сайт, а вы теряете лояльных пользователей. Как решить эту проблему? Как узнать о состоянии сайта раньше пользователей? Существует два возможных способа - eсли вы не против потратить немного денег, то можно обратиться к таким мониторинговым решениям, как StartCake и т.п. Однако если вы разработчик или не готовы тратиться ежемесячно, можете воспользоваться преимуществами API Geekflare - Site Up? Данный API проверяет доступность сайта из разных точек. В данном материале рассмотрим Python код, который немедленно уведомит вас через Gmail, как только сайт станет недоступен. Начнем с изучения API «Is Site Up?» API Is Site Up? Перед началом работы с API необходимо установить пакет requests, который в Python используется для работы с API. Но не обязательно использовать Python. Можно использовать любой другой язык. В любом случае, убедитесь, что настроили все необходимое, чтобы сделать API запрос. Итак, для тех, кто использует Python, установите пакет запросов с помощью команды: pip install requests Выполните настройку для других языков (если выбран другой язык, кроме Python) и переходите к следующим шагам. Теперь перейдите на страницу API Geekflare. Вы можете найти различные типы API, включая «Is Site Up?». Для использования API Geekflare нам нужен ключ API, который мы можем получить через RapidAPI. Нажмите на кнопку GET API KEY, чтобы перейти к RapidAPI. RapidAPI откроется в новой вкладке и выглядит следующим образом: Чтобы получить ключ API нужно создать учетную запись. Создайте учетную запись в RapidAPI, если у вас ее нет. Затем в верхней части всех доступных API Geekflare вы увидите API «Is Site Up?», который мы ищем. Если он не активен, найдите его с помощью поиска и нажмите на него. После этого в правой стороне должно отобразиться руководство по данному API. Из раздела Code Snippets в правой части выберите Python -> Requests. Или же если вы не используете Python, выберите другой язык с соответствующим пакетом. Вы получите код для вызова API «Is Site Up?». Давайте изменим его немного, чтобы потом легче было добавлять код. Посмотрите на измененный код в Python. import requests API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "YOUR_API_KEY" } payload = r'{"url": "https://www.geekflare.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data) Замените API_KEY своим собственным ключом API из RapidAPI в приведенном выше коде. Он будет разным для каждого пользователя. Вы найдете его в RapidAPI в разделе Параметры заголовка: Тот же ключ API вы сможете найти в примере кода, как показано ниже. Несколько расположений В приведенном выше коде сайт проверяется из одного датацентра (Нью-Йорк, США). Но мы можем посылать запросы на сайт из разных мест с указав буквенные коды стран в теле запроса. Другие доступные места - Англия (Лондон) и Сингапур. Мы можем передать данные местоположения вместе с URL-адресом сайта следующим образом: { "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" } Вы можете передать предпочитаемые расположения из списка. Мы написали код, чтобы сделать запрос API, который получает данные независимо от того, работает сайт или нет. Пришло время написать еще код, который отправляет почту, когда сайт не работает. Получение уведомления на почту В сети можно найти немало руководств о том, как отправлять электронные письма через Gmail в Python или же использовать следующий код, который использует пакет под названием yagmail специально разработан для отправки почты из Gmail. Перед отправкой сообщения через учетную запись Gmail необходимо включить параметр Разрешить небезопасные приложения. Вы можете включить его здесь. Посмотрим код: def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "receiver@domain.com" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, ) Полное руководство по yagmail можно найти здесь. Теперь у нас есть код для запросов API и отправки почты. Следующим шагом является вызов send_mail всякий раз, когда в ответе на запрос сайт указывается как недостпный. Итак, откуда мы знаем, что наш сайт не работает или работает? Когда мы посылаем запрос к API «Is Site Up?», он возвращает нам Python словарь с некоторыми данными как следующем скриншоте: В данном словаре есть ключ message. Значение этого ключа и показывает нам состояние сайта. Данный ключ может иметь два значения: Site is up Site is down Итак, мы отправим почту, когда получим сообщение «Site is down». Окончательный код будет выглядеть так: import requests import yagmail API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "API_KEY" } payload = r'{"url": "https://www.abcd.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "email@domain.com" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down.': ## extracting the errors from different locations locations_data = data['data'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below. " for location in locations_data: mail_content += f"{location['city']}, {location['country']} - {location['error']} " mail_content += " Check the error and resolve them as soon as possible." send_mail(mail_content) Тело сообщения можете редактировать по своему усмотрению. Мы завершили код отправки почты всякий раз, когда наш сайт не работает. Смотри образец сообщения, полученного с помощью вышеуказанного кода. Но, есть еще проблема. Мы должны выполнить наш код, чтобы проверить, работает ли наш сайт или нет. Частота запуска данного скрипта зависит от ваших предпочтений. Допустим, мы должны проверять сайт каждые час. Правда, мы можем каждый час открыть терминал и запустить скрипт. Но это скучно и неэффективно. Плюс к этому, никто так не делает. Решение напрашивается само: использовать cron для автоматического выполнения нашего кода каждый час. Посмотрим, как его настроить. Настройка Cron Рассмотрим шаги по настройке cron в операционной системе на базе UNIX. Открыть терминал. Выполните команду crontab -e, которая открывает файл crontab на терминале. Нажмите клавишу i для перехода в режим ВВОДА. Теперь добавьте шаблон cron, пути к исполняемому файлу Python и нашему файлу, как указано ниже: 0 * * * * /usr/bin/python3 /home/sample.py Подробно про cron можно прочесть в этой статье. Итак, мы настроили планировщик для ежечасного запуска кода. Если нужно будет указать другое расписание, можно воспользоваться разными утилитами для генерации шаблона расписания для cron. Пожалуй, теперь все. Мы настроили проверку сайта каждый час и получение уведомления на почту, если сайт станет недоступен. Заключение Автоматизация экономит много времени и работает на нас. Можно настроить cron на каком-нибудь облаке, чтобы он постоянно работал, проверял состояние сайта и уведомлял нас при сбое.
img
C появлением термина «виртуализация», множество компаний начали массово мигрировать свой серверный ресурс с аппаратной на виртуальную платформу. В данной статье мы попробуем разобраться, что такое «виртуализация» и какие плюсы она несет в себе. Современному бизнесу ежедневно приходится иметь дело с различными приложениями, будь то сервер CRM, корпоративный каталог (Active Directory) или сервер базы данных и т.д. В 8 из 10 случаев, серверный ландшафт имеет свойства гетерогенной среды, т.е каждое приложение имеет свою собственную операционную систему и нуждается в отдельном сервере. При условии дальнейшего масштабирования предприятия, крайне неэффективно и дорого продолжать закупку серверов. На помощь приходит «виртуальный сервер», или, как чаще говорят – «виртуальная машина». Основной идеей виртуализации является развертывание различных приложений, с разными операционными системами поверх одного физического сервера. В тоже время, все виртуальные машины имеют функционал, аналогичный функционалу при развертывании на аппаратном сервере. Ведущие вендоры в области виртуализации на сегодняшний день, это VMware, Hyper-V и Cirtix. Лидером по разработке виртуальных решений является VMware. Централизованное и удобное управление через VCenter, облегчает работу администратора в несколько раз. У VMware разработан свой гипервизор – ESX(i). Гипервизор (Hypervisor) - важнейший компонент виртуализации, отвечающий за обеспечение существования нескольких виртуальных машин поверх разных операционных систем на одном физическом сервере. На рисунке ниже, схематически изображен принцип виртуализации. Виртуализация серверов от компании Мерион Нетворкс Помимо повышения эффективности использования IT – инфраструктуры, снижения затрат на покупку оборудования и найм персонала, хочется перечислить следующие преимущества виртуализации серверов: Замена аппаратной составляющей на программное обеспечение Незачем тратить юнит в стойке, можно развернуть виртуальную машину. Унификация управления Вы получаете централизованное управление всеми виртуальными серверами, что облегчает деятельность соответствующего персонала. Снижение затрат на электроэнергию и охлаждение серверной комнаты За счет уменьшения единиц серверного оборудование происходит снижение тепловыделения. Консолидация управления операционными системами с помощью гипервизора Возможность проводить апгрейд сервера не затрагивая приложения и не совершая перезагрузку Возможность резервирования и создания отказоустойчивой конфигурации (snapshot) Удобные средства для мониторинга перформансов в реальном времени
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59