По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Ни для кого не секрет, что FreePBX – это совершенно бесплатный дистрибутив, который может скачать и установить каждый желающий. Однако, для того чтобы расширить, а иногда и улучшить функционал IP-АТС на FreePBX, компания-разработчик Schmooze продаёт коммерческие модули. Об одном из таких модулей и пойдёт речь в сегодняшней статье. Итак, встречайте – коммерческий модуль Conference Pro. Настройка Как многие могли уже догадаться, модуль Conference Pro, является дополнением для бесплатного модуля Conference, про который мы уже написали статью и даже сняли видео. Данный модуль позволяет конечному пользователю управлять конференциями, проходящими на сервере через интерфейс UCP. Давайте же посмотрим, каким функционалом нам предлагают пользоваться 25 лет всего за $30 (на
img
Команда SCP (Secure Copy) - это метод шифрования передачи файлов между системами Unix или Linux. Это более безопасный вариант команды cp SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены. Как безопасно копировать файлы с помощью SCP Копировать файл с локального на удаленный сервер с помощью SCP Команда scp позволяет использовать подстановочные знаки. Используйте символ тильды ~/ для обозначения home/user каталога пользователя. Вы можете указать строку текста со знаком *. Например, /~/*.txt заставит SCP скопировать все файлы в домашнем каталоге, которые заканчиваются на .txt. Как правило, вам не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user и хотите скопировать файл test.txt на сервер, вы можете ввести следующее: scp test.txt username2@destination:/location2 Чтобы скопировать все файлы .txt в домашний каталог username2, введите следующее: scp *.txt username2@destination_host:/~/ Если вы укажете только каталог назначения, SCP оставит имя файла как есть. Чтобы изменить имя файла, определите новое имя файла в месте назначения: scp test.txt username2@destination_host:/user/home/user1test.txt В этом примере файл test.txt копируется с локального компьютера, а затем сохраняется как user1test.txt в каталоге пользователя системы назначения. Если удаленная система настроена на прослушивание SSH-запросов на порт, отличный от порта 22 по умолчанию, используйте переключатель –P, чтобы указать порт: scp –P 1234 test.txt user2@destination_host:/location2/ Это копирует test.txt из вашей локальной системы на целевой хост, используя порт 1234. Копировать с одного удаленного хоста на другой Вы не ограничены только подключением между локальным компьютером и удаленным сервером. Чтобы скопировать из одной удаленной системы в другую: scp user1@host1.com:/files/test.txt user2@user2.com:/files Это приведет к репликации файла test.txt из каталога /files на host1.com в каталог /files на /host2.com. Система предложит вам ввести пароль для пользователей user1 и user2 до завершения операции. Копирование больших файлов с помощью SCP Если вы копируете большие файлы, запустите команду в терминальном мультиплексоре, например tmux. Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново. Вы можете проверить, установлен ли в вашей системе tmux, выполнив в терминале следующее: tmux -V Рекомендации по использованию SCP Команда scp не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления. Вам будет предложено ввести пароль, когда вы нажмете Enter. Используйте пароль пользователя в удаленной системе. Управление разрешениями В исходной системе вам потребуется учетная запись с доступом для чтения к файлам, которые вы хотите скопировать. В системе назначения вам потребуется учетная запись с правом записи в каталог, в котором будут сохранены файлы. Если вы столкнетесь с ошибками при копировании, вы можете попробовать учетную запись пользователя root для устранения неполадок с разрешениями. Параметры команды SCP Базовый синтаксис SCP: scp [options] username1@source_host:/location1/file1 username2@destination_host:/location2/file2 Вот некоторые общие параметры команды scp: –P - Указать порт SSH сервера –p - сохранить метку времени для изменения и доступа (обратите внимание на строчные буквы) –q - тихий режим, без отображения прогресса или сообщений (все равно будут отображаться ошибки) –C - Сжимать данные во время передачи –r - Рекурсивно - включать подкаталоги и их содержимое Раздел, следующий сразу за параметрами, - это источник (путь) файла, который вы хотите скопировать. Вы можете скопировать из своей системы в удаленную или наоборот. В следующем разделе указывается место, куда копируется файл. Например: scp user@local_system:/home/user/test.txt admin@remote_system:/home/user Это скопирует документ test.txt из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе. Другой пример SCP - чтобы скопировать файл с удаленного хоста на локальный: scp user@from_host:file.txt /local/directory/ Итоги В этом руководстве вы узнали, что такое команда scp и как ее использовать для защиты передачи файлов.
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 на каком-нибудь облаке, чтобы он постоянно работал, проверял состояние сайта и уведомлял нас при сбое.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59