По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Существует множество различных решений для управления Asterisk, основой которых, является FreePBX. К ним относятся - Elastix, PBX in a Flash (PIAF), Trixbox, AsteriskNOW и FreePBX Distro. Однако, с момента первого релиза FreePBX многое изменилось и большинство перечисленных проектов по-просту перестали существовать. Trixbox перестал поддерживать открытое ПО и переориентировался на коммерческую редакцию Trixbox Pro. Elastix и PIAF вообще дружно сменили свой движок с Asterisk на 3CX и для этих продуктов обновлений также больше нет. Кроме того, есть компании, которые до сих пор используют старые не поддерживаемые версии FreePBX и ежедневно испытывают трудности с их работой, а также те, кто установил FreePBX вручную на не поддерживаемые операционные системы. Единственный продукт, который до сих пор обновляется и поддерживается разработчиком - это сам проект FreePBX и FreePBX Distro. Принимая это во внимание, разработчики FreePBX создали решение, которое позволяет сделать миграцию любой системы на базе FreePBX, (начиная с версии 2.9 до и включая версию 14) на свеженькую FreePBX Distro на базе ОС SNG 7, со всеми настройками и конфигурацией! Итак, можно мигрировать с: Elastix; PBX in A Flash; AsteriskNOW; вручную установленного FreePBX (в том числе установленного на не поддерживаемой ОС); FreePBX Distro При этом система, с которой производится миграция не требует остановки эксплуатации или перезагрузки, так как инструмент всего лишь считывает конфигурацию с системы "донора" на свежую систему FreePBX Distro. Как это работает: Вам нужно будет установить свежую версию свежую версию FreePBX Distro , на которую будет происходить миграция и активировать её; Запустить на новом сервере с FreePBX Distro скрипт конвертации командой: curl -s https://convert.freepbx.org | bash Этой командой сервер запросит место (слот) в очереди на конвертацию. Когда слот будет успешно занят сгенерируется ключ, вида 2beb181b-14ed-4f56-a86b-f6e564ba6c43; После этого, нужно запустить такую же команду на сервере - доноре, с которого вы хотите мигрировать и ввести полученный ключ; Конвертер извлечёт необходимые данные с донора и загрузит их на новый сервер. Этот процесс не окажет никого влияния на донора, не внесёт на нем никаких изменений и не потребует выключения; Скрипт также будет пробовать стянуть с донора всякие кастомные данные, такие как пользовательские голосовые файлы и данные провиженинга; Все транки на новом сервере будут выключены, чтобы избежать конфликта с зарегистрированными линиями к провайдеру на старом сервере. О том, как установить FreePBX читайте в нашей статье Какие данные будут перенесены на новый сервер: Внутренние номера (Extensions); Маршруты (Inbound/Outbound Routes); Линии к провайдеру (Trunks); Музыка на ожидании (MoH); Голосовые меню (IVR); Группы вызова (Ring Groups); Очереди (Queues); Любые другие настройки, являющиеся стандартной частью FreePBX; Звуковые файлы, включая: загруженную пользователем музыку на ожидании (MoH), записи голосовой почты и приветствия для голосовой почты, а также системные записи (System Recordings) Какие данные не будут перенесены на новый сервер: История звонков, то есть Call Data Report (CDR) и таблица Call Event Log (CEL); Вы можете самостоятельно перенести эти данные на новый сервер, экспортируя их с помощью 'mysqldump' или аналогичной утилиты. Эти данные могут быть очень тяжёлыми, поэтому пользователь сам должен позаботиться об их переносе. Настройки факса; Эта часть претерпела огромные изменения с момента первого релиза FreePBX, поэтому придется самостоятельно перенастроить почты пользователей, которым нужен функционал факса. Кастомные изменения конфигурационных файлов; То есть всё, что было изменено в файлах вида *_custom.conf, например /etc/asterisk/extensions_custom.conf. Если у вас есть такие настройки, то переносить их на новый сервер нужно будет вручную. Настройки не FreePBXовых модулей; Ну например Elastix Call Center Module, Queue Metrics и остальные модули, которые не являются стандартными для FreePBX. В общем и целом, звучит неплохо, правда? Мы можем безболезненно перенести большинство необходимых данных с неподдерживаемой системы и продолжить работу на новой, получая все актуальные обновления. Процесс миграции не представляется чем-то сверх сложным, так что давайте попробуем? Процесс миграции Итак, первое с чего нужно начать - это подготовка нового сервера с FreePBX Distro. Важно устанавливать именно 64-битную версию, поскольку 32-битная больше не поддерживается. О том как установить FreePBX Distro подробно читайте в нашей статье. Как только FreePBX Distro будет установлен, его необходимо активировать. Активация требуется для того чтобы сгенерировать криптографический ключ для защиты ваших данных для передачи на сервер конвертации https://convert.freepbx.org. Данные передаются в зашифрованном виде, чтобы исключить возможность их утечки в случае атаки типа Man-in-the-Middle. Затем необходимо настроить NAT. FreePBX Distro имеет свой встроенный модуль Firewall, который автоматически настраивает параметры NAT и Firewall через специальный помощник при первом запуске FreePBX. О том как настраивать Firewall читайте в нашей статье. После того как сервер с чистым FreePBX Distro настроен, необходимо зарезервировать слот для конвертации. Это делается с помощью специального скрипта: curl -s https://convert.freepbx.org | bash. Когда Вам предложат ввести reservation ID, просто нажмите 'Enter'. По окончанию процесса резервации слота, будет сгенерирован уникальный код конвертации вида: 2beb181b-14ed-4f56-a86b-f6e564ba6c43. Его потом нужно будет ввести на доноре. После этого, новый сервер будет ожидать ответа от донора. Не останавливайте скрипт, нужно чтобы на экране была надпись Waiting for Donor…. Теперь нужно запустить такую же команду на сервере - доноре, с которого вы хотите мигрировать и ввести полученный ключ; Возвращаемся на сервер-донор (Elastix, PIAF и так) с которого мы хотим мигрировать и запускаем тот же самый скрипт: curl -s https://convert.freepbx.org | bash Когда вас попросят ввести ID, введите то что было сгенерировано при запуске скрипта на новом FreePBX Distro. Это запускает процедуру экспорта всех данных и настроек с сервера донора и создание сжатого, криптографически защищённого архива с этими данными для отправки на новый сервер. В зависимости от того, насколько давно был развёрнут старый сервер, существует возможность неудачной обработки команды скрипта, поскольку сервер может не поддерживать обработку TLS сертификатов. Если после запуска скрипта ничего не происходит, попробуйте запустить команду с отключением верификации TLS сертификата: curl --insecure https://convert.freepbx.org | bash Как только процесс завершится, новый сервер будет иметь все настройки и данные, которые были на сервере доноре. Вы получаете полностью рабочий сервер со свежей версией FreePBX Distro, которая будет получать актуальные обновления софта и безопасности со всеми настройками, которые были на старом сервере!
img
Операционная система (ОС) это комплекс программного обеспечения, которое превращает груду железа, которую мы называем компьютер, в выполняющую сложнейшие вычисления машину. Сегодня на рынке две основных семейства ОС: Linux опенсорсная система, первый выпуск которой был в 1991 году, и Windows платная и пожалуй самая популярная на сегодняшний день операционная система. /p> В наши дни большинство пользователей предпочитает второй вариант, так как он удобней и легче. Но есть пользователи, которые не против попробовать что-то новое и, может быть, перейти на новую систему. Но переустанавливать свою систему не вариант. Во-первых, файловая система этих двух семейств ОС сильно отличается. И файлы записанные на диск в одной ОС, сложно считать на другой. Во-вторых, полное форматирования уничтожит все данные, а этого никому не хочется. Можно попробовать установив на виртуальной машину, но если ресурсы хоста ограничены, то сложно оценить все возможности новой системы. Есть ещё вариант загрузки с Live-диска, но тоже неэффективно, так как тоже не может использовать все ресурсы физической машины. Но к счастью есть возможность попробовать новую систему на реальной машине при этом не теряя ни байта данных. В этой статье речь пойдёт как раз об этой возможности. Наиболее распространённой версией *nix-подобных систем является Ubuntu. И мы тоже не будем оставать от моды и опробуем эту версию ОС. Для начала нужно скачать образ системы с официального сайта. На момент написания статьи последняя non-LTS версия 19.10, но каждый чётный год разработчики выпускают версию LTS версия с долгосрочной поддержкой, что гарантирует выпуск обновлений в течении пяти лет. А non-LTS поддерживается только в течении 9-ти месяцев. И на текущий момент LTS версия это 18.04. Его и установим. Скачав образ системы его нужно записать на диск или флеш-карту. Дисками уже никто не пользуется, поэтому выбираем второй вариант. Чтобы создать загрузочный диск для Linux систем рекомендуется пользоваться утилитой Unetbootin. Но старый, добрый Ultra ISO тоже хорошо справляется. Вставляем флешку, запускаем программу от имени Администратора. Выбираем образ и кликаем на нем два раза. Образ распаковывается в основном окне. Затем выбираем Bootable->Write disk image. Выбираем нужную флешку и нажимаем на Write. Программа предупредит, что на флеш-карте все данные сотрутся, нажимаем ОК и ждём окончания записи. Для установки рядом с Windows 10 нужно предварительно подготовить свободно место на диске. Делает это через консоль управления жёсткими дисками. Освобождаем необходимое для установки системы место. Для тестовой среды хватит 60 Гб. Чтобы запустить консоль в поиске набираем diskmgmt. Кликаем правой кнопкой мыши на диске, который хотим разделить и выбираем Сжать диск (Shrink volume). Система подсчитывает оптимальное значение, но если нужно изменить, то выставляем нужное значение нажимаем Сжать(Shrink) . На этой неразмеченной области и будем устанавливать Linux. Перезагружаем систему и заходим в BIOS нажав F2 (на каждой материнке по разному), выставляем загрузку с флешки. Система запустится и откроется окно выбора языка: Здесь предоставляется возможность протестировать Live версию системы, о чём уже упоминали выше. А мы выбираем язык и нажимаем Установить Ubuntu. Затем открывается окно с опциями установки. Можно выбрать Обычную версию, Минимальную версию, а также можно сразу установить ПО сторонних разработчиков таких, как драйвера и дополнительные кодеки: Далее выбираем раскладку клавиатуры и нажимаем Продолжить. Рекомендуем сразу выбрать Английский язык, остальные можно добавить позже: И на этом этапе установщик определяет, что у нас на диске уже есть система Windows и предлагает вариант установки рядом с ней. Мы же выбираем Другой вариант, чтобы иметь возможность гибко распределять место на диске: На следующем окне видим как раз наши разделы с Windows и свободный: Выбираем свободное место и нажимаем на плюсик. 20 гигабайтов выделим под корневую директорию, куда устанавливается сама система, своеобразный диск C на Windows которая обозначается прямым слэшем. В отличии от Windows, *nix системы используют прямой слэш, вместо обратного: Под домашний каталог выделим 40 Гб. Это место где хранятся файлы пользователя: А 8 гигабайтов выделим под раздел подкачки: Нажимаем продолжить. Система выводит информацию о внесённых изменения и просит подтвердить их. Ещё раз нажимаем Продолжить и переходим к выбору часового пояса. После чего выходит окно создания пользователя: Затем установщик начинает копировать файлы. При завершении установки система просит перезагрузиться. После перезагрузки открывается меню загрузчика GRUB, где можно выбрать какую систему следует запускать. По умолчанию стоит Ubuntu и если не предпринять никаких действий, через 10 секунд она и загрузится: Вводим пароль, нажимаем Войти и вуаля, мы только что установили Ubuntu рядом с Windows не повредив ни одного файлика: Вот и всё, удачи!
img
Привет, сегодня расскажем что такое база данных и SQL. У современных баз данных куча нюансов - погнали разбираться. Представь - собираешь ты деньги на подарок корешу, и записываешь на бумажке, кто сколько скинул. Табличка с денежками организована, разделена по именам и сумме долга, и имеет удобную структуру - ну вот оно, это и есть база данных! Ага, теперь, перемещаемся в цифровое пространство и заводим целый эксель файл для этого дела. Стало удобнее, можно редактировать, сортировать и даже данные удалять! Круто! Но достаточно ли этого для роста этой базы данных? Нет. Со временем данных становится так много, что админам приходится связывать их друг с другом, а тут одним эксель файлом уже не обойтись. Представим, решили вы сделать свой аналог ютуба, как будете хранить инфу о пользователях? Список юзеров, там, каналы, кто на что подписан, лайки и вот это все. Сложить это все в одну таблицу? Будет неудобно и медленно работать. Очевидно, надо разделить сущности на несколько таблиц - юзеры, каналы и видосы: Теперь свяжем данные между собой и добавим информацию о том, кто создал канал, и на каком канале залили видео. Ага, получились связанные таблицы. Связанные, от слова связь. А связь, это по-английски relation. А в айти тусовке они так и называются - реляционные базы данных, и это один самых распространенных типов баз данных. Еще есть нереляционные базы данных, о них подробнее можно прочитать в этой статье про NoSQL. Уф, ну теперь с данными стало гораздо удобнее работать, и мы избежали большой таблицы с повторяющимися строчками, разбив все на несколько табличек. Такой процесс еще называется нормализацией, когда мы избавляемся от избыточных данных. Ну и как раз для этого мы ввели в каждой таблице специальное поле - ID, которое идентифицирует каждую запись. Этот айди называется Primary Key, он же “первичный ключ”. А в таблице которая будет на него ссылаться, он будет называться Foreign Key, или по-русски “внешний ключ”. Нырнем в детали и поговорим про типы связей между таблицами. Первый тип называется “Один-ко-многим” или “многие-к-одному” (One-to-Many или Many-to-One). В нашем примере, у каждого видео может быть только один канал, где оно выложено, но на одном канале может быть много видео, поэтому в двух последних строках ID канала у нас повторяется, верно? Отношения «один-ко-многим» также можно рассматривать как отношения «многие-к-одному», в зависимости от того, с какой стороны вы на это смотрите. Второй тип связей называется “один-к-одному” (One-to-One) - классические табличные отношения. Вообще, это редко используемый тип связи, обычно его делают для безопасности. Это как если на нашем аналоге ютуба, мы разрешили бы создавать только один канал одному пользователю и в таблице с каналами ID создателя не могло повторяться. Такое себе, согласен? В таком случае вообще можно было бы обойтись и одной таблицей. Ну и третий тип связей, это “многие ко многим” (Many-to-many). Это когда у нас появляется промежуточная таблица связей, которая как бы соединяет два отношения “один ко многим”, которые мы обсудили в начале разбора типов связей. Давайте сделаем таблицу с лайками балалайками, где будем хранить ID пользователей и ID видео, к которым они поставили лайк: А вот так они связан: каждый пользователь может поставить лайк каждому видео. Теперь вопрос - а где все это хранить? Не в экселе же. И тут на сцену выходит термин СУБД, она же система управления базами данных - это программа, которая позволяет создавать, редактировать и администрировать реляционную базу. Ну и для управления всей этой петрушкой используется язык структурированных запросов, SQL (Structured Query Language) эскюэль или сиквел, как иногда его называют за рубежом. Он очень простой и понятный, вот смотри - чтобы найти названия всех видео с одного канала, нам нужно выполнить следующий запрос: SELECT name FROM videos WHERE channel_id = 201 То есть мы буквально говорим: выбери (SELECT) имена из (FROM) таблицы видео, где (WHERE) айдишник (ID) канала равен 201. Если вы хотите взять данные из нескольких таблиц и объединить результат, то нужно использовать в запрос параметр JOIN (от английского соединить). Вот такая упрощающая жизнь админам аналогия с разговорным языком. Так, SQL конечно позволяет добавлять, удалять и изменять данные и сами таблицы. Но важно не забывать про схему базы данных (Database schema), которая служит для описания структуры таблицы, ее полей и ограничений. Прикол в том, что если вам потребуется добавить или убрать столбец в таблице, то это изменение коснется вообще всех данных в таблице, таким образом если мы добавляем новый столбец, то он теперь будет присутствовать в каждой строке. Окей, а для чего вообще нужны ограничения? Для целостности твоих данных. Помнишь мы рассказали про первичный и внешний ключ? Так вот, благодаря им мы можем удостовериться, что в таблицу не попадет запись, которая ссылается на несуществующий айдишник. Или различные ограничения полей, которые не дадут записать дублирующие или пустые данные в нашу базу (Not NULL и Unique). И еще: транзакции. Эта штука, которая позволяет как бы склеить несколько SQL запросов в один. Ну вот представь такую задачку: вставить данные в первую таблицу, а во второй указать ID вставленной записи. Если ты делаешь это без использования транзакций, а во время второго этапа у тебя отвалится интернет, то первая запись попадет в базу, а вторая нет. Ага, появляется интернет, и ты с улыбкой на лице идешь снова выполнить эти запросы, только на этот раз получишь ошибку, что такая запись уже есть, ибо первая то уже в базе! А в случае использования транзакций, при получении ошибки, мы откатимся до того момента, который был до начала транзакции. А еще все эти радости помогают реляционным БД (базам данных) соответствовать так называемым требованиям ACID, которые нужны для сохранности данных - это очень важно в банковской отрасли, или любой другой, где целостность и сохранность данных супер важны. Давай разберемся с аббревиатурой: Atomicity — атомарность, или же проще говоря, непрерывность: это как раз про транзакции, которые мы обсудили только что. Либо операция выполняется целиком, либо никак. Consistency — согласованность: данные, записываемые в таблицу должны соответствовать всем выставленным правилам и ограничениям, помнишь, мы говорили про первичный и внешний ключи, а также про уникальность? Isolation — изолированность: если вы гоняете тонну транзакций одновременно, они не должны пересекаться и влиять друг на друга. Это очень важно для высоконагруженных баз Durability — надежность: если мы получили подтверждение, что транзакция выполнена, то значит наши данные в сохранности, даже если после этого произошел сбой. Ну и в качестве примеров таких баз данных назовем: Microsoft SQL Server, Oracle Database, MySQL, MariaDB и PostgreSQL.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59