По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
GLBP (Gateway load Balancing Protocol) - это протокол, разработанный компанией Cisco, который обеспечивает распределение нагрузки на несколько роутеров, используя всего 1 виртуальный адрес. Этот протокол входит в группу FHRP, а теперь давайте напомню какие протоколы в неё входят. HSRP (Hot Standby Router Protocol) - проприетарный протокол, разработанный Cisco; VRRP (Virtual Router Redundancy Protocol) - свободный протокол, сделан на основе HSRP; GLBP (Gateway Load Balancing Protocol). GLBP обеспечивает балансировку трафика одновременно на несколько роутеров, когда HSRP и VRRP работал только один из 2х роутеров. Терминология протокола AVG (Active Virtual Gateway) - активный роутер, который занимается раздачей MAC адресов устройствам. Некий начальник над роутерами в сети GLBP . Это роль диспетчера, который указывает устройствам, как распределять трафик по средству раздачи им MAC адресов, когда приходит ARP запрос. То есть IP адрес у всех будет единый, а вот MAC адреса будут разные. AVF (Active Virtual Forwarder) - активный роутер, который пропускает через себя трафик. Роутер с ролью AVG только один может быть, а вот с ролью AVF любой, при этом AVG может быть и AVF одновременно. Настройка этого протокола такая же, как и любого протокола группы FHRP на интерфейсе (в данном случает interface e0/0) Теперь пройдемся по командам Router(config-if)# glbp 1 ip 192.168.0.254 //включение GLBP Router(config-if)# glbp 1 priority 110 //установка приоритета 110 (если приоритет будет выше остальных ,то он станет AVG по умолчанию 100) Router(config-if)# glbp 1 preempt //установит режим приемптинга для AVG ( работает также как и в HSRP, VRRP) Router(config-if)# glbp 1 weighting 115 //установить вес для AVF в 115 Router(config-if)# glbp 1 load-balancing host-depended | round-robin | weighted Для чего требуется вес? Для того, чтобы выбрать кто будет AVF. Чтобы при падении линка до провайдера мы могли передать эту роль кому-нибудь ещё. Далее рассмотрим механизм передачи: Router(config-if)# glbp 1 weighting 130 lower 20 upper 129 Команда установит вес для Forwarder в 130, а нижняя граница будет 20, верхняя 129. Если вес упадет до 19, то он перестанет быть AVF, а если вес возрастет выше 129 после падения, то он снова превратиться в AVF. По умолчанию lower равен 1, upper равен 100. Данная команда используется совместно с Track: Router(config)# track 1 interface e0/1 line-protocol Router(config)# int e0/0 Router(config-if)# glbp 1 weighting track 1 decrement 111 Как проверить стал ли роутер AVG? R2(config)#do show glbp Ethernet0/0 - Group 1 State is Active ... Смотрим, состояние Active, а это значит он и стал AVG. Взглянем на второй: R3(config-if)#do sh glbp Ethernet0/0 - Group 1 State is Standby ... Говорит о том, что он не стал AVG. При просмотре команды нужно обращать внимание на State is Active / Listen / Standby. Где AVG это Active, запасной Standby, а тот, кто в выборах не участвует Listen. То есть если роутер State is Active накроется, то его место займет маршрутизатор с состоянием State is Standby. При этом каждый роутер является AVF. 3 режима AVG Round Robin (по кругу) - это значит, что балансирует равномерно, раздавая каждому устройству новый MAC по списку, а как заканчивается список, начинает заново. Когда в сети просыпается устройство или ARP table устаревает, то у него нет mac шлюза по умолчанию. Он формирует ARP запрос, где запрашивает эти данные. Отвечает ему только AVG, который выдает виртуальные mac адреса за роутеры в группе glbp. Одному ПК он выдаст свой ,потому что он еще и AVF , следующему ПК - R3 mac-address выдаст ,следующему устройству R4 mac-address . Weighted (утяжеленный) - когда AVF имеет больший вес, то принимает большую нагрузку, чем остальные роутеры. Host dependent (Зависимое устройство) - присваивает постоянный MAC определенным устройствам. Допустим к нему обратился VPC10 за MAC адресом и AVG выдает его, а также запоминает, что ему выдает только этот адрес. Как это работает? Представим, что в нашей топологии: Роутер R3 (State is Listen) умрет, то тогда его клиентов возьмет любой из группы, либо R2, либо R4. Роутер R2 (State is Active) умрет, то тогда роль AVG займет роутер R4 (State is Standby), а также возьмет его клиентов (или распределит между R3/R4). R3 станет запасным AVG. Роутер R4 (State is Standby) умрет, то его клиентов возьмет один из R2/R3 и R3 (State is Listen) станет State is Standby. show glbp на разных роутерах R2(config-if)#do sh glbp Ethernet0/0 - Group 1 State is Active 1 state change, last state change 00:06:48 Virtual IP address is 192.168.0.254 Hello time 3 sec, hold time 10 sec Next hello sent in 2.176 secs Redirect time 600 sec, forwarder timeout 14400 sec Preemption disabled Active is local Standby is 192.168.0.3, priority 100 (expires in 8.576 sec) Priority 100 (default) Weighting 100 (default 100), thresholds: lower 1, upper 100 Load balancing: round-robin Group members: aabb.cc00.2000 (192.168.0.1) local aabb.cc00.3000 (192.168.0.2) aabb.cc00.4000 (192.168.0.3) There are 3 forwarders (1 active) Forwarder 1 State is Active 1 state change, last state change 00:06:37 MAC address is 0007.b400.0101 (default) Owner ID is aabb.cc00.2000 Redirection enabled Preemption enabled, min delay 30 sec Active is local, weighting 100 Forwarder 2 State is Listen MAC address is 0007.b400.0102 (learnt) Owner ID is aabb.cc00.3000 Redirection enabled, 599.104 sec remaining (maximum 600 sec) Time to live: 14399.104 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.0.2 (primary), weighting 100 (expires in 9.216 sec) Forwarder 3 State is Listen MAC address is 0007.b400.0103 (learnt) Owner ID is aabb.cc00.4000 Redirection enabled, 598.592 sec remaining (maximum 600 sec) Time to live: 14398.592 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.0.3 (primary), weighting 100 (expires in 10.016 sec) В данный момент я подключил 3 роутера в группу glbp 1 и если посмотреть на вывод, то он показывает отношение 1 роутера к другому. То есть R2 по отношению к R3 и R4 является active, а остальные listen . Если глянуть на R3 и R4 ,то картина будет с точностью наоборот. Это сделано для того, чтобы наблюдать, какой роутер взял на себя роль AVF в случае падения, тогда при падении один из Forwarder будет в состоянии Active. Режим preempt Этот режим, как и в других протоколах типа FHRP помогает роутеру настроить нужную роль. В GLBP это будет касаться AVG и AVF. Для AVG по умолчанию он отключен, а для AVF по умолчанию включен, с задержкой 30 секунд. preempt для AVG: R2(config)# int e0/0 R2(config-if)# glbp 1 preempt preempt для AVF: R2(config)# int e0/0 R2(config-if)# glbp 1 forwarder preempt delay minimum 60 Настройка таймеров Настройка интервалов в группе GLBP: R2(config-if)# glbp 1 timers 3 10 Настройка пароля //Аутентификация через md5 по хешу R2(config-if)#glbp 1 authentication md5 key-string CISCO //Аутентификация в открытом виде R2(config-if)#glbp 1 authentication text CISCO Диагностика R2# show glbp //показать общую информацию по протоколу группы FHRP R2# show glbp brief //показывает краткую таблицу по всем роутерам группы GLBP ---------------------------------------------------------------------------------------------------------------------------- R2#show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Et0/0 1 - 110 Standby 192.168.0.254 192.168.0.4 local Et0/0 1 1 - Active 0007.b400.0101 local - Et0/0 1 2 - Listen 0007.b400.0102 192.168.0.2 - Et0/0 1 3 - Listen 0007.b400.0103 192.168.0.3 - Et0/0 1 4 - Listen 0007.b400.0104 192.168.0.4 - Важное В топологии GLBP может пропускать максимум 4 роутера, если подключить 5, то он попадет в таблицу GLBP, но пропускать через себя трафик не станет. А будет просто ждать, пока умрет какой-либо AVF.
img
Пришло время заняться некоторыми более продвинутыми и интересными функциями протокола маршрутизации Open Shortest Path First. Мы начинаем с изучения конфигурации и проверки различных областей OSPF. Это упражнение является не только забавным, но и действительно может закрепить знания о том, как эти области функционируют и почему они существуют. Видео: протокол OSPF (Open Shortest Path First) за 8 минут OSPF LSA Types Области (Areas) - это фундаментальная концепция OSPF. Это то, что делает протокол маршрутизации иерархическим, как мы любим говорить. Существует основная магистральная область (область 0), которая соединяется с нормальными, не магистральными областями. Магистраль может также соединяться с особыми типами областей, которые мы подробно рассмотрим в этой группе статей. Такая иерархическая природа конструкции помогает гарантировать, что протокол является очень масштабируемым. Мы можем легко уменьшить или исключить ненужные потоки трафика маршрутизации и связи между областями, если это необходимо. Магистральная и не магистральная область (Backbone и Non-Backbone Areas) Вернемся немного назад к нашим предыдущим сообщениям в статьях об OSPF. На рисунке 1 показана простая многозонная сеть. Сейчас я настрою эту сеть, используя мой любимый подход к конфигурации, команду конфигурации уровня интерфейса ip ospf. Пример 1 показывает конфигурацию всех трех устройств. Рисунок 1: Магистральная и не магистральная область (Backbone и Non-Backbone Areas) Пример 1: Настройка магистральных и не магистральных областей ATL Router: ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#interface fa0/0 ATL(config-if)#ip ospf 1 area 0 ATL(config-if)#interface lo0 ATL(config-if)#ip ospf 1 area 0 ATL(config-if)#end ATL# ATL2 Router: ATL2#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL2 (config)#interface fa0/0 ATL2 (config-if)#ip ospf 1 area 0 ATL2 (config-if)#interface *Mar 27 22 :03 :27.815 : %0SPF-5-ADJCHG : Process 1, Nbr 1 .1.1 .1 on FastEthernet0/0 from LOADING to FULL, Loading Done ATL2 (config-if)#interface fa1/0 ATL2 (config-if)#ip ospf 1 area 1 ATL2 (config-if)#end ATL2# ORL Router: ORL# conf t Enter configuration commands, one per line. End with CNTL/Z. ORL( config )#interface fa1/0 ORL(config-if)#ip ospf 1 area 1 ORL(config-if)#end ORL# *Mar 27 22 :04:21.515: %0SPF-5-ADJCHG: Process 1, Nbr 10.23.23.2 on FastEthernet1/0 from LOADING to FULL , Loading Done Обратите внимание на простоту этой конфигурации, даже если мы настраиваем довольно сложный протокол маршрутизации. Area Border Router (ABR) находится в ATL2 с одним интерфейсом в магистральной и одним в не магистральной области. Обратите также внимание, как мы получаем некоторые «бонусные» проверки. Когда мы настраиваем интерфейсы, мы можем видеть, что OSPF-соседства формируются между устройствами. Это избавляет нас от необходимости проверять их «вручную» с помощью следующей команды: ATL2# show ip ospf neighbor Интересной проверкой для нас здесь является проверка префикса 1.1.1.0/24 с устройства ATL (а также удаленной связи между ATL и ATL2). Мы проверяем это на ORL, чтобы проверить многозональную конфигурацию OSPF. Поскольку это «нормальная» область, все LSA должны быть разрешены в этой области, и мы должны видеть, что префикс появляется как межзонный маршрут OSPF. show ip route ospf Хотя это не часто требуется при устранении неполадок, но мы можем изучить базу данных OSPF, чтобы увидеть различные типы LSA. show ip ospf database Записи состояния соединения маршрутизатора являются Type 1 LSA. Это конечные точки в нашей локальной области 1. Записи состояния net link-это Type 2 LSA. Здесь мы видим идентификатор маршрутизатора назначенного маршрутизатора (DR). Наконец, суммарные состояния сетевых ссылок — это Type 3 LSA. Это префиксы, которые ABR посылает в нашу область. Конечно же, это loopback (1.1.1.0) и удаленная сеть (10.12.12.0). Примечание: интерфейс обратной связи (loopback interface) объявлен как хост-маршрут 32-разрядной версии. Чтобы изменить это, вы можете просто использовать команду ip ospf network point-to-point на интерфейсе loopback. Это изменяет тип сети от типа loopback для OSPF и вызывает объявление маски в том виде, в каком она настроена. Теперь пришло время добавить к этой истории еще и другое. Давайте настроим некоторые внешние префиксы и введем их в домен OSPF. Это просто благодаря loopback interfaces. Мы создадим некоторые из них на маршрутизаторе ATL, запустим EIGRP на них, а затем перераспределим их в OSPF. ATL#conf t Enter configuration commands, one per line. End with CNTL/Z . ATL (config)#interface lo10 ATL (config-if)#ip address 192.168.10.1 255.255.255.0 ATL (config-if)#interface loopback 20 ATL (config-if)#ip address 192.168.20.1 255.255.255.0 ATL (config if)#router eigrp 100 ATL (config-router)#network 192 .168.10.1 0.0.0.0 ATL (config-router)#network 192.168.20.1 0.0.0.0 ATL (config-router)#router ospf 1 ATL (config-router)#redistribute eigrp 100 subnets metric 1000 ATL (config-router)#end ATL# Теперь у нас есть еще более интересные проверки на устройстве ORL. Во-первых, таблица маршрутизации: show ip route ospf Обратите внимание, что удаленные префиксы перечислены как маршруты E2. Это значение по умолчанию для внешних маршрутов OSPF типа 2. Это означает, что метрика остается неизменной, поскольку префикс течет от ASBR (автономного системного пограничного маршрутизатора) к внутреннему спикеру OSPF. Вы можете изменить тип на Type 1, если хотите, когда вы выполняете перераспределение. Возможно, больший интерес представляет база данных OSPF: show ip ospf database Обратите внимание, как мы подбираем Type 4 LSA (summary ASB link state), который является идентификатором маршрутизатора (1.1.1.1) ASBR (ATL). Мы также получаем Type 5 LSA, которые являются внешними префиксами. На этом мы завершим ПЕРВУЮ часть нашей продвинутой серии блогов OSPF. В следующий раз мы рассмотрим создание stubby areas, totally stubby areas, not so stubby areas (NSSA), и totally NSSA.
img
Цель стати разобраться с текстовыми потоками. А также рассмотреть фильтрование текстовых выводы логов их редактирование, журналов сообщений и т.д. Проще говоря, рассмотреть фильтрация и корректировка выводимого на экран текста. Текстовый поток так называется, потому что это выводимая информация может быть не просто статичный текстовый файл, а те текстовые файлы, которые постоянно меняются или дополняются в режиме реального времени. Список стандартных команд, которые понадобятся для достижения цели: Cat, cut, expand, fmt, head, join, less, nl, od, paste, pr, sed, sort, split, tail, tr, unexpand, uniq, wc Для начала создадим пару текстовых файлов. Переходим в домашнюю корневую папку пользователя root. Переключение пользователя sudo su, и cd ~ . В любом текстовом редакторе создаем 2 файла hello1.txt и hello2.txt с содержанием как на скриншотах. Первый. И второй ниже. Команда cat Начнем с команды, с которой уже не однократно встречались, команда cat. Сначала посмотрим справку по данной команде. man cat. Тут мы можем увидеть, что данная команда предназначена для объединения файлов и печати на стандартный вывод информации. Под стандартным выводом подразумевается вывод на консоль информации. Так же можно увидеть, что у данной команды есть ключи. Самое простое применение данной команды. Вводим cat hello1.txt команда показывает то, что на скриншоте выше. Проведем маленький эксперимент и выведем сразу информацию из двух созданных файлов. cat hello1.txt hello2.txt А в справке было написано, что команда может объединять содержимое файлов. Попробуем: cat hello1.txt hello2.txt > hello3.txt cat hello3.txt Мы вывели на стандартный вывод (консоль) содержимое файлов и передали то, что на экране в новый файл hello3.txt. А затем просто вывели на консоль. Результат можно посмотреть на скриншоте ниже. Если нам файл более не нужен можно воспользоваться командой для удаления файлов rm hello3.txt Команда cat более часто используется для объединения файлов, для просмотра содержимого чаще используются другие команды. Команда cut Данная команда предназначена для удаления секций из строчек файлов. Если посмотреть на ключи, то мы можем увидеть, что данная команда может удалять по различным признакам. По полям, по символам, по байтам, это интересная команда, которая позволяет нам вырезать части из файлов. Небольшой пример: cut -c 2,3,4,5,10 hello1.txt Данной командой мы говорим, что при выводе на экран нам необходимо "вырезать" перечисленные символы и вывести оставшееся на экран. Замечу, что команда cut не является текстовым редактором и поэтому фалы не правит! А только правит вывод в консоль. Если посмотреть командой cat hello1.txt файл остался неизменным. Все команды, про которые речь в статье не редактируют исходные файлы, они только фильтруют или редактируют стандартный вывод информации. Для редактирования файлов используются текстовые редакторы. Мы посмотрели, как данная команда редактирует вывод, на практике мы можем редактировать колонки, столбцы, вывода в каком-то конкретном логе или таблице. Т.е. мы можем выводить на экран только то, что нам нужно. Например, у нас есть лог события, какого-то, мы можем вывести только дату и события, остальное все лишнее отрезать данной командой в выводе. Команда expand man expand Данная команда редко используется. Она необходима для конвертации символов табуляции в пробелы. Пример: expand hello2.txt и все табуляции превратились в пробелы. На практики редко применяемая команда. Команда fmt man fmt Как написано в мануале это текст форматер. Это серьезная команда, она умеет форматировать вывод текста различными способами. Теперь посмотрим, как данной командой пользоваться. Например, написать fmt hello1.txt, как вы видите команда сделала вывод в одну строчку. Следовательно, команда без указания ключа, команда игнорирует все символы переноса каретки. Т.е. все "enter" и перехода на новую строку он убрал. Мы можем сказать, чтобы команда отформатировала текст так. чтобы на одной строке не было не более 5 символов, но это без переносов, если первое слово на 20 символов он его не перенесет, а если 2 слова по 2 символа, то оба оставит на этой строке. fmt w 5 hello1.txt Ничего не произошло, а если мы дадим fmt w 10 hello1.txt, то мы видим, что команда осуществила перенос. Таким образом можно просматривать длинные логи в удобном для нас виде, т. к. лог может уходить очень далеко в сторону, а через данную команду мы можем разбить на удобные абзацы для нас. Команда head man head Показывает первую часть файлов. Очень удобная команда, для просмотра того, что было в начале файла. По умолчанию показывает первые 10 строк файла. head /var/log/syslog Для изменения, количества выводимых строк необходимо использовать ключ n и за ним указать необходимое количество строк. Команда od man od Превращает файлы в другие форматы. Грубо говоря это программа конвертор. Редко используется на практике. Используя данную команду по умолчанию, мы можем превратить файл в восьмеричный код od hello1.txt. Или с использованием ключа c превратить в формат ASCII, od c hello1.txt. это может понадобится для конвертации файла, например для другой машины со специфичным форматом данных. Команда join man join Данная команда, объединяет строчки файлов по общему полю. Для того, чтобы понять, как работает данная команда необходимо создать 2 текстовых файла touch {1,2}.txt. Создаем сразу 2 файла 1.txt и 2.txt. И с помощью редактора nano редактируем. При применении команды join мы видим произошло объединение по полю нумерации. Это удобно, например, для слияния файлов, особенно логов, например, два файла логов и вам необходимо их сопоставить по времени. Команда less man less В описании команды говорится, что эта команда противоположна команде more. По сути это команда, которая позволяет читать файл. Можно посмотреть работу ее на примере. Например, cat /var/log/syslog при запуске этой, команды мы получим очень большой вывод на несколько экранов. Если мы воспользуемся командой less /var/log/syslog, то вывод даст возможность листать постранично, через pgdn. Согласитесь, это намного упрощает чтение и просмотр файла. Бывает такое, что работа идет в консоли, в которой нету прокрутки, через мышку, то в таком случае данная команда становится вообще не заменимой. Если посмотреть описание, данная команда еще умеет делать небольшой поиск по файлу. Команда nl man nl Нумерация строк. Простой пример. Берем файл и говорим пронумеровать строки. На картинке наглядно показано, как работает команда. Команда paste man paste Команда вставка умеет вставлять построчно вставлять какие-то строки в файлы. Объединяет строки файлов, как написано в мануале. У нас есть 2 файла 1.txt и 2.txt. Команда join их объединяла по определенному полю. Если мы применим команду paste мы увидим, что команда paste объединила их построчно. Т.е. это может быть очень удобно. У нас объединились первые строки, вторые строки и т.д. Например, если мы сопоставляем какие-нибудь события или файлы и т.д. Команда pr man pr Данная команда конвертирует текстовые файлы для вывода на печать. Очень наглядно можно увидеть, как работает данная команда, если ее применить к большому файлу. Например, pr /var/log/syslog Как можно убедится, команда разбила вывод на страницы и подготовила данный вывод для печати. Команда sed man sed Потоковый редактор для фильтрации и трансформирования текста. Это практически полноценный текстовый редактор, но опять же он не редактирует файлы, а работает с выводом. Как его использовать, пример следующий заменим в файле 2.txt слово socks на слово people получается примерно так: sed e ‘s/socks/people/’ 2.txt Функционал у команды очень большой, вывод можно для себя очень сильно изменить, заменить слова, удалить, отредактировать, отрезать, добавить, все это можно делать с помощью данной команды. При этом содержимое файла не меняется. Меняется только для нас вывод. Команда sort man sort Сортирует строки в файлах по какому-то признаку. Поработаем с файлом hello1.txt. Если мы применим команду к данному файлу sort hello1.txt, то мы увидим, что вывод отсортировал строчки по алфавиту. А если применить ключик r, то от сортируется в обратном порядке. Это удобно использовать так же в совокупности с другими командами, отсортировать лишнее. Команда split man split Данная команда бьет файл на куски. Даная команда работает следующим образом. Даная команда разбивает файл на части, но при этом исходный не меняет. Например разобьем по строчкам фал 1.txt. split -l 2 1.txt . Разбивку делаем на 2 строчки. И мы видим, что у нас исходный файл остался неизменным, а появилось еще 2 файла xaa и xab. Они как раз и содержат разбиение. Данную команду удобно применять к большим файлам и использовать ключик для разбивки по размеру, например, по байтам b и указываем на какие куски разбить в байтах. Пример: split b 5 путь_к_файлу Команда tail man tail В отличии от команды head, данная команда показывает последнюю часть файла. Например, tail /var/log/syslog нам покажет последнюю часть лога событий. Добавляем ключ -n и число, мы получим число последних событий, которых мы указали. Очень полезный ключ -f, который говорит показывать добавление в файл на "живую", т.е в реальном времени. Очень удобно для диагностики, события пишутся в лог и сразу выводится на экран. Например, запись лога прокси сервера. Прерывание такого режима ctr+C. Команда tr man tr Переводит или удаляет символы. Посмотрим на прямом выводе текста. Введем echo Hello. Далее введем echo Hello | tr -t A-Z a-z и заглавные буквы будут заменены строчными. Echo Hello | tr -t l L и маленькие l будет заменены на L. Echo Hello | tr -d l и буквы l будут удалены. Мощный трансформатор текста. Работает непосредственно с текстом, ключей у него полно их можно посмотреть в мануале. Команда unexpand man unexpand Работает в противоположную сторону команде expand. Конвертирует пробелы в знаки табуляции. Обычно работают в паре expand и unexpand, для раздвижения столбцов. Команда uniq man uniq Даная команда ищет уникальные и дублирующийся линии, т.е. она смотрит что у нас в строчках есть одинакового и разного. Для примера, я в файл 1.txt добавлю повторяющуюся строчку. И сделаю вывод uniq 1.txt команда покажет только уникальные строчки, а затем uniq c 1.txt и команда покажет строчки с числом повторений. Можно сказать, чтобы показала команда только дублирующиеся строчки uniq d 1.txt или неповторяющиеся uniq u 1.txt. Применение заключается в том. что если у нас есть файлы с повторяющееся информацией мы можем таким образом ее фильтровать. Команда wc man wc Показывает число строк, байт, слов и т.д. для определенного файла. Например: wc 1.txt показывает 4 строки, 8 слов, 28 символов. Можно использовать с ключом w покажет количество слов. И т.д., можно получить информацию полностью по папке: wc *
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59