пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В начале пути веб-разработки вы, скорее всего, часто будете слышать такие понятия, как аутентификация (authentication) и авторизация (authorization). И здесь не сильно помогает тот факт, что они оба обычно сокращаются до «auth», и их легко перепутать.  Из этой статьи вы узнаете: о различиях между аутентификацией и авторизацией о том, как работают эти процессы примеры авторизации и аутентификации из реальной повседневной жизни Итак, давайте начнем! Что такое аутентификация? Аутентификация – это процесс проверки учетных данных, которые предоставляет пользователь, с теми, что хранятся в системе, с целью подтверждения того факта, что пользователь является тем, за кого себя выдает. Если учетные данные совпадают, вы предоставляете пользователю доступ, если нет – то доступ для пользователя запрещается.  Методы аутентификации Однофакторная аутентификация Такой метод аутентификация обычно используется в системах с низким уровнем риска. Для этого метода требуется всего один фактор; чаще всего это пароль. Именно поэтому системы с однофакторной аутентификацией наиболее уязвимы для фишинговых атак и клавиатурных шпионов.  Плюс ко всему, в недавно опубликованной сайтом DataProt статье было продемонстрировано, что 78% представителей поколения Z используют один и тот же пароль для нескольких сервисов. А это значит, что, если злоумышленник получит доступ к одной учетной записи пользователя, то с большей долей вероятности он получит доступ и к другим с помощью того же пароля.  Двухфакторная аутентификация Метод двухфакторной аутентификации является более безопасным, поскольку он включает в себя два фактора; обычно это то, что вы знаете, например, имя пользователя и пароль, и что-то, что у вас есть или чем вы владеете, например, SMS, отправленное на ваш телефон, или маркер доступа.  Для двухфакторной аутентификации вам потребуется ввести одноразовый пароль, который был отправлен в SMS-сообщении на ваш телефон, или, возможно, код привязанного приложения-аутентификатора и предоставить код доступа, который постоянно меняется.  Как вы уже могли понять, это намного безопаснее, чем просто ввести пароль или учетные данные для аутентификации. Для того, чтобы получить доступ, вам необходимо будет не только знать учетные данные для входа в систему, но и иметь доступ к физическому устройству.  За последние несколько лет двухфакторная аутентификация стала достаточно распространенной среди различных онлайн-сервисов, а многие крупные компании используют этот метод в качестве стандартного метода аутентификации. В некоторых случаях обязательным требованием использования сервиса является настройка двухфакторной аутентификации.  Многофакторная аутентификация Если вы хотите пойти дальше и сделать процесс аутентификации еще более безопасным, то можете использовать три и более факторов. Такой формат аутентификации, как правило, работает по следующей схеме: то, что вы знаете (имя пользователя + пароль или имя пользователя + пароль + контрольный вопрос и ответ) то, что у вас есть (SMS, отправленное на ваш телефон, приложение-аутентификатор, USB-ключ) то, чем вы являетесь (отпечаток пальца, распознавание лица) Именно поэтому многофакторная аутентификация обеспечивает наибольшую защиту, поскольку для получения доступа необходимо предоставить несколько факторов, а их не так просто «взломать» или воспроизвести.  Есть у этого метода один недостаток, он же причина, по которой многофакторная аутентификация не используется в среднестатистических системах – этот метод может оказаться слишком трудным в настройке и обслуживании. И поэтому данные или система, которую вы защищаете таким образом, должны полностью оправдывать необходимость использования такой системы безопасности.  Итак, а сколько информации необходимо для аутентификации? Этот вопрос часто поднимается на многих совещаниях по архитектуре безопасности. И ответ на него следующий: «это зависит от…».  Компании часто совмещают несколько различных методов аутентификации в зависимости от специфики приложения для того, чтобы повысить уровень безопасности.  Возьмем, к примеру, банковское приложение. Оно содержит конфиденциальную информацию, и если она попадет не в те руки, то банку это грозит последствиями, которые отразятся на финансовой части и на репутации банка. Банк может совмещать вопросы личного характера, на которые пользователю необходимо ответить, с номером клиента и надежным паролем.  В случае с социальными сетями вам могут потребоваться лишь имя пользователя и пароль, которые проверяются и подтверждаются, после чего пользователю разрешается доступ. Все упирается в уровень риска и в то, кто к какой информации может получить доступ, находясь в приложении. Это позволяет определить уровень аутентификации, который вам нужен. Если вы или ваша команда неверно оцените, а именно недооцените, необходимый для вашего приложения уровень аутентификации, то вас могут привлечь к ответственности за недостаточную защиту данных в вашей системе. Именно поэтому компании нанимают специалистов по безопасности, чтобы они проконсультировали их по передовым методам и нашли подходящие решение.  Как работает аутентификация в реальной жизни? Для примера возьмем аккаунт в социальной сети. Вы выбираете социальную сеть (сайт размещен на сервере), которую вы больше предпочитаете. Сервер потребует предоставить учетные данные для доступа к сайту через страницу входа в систему. Здесь вы должны ввести свое имя пользователя и пароль, которые были использованы для создания учетной записи.  Иллюстрация процесса аутентификации После чего эти данные отправляются на сервер, и начинается процесс аутентификации. Данные, которые вы предоставили, проверяются в базе данных сервера, и в случае, если они совпадают с данными в записи, вы проходите процесс аутентификации. Затем вам предоставляется форма данных, подтверждающих личность, например, cookie-файл или веб-токен JSON (JWT – JSON Web Token).  Отлично! Вы получили доступ к сайту и вошли в учетную запись.  Теперь рассмотрим процесс авторизации. Что такое авторизация? Авторизация – это процесс проверки того, что вам разрешен доступ к определенной области приложения или что вы можете выполнять определенные действия на основании определенных критериев или условий, которые были установлены приложением. Также этот процесс называют «управлением доступом» или «управлением привилегиями».  Авторизация может как предоставить право на выполнение неких задач или на доступ к определенным областям приложения, так и не дать его.  Давайте рассмотрим на примере: Мы уже получили доступ к социальной сети, но то, что мы можем там делать, зависит от того, какие у нас есть полномочия.  Если мы попробуем получить доступ к чьему-либо профилю, с которым мы не «дружим» (владелец профиля не принял запрос на «дружбу»), то мы не сможем просмотреть его – у нас не будет на это права. Это значит, что нам отказано в доступе к публикациям, которые сделал владельц этого профиля.  Процесс авторизации Как реализовать авторизацию В зависимости от фреймворков, которые вы используете, есть большое количество способов, как можно реализовать авторизацию.  Например, на платформе .NET вы можете использовать ролевое управление доступом или управление доступом на основе утверждений.  Ролевое управление доступом в своей основе имеет идеологию, которая подразумевает, что каждому пользователю в вашей системе назначается какая-то определенная роль. Эти роли имеют заранее определенные права доступа для каждого пользователя. Пользователь, которому была предоставлена та или иная роль, автоматически получает эти права доступа. Роли назначаются в процессе создания и настройки пользователя.  Затем, когда пользователь попытается получить доступ, например, к области администрирования, конечная точка или сайт просто проверят, имеет ли текущий пользователь роль администратора.  Недостаток данного подхода заключается в том, что иногда пользователям предоставляются слишком много прав доступа, некоторые из которых им не нужны или не должны были быть им предоставлены.  Например, если пользователю предоставили роль администратора (Admin), то это значит, что у него есть право доступа пользователя на комплексное создание (Advanced Create), редактирование (Edit), удаление (Delete) и просмотр (View). В то время как вы можете предоставить им право только на просмотр (View) и первичное создание (Basic Create).  Управление доступом на основе утверждений позволяет выполнить более точную настройку прав доступа конкретного пользователя. Приложение может проверить, закреплено ли за пользователем утверждение или присвоено ли утверждению конкретное значение. Например, пользователю может быть передано утверждение CreateUser; оно проверяется при создании пользователя. Или вы можете присвоить тому же утверждению значение Advanced, а затем получить доступ к различным действиям и пользовательскому интерфейсу в зависимости от того, присвоили вы значение Advanced или Basic. В чем разница между аутентификацией и авторизацией? Итак, теперь, когда мы рассмотрели оба термина и разобрались в том, что они означают, давайте взглянем на сценарий, с которым, я думаю, многие знакомы и который включает в себя оба процесса.  На званом ужине с особым списком гостей каждому гостю присваивается имя и секретный пароль.  По прибытии сотрудник охраны спрашивает у вас ваше имя и секретный пароль. Далее они аутентифицируют ваши учетные данные по списку, который у них имеется. Если ваши учетные данные совпадают, то вам вручают конверт, который показывает, что вас допустили. Оказавшись внутри, у вас есть право получить доступ к званому ужину и общим зонам заведения, поскольку для них авторизация не требуется (у всех есть право быть допущенным до званого ужина). Однако после вы захотите посетить VIP-зону.  Когда вы подходите к ней, то другой сотрудник охраны просит открыть конверт, который вам вручили (в нем описаны ваши права доступа и роли). Он смотрит, но, к сожалению, у вас нет роли VIP, и поэтому вы не можете быть авторизованы. Если простыми словами, то аутентификация проверяет личность пользователя или службы, разрешающей доступ, а авторизация определяет, что они могут делать, после того, как окажутся внутри.  Почему следует реализовать как аутентификацию, так и авторизацию? Как вы могли заметить, несмотря на то, что аутентификация и авторизация сами по себе очень разные, каждый из этих процессов играет свою неотъемлемую роль в обеспечении безопасности и целостности приложения или системы.  Эти процессы действуют заодно, и один без другого не имеет смысла. Если вы можете получить доступ к области администрирования и при этом делать там все, что вам вздумается, то это может привести к серьезным проблемам.  А с другой стороны, вы не сможете авторизовать людей, не зная, кто они! Именно поэтому аутентификация всегда идет до авторизации.  Заключение Я надеюсь, что данная статья оказалась полезной, и теперь вы знаете, чем авторизация отличается от аутентификации и как их использовать.  И запомните: Аутентификация = проверяет личность пользователя или процесса Авторизация = определяет, есть ли у пользователя/системы права доступа на использование какого-либо ресурса или выполнения какого-либо действия. 
img
Что такое функциональное программирование? Функциональное программирование (также его сокращенно называют ФП) – это своего рода философия создания программного обеспечения путем создания чистых функций. ФП избегает концепций разделяемых состояний и изменяемых данных, которые есть в объектно-ориентированном программировании.  Языки функционального программирования делают упор на выражениях и объявлениях, а не на выполнении операторов. Соответственно, в отличие от других процедур, которые зависят от локального и глобального состояния, значение на выходе в ФП зависит только от аргументов, которые были переданы функции.  Характеристики функционального программирования Функциональное программирование сосредоточено на результате, а не на процессе ФП делает акцент на том, что должно быть вычислено Данные являются неизменяемыми Функциональное программирование разбивает задачу на «функции» ФП построено на концепции математических функций, которые для вычислений используют условные выражения и рекурсию ФП не поддерживает итерирование, например, операторы цикла и условные операторы, такие как if-else История функционального программирования Основа функционального программирования – это лямбда-исчисление. Оно было разработано в 1930-х годах для функционального применения, определения и рекурсии LISP – первый язык функционального программирования. Его разработал Маккарти в 1960 году В конце 70-х годов исследователи из Эдинбургского университета определили ML (Meta Language - метаязык). В начале 80-х годов язык Hope привнес алгебраические типы данных для рекурсии и эквациональных рассуждений В 2004 году появился новый язык функционального программирования «Scala» Языки функционального программирования Цель любого языка ФП – имитация математических функций. Однако базовая технология вычислений в функциональном программировании все же отличается. Ниже приведены некоторые самые известные языки функционального программирования: Haskell SML Clojure Scala Erlang Clean F# ML/OCaml Lisp/Scheme XSLT SQL Mathematica Основная терминология и базовые концепции функционального программирования Неизменяемые данные Неизменяемые данные подразумевают, что вам нужно просто создавать структуры данных вместо того, чтобы менять уже существующие. Ссылочная прозрачность Функциональные программы должны выполнять операции так, как если бы они это делали впервые. В этом случае вы будете знать, что могло или не могло произойти в процессе выполнения программы, а также ее побочные эффекты. В терминах ФП это называется ссылочной прозрачностью. Модульный принцип организации Модульная архитектура повышает производительность. Небольшие модули быстро пишутся, и есть большая вероятность, что они будут повторно использованы, а это, конечно, приводит к более быстрому процессу разработки программ. Помимо всего прочего, модули можно тестировать отдельно, что помогает сократить время, которое затрачивается на модульное тестирование и отладку.  Удобство сопровождения Удобство сопровождения – это несложный термин, который означает, что ФП-программы легче поддерживать, так как вам не нужно беспокоиться о том, что за пределами функции может что-то измениться.   Полноправная функция  «Полноправная функция» - это определение, которое относится к сущностям языка программирования, которые не имеют ограничений на использование. Как следствие, полноправные функции могут появляться в программе где угодно. Функция-замыкание Функция-замыкание – это внутренняя функция, которая может обращаться к переменным родительской функции даже после того, как та была выполнена. Функции высшего порядка Функции высшего порядка могут либо принимать другие функции в качестве аргументов, либо возвращать их в качестве результата.  Функции высшего порядка допускают частичное применение или каррирование. Этот механизм подразумевает, что функция применяется к своим аргументам по очереди, поскольку каждое такое применение возвращает новую функцию, которая уже принимает следующий аргумент. Чистая функция «Чистая функция» - это функция, входные параметры которой объявляются как входы, и ни один из них не может быть скрыт, а результаты объявляются как выходы. Чистые функции работают со своими параметрами. Это не очень эффективно, когда функция ничего не возвращает. Кроме того, они выдают один и тот же результат для заданных параметров.  Пример: Function Pure(a,b) { return a+b; } Функции с побочным эффектом Функции с побочным эффектом работают прямо противоположно тому, как работают чистые функции. У них есть скрытые входы и выходы; это и называется «с побочным эффектом». Функции с побочным эффектом нельзя использовать и тестировать в изолированной среде, так как у них есть зависимости. Пример: int z; function notPure(){ z = z+10; } Композиция функций Композиция функций – это объединение двух или более функций с целью создать одну. Разделяемые состояния Разделяемые состояния – это немаловажная концепция в ООП. Попросту говоря, это добавление свойств к объекту. Например, если «Жесткий диск» является объектом, то «Емкость запоминающего устройства» и «Размер диска» можно добавить в качестве свойств.  Побочные эффекты Побочные эффекты – это любые изменения состояния, которые происходят вне функции, которую мы вызвали. Самая главная цель ФП – минимизировать количество побочных эффектов, изолировав их от остального программного кода. Для функционального программирования важно, чтобы в остальной логике программы побочных эффектов не было. Преимущества функционального программирования Позволяет избежать ошибок и проблем в коде, которые сбивают в толку ФП-код проще тестировать, для него проще выполнять модульное тестирование и отладку кода Параллельное выполнение и конкурентность Быстрое развертывание кода и устойчивость к сбоям Предлагает лучший модульный принцип организации с более коротким кодом Повышенная продуктивность разработчиков Поддерживает вложенные функции Конструкции функционального программирование, такие как Lazy Map и Lazy List и т.д. Позволяет эффективно использовать лямбда-исчисление Недостатки функционального программирования Парадигма функционального программирования не так уж проста, так что в ней трудно будет разобраться новичку Программы трудны в сопровождении, поскольку очень много объектов дорабатываются в процессе написания кода Требуются частые замены реализации объекта имитированной реализацией, а также серьезная настройка системной среды Повторное использование достаточно затруднительно и требует постоянной реорганизации исходного кода Объекты могут некорректно моделировать задачу Сравнение функционального программирования и объектно-ориентированного программирования Функциональное программирование ООП ФП использует неизменяемые данные ООП использует изменяемые данные Придерживается модели декларативного программирования Придерживается модели императивного программирования Фокусируется на том, что вы делаете в программе Фокусируется на том, как вы пишете код Поддерживает параллельное программирование Не поддерживает параллельное программирование У его функций нет побочных эффектов Функции могут выдавать много побочных эффектов Управление потоками выполняется путем вызовов функций с рекурсией и без нее Управление потоками выполняется с помощью циклов и условных операторов Порядок выполнения операторов не важен Порядок выполнения операторов важен Поддерживает как абстракцию данных, так и абстракцию поведения Поддерживает только абстракцию данных Заключение Функциональное программирование, или ФП, - это своего рода философия создания программного обеспечения, которая основана на некоторых фундаментальных определяющих принципах Концепции функционального программирования делают уклон в сторону результатов, а не самого процесса Цель любого ФП-языка – имитация математических функций Некоторые самые известные языки функционального программирования: 1) Haskell; 2) SM; 3) Clojure; 4) Scala; 5) Erlang; 6) Clean «Чистая функция» - это функция, входные параметры которой объявлены как входы, и ни один из них не должен быть скрыт, а результаты объявлены как выходы Неизменяемость данных подразумевает то, что вы должны просто создавать новые структуры данных вместо того, чтобы менять уже существующие Позволяет избежать проблем и ошибок в коде, которые сбивают с толку Функциональный код не так прост, поэтому новичку будет сложно его понять ФП использует неизменяемые данные, а ООП – изменяемые
img
Графический интерфейс Cisco Unified Communications Manager (CUCM) имеет раздел Disaster Recovery System (DRS), который предназначен для проведения резервного копирования (backup) и восстановления системы (restore). Но бывают ситуации, когда GUI недоступен, например, из-за проблем с сетью. В этом случае, провести процедуры бэкапирования и восстановления можно через консоль CLI и сейчас мы расскажем как это сделать. Процедура бэкапа Перед началом процедуры, у вас должен быть настрое SFTP сервер, куда вы будете заливать бэкап с CUCM. Для начала нужно добавить сервер, куда мы будем загружать бэкап. Для этого вводим команду: utils disaster_recovery device add network [number of backups] Где: backup device name - Имя устройства, куда будем заливать бэкап; path - Путь, куда будем заливать бэкап на данном устройстве; ip-address of remote server - IP адрес удалённого устройства; username - Имя пользователя; number of backups - Количество резервных копий После ввода данной команды, вас попросят ввести пароль пользователя, из под которым вы хотите осуществить бэкап (в нашем случае - ccmadmin) admin: utils disaster_recovery device add network merionbckp ./ 10.20.30.123 ccmadmin Please enter password to connect to network server 10.20.30.123:**** drfCliMsg: Backup Device has been saved successfully. Проверим, что устройство для бэкапа успешно добавилось, для этого введём команду: utils disaster_recovery device list В выводе мы должны увидеть устройство, добавленное ранее: admin:utils disaster_recovery device list Device Name Device Type Device Path -------------------------------------------------------------- merionbckp NETWORK ./ Волшебно! Теперь мы можем осуществить бэкап. Для этого пишем в консоли: utils disaster_recovery backup network Где: backup device name - Имя устройства, куда будем заливать бэкап; featurelist - Список функционала, который нужно забэкапить; Для того, чтобы посмотреть какой функционал доступен для бэкапирования наберите команду: utils disaster_recovery show_registration , где servername - имя сервера, на котором осуществляется бэкап. admin:utils disaster_recovery backup network UCM,CDR_CAR,PLM merionbckp drfCliMsg: Backup initiated successfully. Please run 'utils disaster_recovery status backup' command to see the status Всё, бэкап запущен! Чтобы проверить статус, нам предлагают ввести: utils disaster_recovery status backup admin:utils disaster_recovery status backup Status: SUCCESS :Backup Completed... Tar Filename: 2019-02-16-04-21-37.tar Storage Location: NETWORK Operation: backup Percentage Complete: 100 PLM CCM01 ELM-AGENT SUCCESS Sat Feb 16 04:17:25 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_plm_elm-agent.log PLM CCM01 ELM-SERVER SUCCESS Sat Feb 16 04:17:26 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_plm_elm-server.log CDR_CAR CCM01 CAR SUCCESS Sat Feb 16 04:17:27 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_cdr_car_car.log UCM CCM01 BAT SUCCESS Sat Feb 16 04:19:23 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_bat.log UCM CCM01 CCMPREFS SUCCESS Sat Feb 16 04:19:25 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_ccmprefs.log UCM CCM01 PLATFORM SUCCESS Sat Feb 16 04:19:30 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_platform.log UCM CCM01 TCT SUCCESS Sat Feb 16 04:19:34 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_tct.log UCM CCM01 SYSLOGAGT SUCCESS Sat Feb 16 04:19:35 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_syslogagt.log UCM CCM01 CDPAGT SUCCESS Sat Feb 16 04:19:36 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_CCM01_ucm_cdpagt.log UCM CCM01 CLM SUCCESS Sat Feb 16 04:19:37 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_clm.log UCM CCM01 CCMDB SUCCESS Sat Feb 16 04:19:37 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_ccmdb.log UCM CCM01 TFTP SUCCESS Sat Feb 16 04:21:37 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_tftp.log UCM CCM01 ANN SUCCESS Sat Feb 16 04:21:33 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ ccm01_ucm_ann.log UCM CCM01 MOH SUCCESS Sat Feb 16 04:21:34 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_b_ccm01_ucm_moh.log Всё, бэкап готов! Процедура восстановления Чтобы восстановить конфигурацию CUCM из бэкапа, нужно сначала посмотреть – что доступно для восстановления на удалённом сервере? Проверить это можно командой: admin:utils disaster_recovery show_backupfiles merionbckp 2019-02-16-04-21-37 2018-12-25-21-52-19 Выбираем нужный нам бэкап и вводим следующую команду: admin:utils disaster_recovery restore network 10.20.30.123 2019-02-16-04-21-37 merionbckp drfCliMsg: WARNING! There are nodes in current production cluster but NOT present in the backup. These nodes will be removed if you restore the Publisher. If you want to keep these nodes, you will need to manually re-add them after the restore. Do you want DRS to perform a SHA-1 File Integrity Check of your backup archives y/n ?(n) : y Please enter the comma seperated features you wish to restore. Valid features for server CCM01 are PLM,CDR_CAR,UCM:PLM,CDR_CAR,UCM Do you want to restore database from the subscriber y/n ?(n) : n drfCliMsg: Restore initiated successfully. Please run 'utils disaster_recovery status restore' command to see the status ALERT: Please restart the server(s) before performing the next restore for changes to take effect. In case of a cluster, restart the entire cluster. Теперь проверяем статус восстановления: admin:utils disaster_recovery status restore Status: SUCCESS :Restore Completed... Tar Filename: 2019-02-16-04-21-37.tar Storage Location: NETWORK Operation: restore Percentage Complete: 100 CDR_CAR CCM01 CAR SUCCESS Sun Feb 17 11:20:15 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_cdr_car_car.log PLM CCM01 ELM-AGENT SUCCESS Sun Feb 17 11:24:34 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_plm_elm-agent.log PLM CCM01 ELM-SERVER SUCCESS Sun Feb 17 11:24:34 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_plm_elm-server.log UCM CCM01 BAT SUCCESS Sun Feb 17 11:25:06 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_bat.log UCM CCM01 CCMPREFS SUCCESS Sun Feb 17 11:37:06 CEST 2019 activelog/platform/drf/log/2019-08-18-15-20-01_r_ccm01_ucm_ccmprefs.log UCM CCM01 PLATFORM SUCCESS Sun Feb 17 11:37:13 CEST 2019 activelog/platform/drf/log/2019-08-18-15-20-01_r_ccm01_ucm_platform.log UCM CCM01 TCT SUCCESS Sun Feb 17 12:11:10 CEST 2019 activelog/platform/drf/log/2019-08-18-15-20-01_r_ccm01_ucm_tct.log UCM CCM01 SYSLOGAGT SUCCESS Sun Feb 17 12:14:19 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_syslogagt.log UCM CCM01 CDPAGT SUCCESS Sun Feb 17 12:14:39 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_cdpagt.log UCM CCM01 CLM SUCCESS Sun Feb 17 12:17:03 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_clm.log UCM CCM01 CCMDB SUCCESS Sun Feb 17 12:17:05 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_ccmdb.log UCM CCM01 TFTP SUCCESS Sun Feb 17 12:25:12 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_tftp.log UCM CCM01 ANN SUCCESS Sun Feb 17 12:26:38 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_ann.log UCM CCM01 MOH SUCCESS Sun Feb 17 12:26:39 CEST 2019 activelog/platform/drf/log/2019-02-16-04-21-37_r_ccm01_ucm_moh.log
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59