По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Дорогой друг! Ранее мы рассказывали про новинки FreePBX 14. Новые и интересные фичи безусловно не будут лишними. Ну что же, приступим теперь к обновлению FreePBX 13 версии до 14? Pre-work Рекомендуем перед началом работ сделать полный бэкап/снэпшот сервера, на котором будут производиться работы; Как и у любого пользователя FreePBX, у вас в Dashboard графической оболочки появилось следующее уведомление: Заманчивое название модуля. Переходим в консоль (подключаемся пол SSH) вашего сервера и даем простую команду: fwconsole ma downloadinstall versionupgrade Модуль будет установлен: Теперь возвращаемся в FreePBX. В правом верхнем углу нажимаем Apply Config. Далее, прыгаем по пути Admin → 13 to 14 Upgrade Tool и вот что мы увидим: Нажимаем на кнопку Check the requirements! и смотрим: система говорит, что у нас установлен FreePBX Distro и нам необходимо воспользоваться специальным скриптом для апгрейда. Что же, приступим к обновлению вручную. Обновление через CLI Перед началом работ есть определенные требования, такие как: Сервер с 64 - битной архитектурой; Как минимум 10 Гб свободного места; Стабильное интернет соединение; Если вы используете 32 – битную архитектуру, то проще всего воспользоваться FreePBX Conversion tool, сделав бэкап на 32 – битной системе, а восстановить его в системе 64 – бит с FreePBX 14. При попытке установки на 32 – битной системе процесс предупредит вас об этом: Устанавливаем нужный RPM: yum -y install http://package1.sangoma.net/distro-upgrade-1707-16.sng7.noarch.rpm После успешной установки RPM даем следующую команду: distro-upgrade И переходим в интерактивный режим: [root@freepbx ~]# distro-upgrade ?????????????????????????????????????????????? ? ? ? Sangoma 6 to 7 Upgrade Tool ? ? ? ? Distro Upgrade - Version 1707-2.sng7 ? ? Build Date: 2017-06-21 ? ? ? ?????????????????????????????????????????????? Checking prerequsites... Checking bitsize of machine [ ? ] - x86_64 Checking available disk space [ ? ] - 13G Available All prerequsites passed! Are you ready to upgrade your machine to SNG7? This process requires two reboots, and will download approximately 200mb of files before starting. There will be no interruption to service until this machine is rebooted. Download files required for upgrade [Yn]? Указываем y: Download files required for upgrade [Yn]? y ######### Starting setup upgrade on Tue Aug 22 17:39:08 MSK 2017 ######### ######### Creating upgrade repofile ######### ######### Installing needed packages ######### ######### Running preupgrade ######### ######### Running upgrade-tool ######### ######### Downloading sangoma-release rpm ######### ######### Updating packages.list ######### ######### Verified sangoma-release in package.list ######### ######### Reboot to finish this stage of the upgrade ######### ######### Finished setup upgrade on Tue Aug 22 17:44:12 MSK 2017 ######### Preparations complete! Please reboot your machine when convenient. This machine will install all the new and upgraded packages, and then reboot for a second time automatically. After the second reboot, it will then continue the upgrade process automatically. When the upgrade is complete, you will be presented with a standard login prompt. Важно! Данный процесс можно проводить в рабочее время параллельно с обслуживанием вызовов. Даунтайм подразумевается только далее, после перезагрузки. Перезагружаем сервер командой reboot. При загрузке, у вас будет автоматически выбрана опция System Upgrade, как показано ниже. Если нет, то выберите эту опцию вручную стрелками на клавиатуре: После этого начнется процесс обновления. Длительность этого процесса напрямую коррелирует с производительностью вашего сервера. После обновление компоненты Core OS произойдет вторая перезагрузка, в рамках которой произойдет обновление всех модулей FreePBX, после чего апгрейд будет завершен. По окончанию, вы увидите стандартный баннер FreePBX 14: Выполняем проверку версии. Даем команду в консоль: ls -l /usr/src | grep freepbx Если все ОК, то вывод будет вот такой:
img
Вот вы пользователь Linux машины. И вот вам захотелось запустить какую-нибудь команду только на определенное время, и вы задаете вопрос - как это сделать? А вот как - использовать команду timeout. Как взять timeout - об использовании команды Базовый синтаксис Как и следовало ожидать, синтакс у команды экстремально прост: сама команда timeout - опции - длительность выполнения (можно даже с единицами измерения) - целевая команда Единицы измерения для указания длительности: s - секунды (­стоит по умолчанию) m - минуты h - часы d - дни Если вы не укажете никакого параметра по длительности, команда не будет активирована. Примеры команд: timeout 5 ping 1.1.1.1 - пингуем 1.1.1.1 5 секунд timeout 5m ping 1.1.1.1 - пингуем 1.1.1 5 минут timeout 5.5h ping 1.1.1.1 - 5,5 часов пингуем 1.1.1 Если у вас есть необходимость, можно запустить команду с добавкой sudo (если для целевой команды требуются права суперпользователя): sudo timeout 100 tcpdump -n -w dump.pcap Сообщение с космосом или отправка определенного сигнала исполняемому процессу Если вы не указали какой-то особый сигнал, по умолчанию передается SIGTERM (сигнал о том, что надо бы мягко терминировать процесс). Однако, если вы укажете ключ -s после команды timeout, вы можете указать любой другой допустимый сигнал. К примеру: sudo timeout -s SIGKILL ping 1.1.1.1 или sudo timeout -s 9 ping 1.1.1.1 Обе команды выше идентичны, и если вы хотите увидеть весь список сигналов, просто введите kill -l Как убить процесс, если он завис Как вы уже поняли, SIGTERM - это сигнал, который отправляется после истечения таймаута, но он легко может быть проигнорирован процессом, и тогда процесс не остановится. Для уверенности в смерти процесса, нужно использовать ключ -k и некое временное значение. Тогда после окончания таймаута будет отправляться сигнал SIGKILL, который процесс не сможет проигнорировать при всем желании. В примере ниже команда выполняется одну минуту, и, если в течение 10 секунд после окончания таймаута она не "умирает", отправляется сигнал SIGKILL и "добивает" процесс: sudo timeout -k 10 1m ping 1.1.1.1 Сохраняем статус Команда timeout всегда возвращает значение 124 после истечения указанного времени или возвращает статус "exit" управляемой команды (той, что вы вводите после команды timeout). Таким образом, вы можете использовать ключ --preserve-status: timeout --preserve-status 10 ping 1.1.1.1 Запуск команды явно, а не за кулисами По умолчанию, timout работает в бэкграунде, и если вы хотите обратного (вдруг после запуска управляемой команды потребуется какой-нибудь пользовательский ввод), нужно использовать ключ -foreground: timeout --foreground 10m ./bestscripteva.sh Заключение В 99% процентов случаев команда timeout требует всего двух аргументов и ни одного факта: времени исполнения и самой исполняемой команды. Однако, вы теперь знаете и другие фишки использования этой замечательной команды.
img
BGP - это сложный протокол маршрутизации, и бывают ситуации, когда что-то идет не так как надо. Кроме того, что он сложный, он также совершенно отличается от наших IGP протоколов (OSPF и EIGRP). В этой статье мы начнем с рассмотрения неполадок, возникающих в установлении соседства BGP, и как только это разберем, перейдем к проблемам с объявлением маршрутов, которые должны или не должны появляться! Видео: Основы BGP за 7 минут Урок 1 Начнем с нескольких простых сценариев. Два маршрутизатора BGP, которые подключены и настроены для EBGP. К сожалению, мы видим это, когда проверяем соседство BGP: Когда два маршрутизатора EBGP, которые напрямую подключены, не образуют рабочее соседство BGP, может произойти ряд ошибок: Layer 2 не позволяет нам добраться до другой стороны. Проблема уровня 3: неправильный IP-адрес на одном из маршрутизаторов. Список доступа, блокирующий TCP-порт 179 (BGP). Неправильный IP-адрес настроен для соседнего маршрутизатора BGP Мы можем использовать команду show ip bgp summary, чтобы проверить IP-адреса маршрутизаторов. Они, совпадают. Мы выполним эхо запрос, с помощью команды ping. Видим, что, пакеты не могут добраться до другой стороны. Проверяем интерфейсы и видим, что кто-то ввел команду отключения интерфейса. R2(config)#interface fa0/0 R2(config-if)#no shutdown "Поднимаем" интерфейс Это прекрасно! Наше соседство BGP установлено. Это было легко! Итог урока: убедитесь, что ваш интерфейс работает. Урок 2 Следующая неполадка похожа на предыдущую, но немного отличается. Мы используем те же маршрутизаторы и номера AS, но на этот раз необходимо установить соседство BGP между интерфейсами обратной связи. Посмотрим, как выглядит конфигурация BGP: Вот конфигурация BGP. Как вы видите, мы используем loopback интерфейсы для установления соседства BGP-соседей. Оба маршрутизатора показывают, что их сосед BGP бездействует. Есть ряд вещей, которые мы должны проверить здесь: Доступен ли IP-адрес соседа BGP? Мы не используем прямые линии связи, поэтому у нас могут возникнуть проблемы с маршрутизацией. TTL IP-пакетов, которые мы используем для внешнего BGP, равен 1. Это работает для сетей с прямым подключением, но, если они не подключены напрямую, нам нужно изменить эту настройку. По умолчанию BGP будет получать обновления с IP-адреса, ближайшего к соседу BGP. В нашем примере это интерфейс FastEthernet. Это то, что мы должны изменить. Начнем с маршрутизации. Оба маршрутизатора знают только о своих напрямую подключенных сетях. Чтобы достичь loopback интерфейсов друг друга, мы будем использовать статическую маршрутизацию. R1(config)#ip route 2.2.2.2 255.255.255.255 192.168.12.2 R2(config)#ip route 1.1.1.1 255.255.255.255 192.168.12.1 Два статических маршрута должны выполнить эту работу. Отправка ping на IP-адрес 2.2.2.2 и получение его из нашего собственного loopback интерфейса доказывает, что оба маршрутизатора знают, как связаться с loopback интерфейсом друг друга. R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 2 R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2 Команда ebgp-multihop изменяет TTL на 2. Мы можем включить отладку, чтобы увидеть прогресс. Ясно видно, что R2 использует IP-адрес 192.168.12.2, а R1 отказывается от соединения. R1(config-router)#neighbor 2.2.2.2 update-source loopback 0 R2(config-router)#neighbor 1.1.1.1 update-source loopback 0 Используйте команду update-source, чтобы изменить IP-адрес источника для обновлений BGP. Соседство BGP работает! Итог урока: маршрутизаторам BGP не требуется устанавливать соседство с использованием напрямую подключенных интерфейсов. Убедитесь, что маршрутизаторы BGP могут связаться друг с другом, что пакеты BGP получены из правильного интерфейса, и в случае EBGP не забудьте использовать команду multihop. Урок 3 Продолжим рассмотрение некоторых проблем IBGP. Два маршрутизатора в одной AS и вот конфигурация: Легко и просто. Маршрутизаторы используют напрямую подключенные IP-адреса для соседства BGP. Жаль ... мы не становимся соседями. Что может быть не так? Мы используем напрямую подключенные интерфейсы, поэтому не так много проблем, если не считать проблемы L2 / L2. Отправка пинга с одного маршрутизатора на другой доказывает, что L2 и L3 работают нормально. Как насчет L3? У нас могут быть проблемы с транспортным уровнем. Я не могу подключиться к TCP-порту 179 с обоих маршрутизаторов. Это звоночек в сторону того, что что-то блокирует BGP? Вот оно! Это Служба безопасности.… Кто-то решил, что было бы неплохо "обезопасить" BGP и заблокировать его списком доступа. R2(config)#interface fastEthernet 0/0 R2(config-if)#no ip access-group 100 in Удалим список доступа. Итог урока: не блокируйте TCP-порт BGP 179. Урок 4 Следующая проблема IBGP. Это похоже на ситуацию с EBGP ранее...мы будем использовать loopback-интерфейсы для установления соседства BGP, вот конфигурации: Ничего особенного, IBGP и мы используем loopback интерфейсы. Не повезло здесь ... нет соседей. Давайте сначала проверим, могут ли маршрутизаторы получить доступ к loopback интерфейсам друг друга: Быстрый взгляд на таблицу маршрутизации показывает нам, что это не так. Мы могли бы исправить это с помощью статического маршрута или IGP. Обычно мы используем IGP для IBGP для объявления loopback интерфейсов. Сейчас будем использовать OSPF: R1(config)#router ospf 1 R1(config-router)#network 1.1.1.0 0.0.0.255 area 0 R1(config-router)#network 192.168.12.0 0.0.0.255 area 0 R2(config)#router ospf 1 R2(config-router)#network 192.168.12.0 0.0.0.255 area 0 R2(config-router)#network 2.2.2.0 0.0.0.255 area 0 Набор правильных команд OSPF должно сделать свою работу! Отправка эхо-запроса, чтобы проверить, знают ли маршрутизаторы и как связаться с сетями друг друга, успешен. Тем не менее, соседство BGP по-прежнему отсутствует Отладка показывает, что в соединении отказано, а также показывает локальный IP-адрес, который используется для BGP. Кажется, кто-то забыл добавить команду update-source, так что давайте исправим это! R1(config)#router bgp 1 R1(config-router)#neighbor 2.2.2.2 update-source loopback 0 R2(config)#router bgp 1 R2(config-router)#neighbor 1.1.1.1 update-source loopback 0 Точно так же, как EBGP, мы должны установить правильный источник для наших пакетов BGP. Задача решена! Единственное отличие от EBGP в том, что нам не нужно менять TTL с помощью команды ebgp-multihop. Итог урока: распространенная практика настройки IBGP между loopback интерфейсами. Убедитесь, что эти loopback доступны и обновления BGP получены из loopback интерфейса. Теперь, рекомендуем почитать вторую часть статьи по траблшутингу протокола BGP.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59