ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

Записки IT специалиста

Записки IT специалиста

الذهاب إلى القناة على Telegram

IT-канал, просто о сложном https://interface31.ru Купить рекламу: https://telega.in/c/interface31

إظهار المزيد
9 025
المشتركون
+224 ساعات
+57 أيام
+2430 أيام
أرشيف المشاركات
Зимние ботинки с мехом UGG – 15.000 ₽ STYLAR: брендовая одежда, обувь и аксессуары ✅ Премиальные бренды, которые ты знаешь — без лишних наценок и напрямую от поставщиков. Работаем уже более 5 лет! ⚡ Tom Ford, EA7, Burberry, Premiata, Moncler, Chrome Hearts, Loro Piana, Prada, Brunello Cucinelli, Hugo Boss, LV, Tommy Hilfiger, D&G, Polo Ralph Lauren, Hermes и др. 🚗 Доставка с примеркой по Москве, в другие города России и СНГ — быстро, надёжно и без задержек. 💰 Скидки до -80% в нашем дисконт Telegram-канале. ❤️ Тысячи моделей в наличии, новинки каждый день — без переплат и лишней суеты! Посмотреть каталог #реклама О рекламодателе

CrowdSec – как система предотвращения вторжений (IPS) CrowdSec – это популярное ПО с открытым кодом для предотвращения вторже
CrowdSec – как система предотвращения вторжений (IPS) CrowdSec – это популярное ПО с открытым кодом для предотвращения вторжений, многие считают его современным аналогом Fail2ban, однако это не совсем так. Также сразу внесем ясность: ни Fail2ban, ни CrowdSec не являются средствами защиты от атак на отказ в обслуживании – DDoS, так как являются достаточно ресурсоемкими приложениями и способны в таком сценарии еще сильнее нагрузить сервер. Но такая задача и не преследуется, данное ПО предназначено для защиты от вторжений: перебора паролей, взлома, проактивного анализа, эксплуатации уязвимостей. Так чем не угодил Fail2ban, не считая, что CrowdSec стильный, модный, молодежный, весь из себя модульный, написан на Go и содержит встроенный дашборд и мониторинг. Ключевое различие в подходе к обеспечению безопасности. Fail2ban прост, но в своей простоте он застыл на уровне 15-20 летней давности. Не учитывая современных подходов и сценариев. Схему работы Fail2ban можно представить в упрощенном виде так:
Лог → Парсинг/Regex → Решение → Действие
Основной источник событий – это регулярные выражения, которые получают из лога нужные события, например, неудачная попытка ввода пароля. Затем идет простейший счетчик и, если событие повторилось 5 раз за 10 минут источник события улетает в бан. Просто и незамысловато. Но это работало 15 лет назад, сейчас же интернет кишит умными ботами, которые один раз попав под бан вычисляют его временные параметры и продолжают свое дело так, чтобы не попадать в фильтры. CrowdSec предлагает принципиально иную схему, хотя во многом она похожа на предшественника:
Лог → Парсер → Событие → Сценарий → Решение → Действие
Здесь не просто по Regex выделяются нужные строки лога, а выделяются значимые события, которые потом не просто изменяют счетчик, а передаются на сценарный анализ. Сценарий – это не только ответ на вопрос: что произошло, но и попытка определить, чтобы это могло значить. Сценарий содержит основные паттерны атак и если событие ложится в паттерн, то это одно, а если выбивается из него – то совсем другое, хотя это может быть одно и тоже событие. Для примера: пользователь забыл пароль и неспеша подбирает его, скажем одна попытка через разные промежутки времени. Четыре неудачных и потом вспомнил, вошел. Потом запускает другой клиент и там автоматически подставился старый пароль. Fail2ban однозначно отправит пользователя в бан. CrowdSec, при наличии грамотно написанного сценария, во-первых, учтет, что вход похож на подбор пароля человеком, не ботом, а по факту удачного входа сбросит прошлые неудачные попытки. Если говорить грубо, то принципиальная разница в том, что Fail2ban просто считает ошибки, а CrowdSec пытается понять поведение. Но за все надо платить. Бытует мнение, что так как Fail2ban написан на Python, а CrowdSec на Go – последний быстрее и менее ресурсоемкий. Однако это не так. Fail2ban большую часть времени, пока парсер не выдал новое событие может находиться в состоянии покоя и ничего не делать, тогда как CrowdSec постоянно анализирует поведение на соответствие сценариям, т.е. работает фактически непрерывно. Говорит ли это о том, что Fail2ban устарел? И, да и нет. Если вам нужно что-то простое и незамысловатое – выбор за старым добрым Fail2ban. Но это защита реактивная, которая сработает уже по факту. Если же вы начинаете новый проект и нуждаетесь в проактивной защите, которая отсечет злоумышленника еще до, то обратите внимание на CrowdSec.

Панно из ароматного сибирского можжевельника для бани Панно из ароматного сибирского можжевельника купить со скидкой 30%. Без
Панно из ароматного сибирского можжевельника для бани Панно из ароматного сибирского можжевельника купить со скидкой 30%. Без клея. Редкие большие спилы. Расслабляющий аромат. Узнать больше #реклама 16+ сибирский-можжевельник.рф О рекламодателе

Гистерезис как средство стабилизации триггеров в Zabbix Кто постоянно работает с Zabbix знает такое явление как дребезг тригг
Гистерезис как средство стабилизации триггеров в Zabbix Кто постоянно работает с Zabbix знает такое явление как дребезг триггеров (или флаппинг), когда контролируемое значение колеблется около значения срабатывания триггера и приводит к постоянному его срабатыванию и восстановлению. Это неприятно, так как приводит к резкому росту количества уведомлений и именно с этим явлением предлагают бороться, но на самом деле проблема лежит глубже, это проблема иллюзии восстановления. О чем это мы? Давайте возьмем для примера триггер High memory utilization, который имеет следующее выражение срабатывания:
min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}
Оно означает, что если все значения за последние 5 минут были выше порога, то триггер сработает. Это обусловлено использованием min(), фактически мы берем наименьшее значение за 5 минут и сравниваем с порогом. Поэтому набор значений:
89 90 91 89 92 95 – не сработает, min = 89
а набор:
91 93 95 91 92 94 – сработает, min = 91
При этом фактически ситуация по памяти у нас не меняется и триггер или будет постоянно флапать или замолчит, и мы будем уверены, что ситуация выправилась, хотя на самом деле это не так и она продолжает оставаться критичной. Как этого избежать? Ввести гистерезис, т.е. переводить триггер в состояние восстановления не сразу после того, как выражение срабатывания перестало работать, а с задержкой, когда мы будем уверены, что ситуация действительно нормализировалась. Примем для этого значения порог срабатывания – 5%, при этом условием восстановления будет то, что за 5 минут ни одно значение не превысит этот порог. Теперь, после срабатывания триггера по памяти (штатное значение 90%) он не перейдет в состояние восстановления до тех пор, пока утилизация памяти стабильно не снизится менее 85%. Для этого в настройках триггера добавим выражение восстановления и запишем туда следующий текст:
max(/Linux by Zabbix agent/vm.memory.utilization,5m) < ({$MEMORY.UTIL.MAX} - 5)
Обратите внимание, что здесь мы используем не min(), а max(), так как у нас ни одно значение метрики не должно в течении 5 минут превысить пороговое. Таким образом мы ввели четкий 5% коридор, который не только предотвращает флаппинг триггера, но и защищает нас от иллюзии ложного восстановления, когда триггер перешел в состояние ОК, но значения остались близки к критическим. Рекомендуем настроить подобный гистерезис для всех триггеров, имеющих критическое значение для системы, где мы должны быть твердо уверенны, что проблема действительно ушла, а не затаилась на время.

tcpdump – сеть как на ладони При диагностике сетей очень важно убедиться в том, что нужные пакеты приходят на нужный узел и н
tcpdump – сеть как на ладони При диагностике сетей очень важно убедиться в том, что нужные пакеты приходят на нужный узел и не просто приходят, а соответствуют критериям, которые вы указали в правилах фильтрации. Иначе можно долго гадать, что происходит и почему не работает то, что «по идее» должно работать. Поэтому не будем гадать, а просто посмотрим трафик своими глазами, в этом нам поможет утилита tcpdump. Для ее установки выполните:
apt install tcpdump
После чего запустите ее с ключом -D, чтобы посмотреть какие интерфейсы в системе она видит и откуда может слушать трафик.
tcpdump -D
Далее мы можем просто запустить:
tcpdump -i enp3s0 
И сразу утонем в количестве информации, разобраться в которой будет решительно невозможно, поэтому, чтобы получить выжимку мы будем использовать фильтры, самые популярные из них: ▫️port ▫️host ▫️src ▫️dst ▫️tcp ▫️udp ▫️icmp Например, мы хотим посмотреть все пакеты с портом назначения UDP 34567:
tcpdump -i enp3s0 udp dst port 34567
Указанную нами конструкцию следует читать как: протокол UDP - порт назначения 34567. Теперь утилита нам покажет все пакеты, которые соответствую данному критерию: у которых транспортный протокол UDP и в поле порт назначения стоит 34567. А если мы хотим посмотреть пакеты только от определенного узла, чтобы понять доходит к нам на сервер он него что-нибудь или нет. Усложним фильтр и добавим в него две группы условий. Для их соединения можно использовать логические выражения: ▫️AND ▫️OR Отдельно для отрицания условия можно использовать ▫️NOT Например:
tcpdump -i enp3s0 src host 203.0.113.11 and udp dst port 34567
Здесь мы фильтруем по двум условиям: хост источник и протокол - порт назначения пакета. Вот здесь может возникнуть вопрос, а почему нельзя написать так:
tcpdump -i enp3s0 src host 203.0.113.11 udp dst port 34567
Вроде бы как пол логике вещей условия все равно соединяются как-бы по логическому И, однако это неверно. tcpdump требует явного указания условии соединения различных примитивов. В нашем условии два примитива: хост и порт. Общий синтаксис примитива можно описать выражением:
[протокол] [направление] {host|net|port|portrange} значение
В нашем случае примитивы взяты в фигурные скобки, каждый примитив должен явно соединяться через логический оператор. Например, наоборот, все пакеты, кроме определенного узла:
tcpdump -i enp3s0 udp dst port 34567 and not src host 203.0.113.11
Если мы хотим захватить определенное количество пакетов, то используйте ключ -с:
tcpdump -i enp3s0 -с 50 src host 203.0.113.11 and udp dst port 34567
Данная команда захватит строго 50 пакетов, соответствующих условию. Чтобы увеличить количество выводимой информации добавьте ключ -v[v], чем больше v вы указали, тем на более глубокий уровень будет разбираться информация пакета, но не обольщайтесь, если пакет не содержит дополнительных подробностей, но ничего нового вы не увидите. При работе tcpdump пытается разрешать адреса в DNS-имена, а порты в имена служб, чтобы предотвратить такое поведение используйте ключ -n:
tcpdump -i enp3s0 -n src host 203.0.113.11 and tcp dst port 22
Но все это диагностика в реальном времени, а как быть, если мы хотим изучить полученный дамп подробно, в спокойной обстановке? Все просто, нужно записать его в файл, для этого предназначена опция -w:
tcpdump -i enp3s0 -c 50 src host 203.0.113.11 and tcp dst port 22 -w mydump.pcap
Теперь 50 пакетов, попадающих под фильтр, будут записаны в файл mydump.pcap, если вы не указали количество, то в файл запишется все, что tcpdump успел захватить, пока вы не прервали его работу через Ctrl+C. Записанный файл можно открыть любым подходящим ПО, наиболее популярным является открытый анализатор пакетов Wireshark.

Honor — то, что вы искали ✅ Твой смартфон ✅ Твой выбор ✅ Твои правила Купить #реклама market.yandex.ru О рекламодателе
Honor — то, что вы искали ✅ Твой смартфон ✅ Твой выбор ✅ Твои правила Купить #реклама market.yandex.ru О рекламодателе

Free или Available memory в Linux В очередной раз сталкиваюсь с тем, что администраторы не понимают разницу между этими двумя
Free или Available memory в Linux В очередной раз сталкиваюсь с тем, что администраторы не понимают разницу между этими двумя показателями оперативной памяти в Linux. Например, команда free -m может дать нам такой вывод:
       total used free shared buff/cache available
 Mem:  60169 27996 9001 8472  23171      22576
На первый взгляд может показаться, что все хорошо, ведь доступно еще практически треть памяти. Но на самом деле не очень. Потому как свободно всего 9 ГБ. Почему так? Для этого нужно углубиться в принципы организации памяти в Linux. Кроме занятой процессами памяти – used в системе присутствует еще буферы и кеш - buff/cache, которые содержат разделяемые библиотеки, буферы ввода-вывода и т.д. и т.п., что позволяет системе меньше обращаться к диску. Можем ли мы сбросить буферы и очистить кеш? Да, можем, но когда после этого приложению потребуется какие-то данные или вызов библиотеки – то все это снова будет подгружено с жесткого диска и вполне может оказаться, что сделали мы только хуже, так как производительность системы на некоторое время упрется в производительность дисков, пока снова не будет заполнен кеш. Поэтому в данной ситуации рассчитывать на 22,5 ГБ доступной памяти будет крайне неосмотрительно. В лучшем случае система может посчитать, что ей выгоднее сбросить страницы приложений в своп, вместо очистки кеша. А в худшем в вовсе может решить, что сохранить кеш важнее, нежели сохранить процесс и застрелит его при помощи OOM Killer. Кстати, системы мониторинга, тот же Zabbix будут смотреть именно на свободную память и выдавать вам алерты при ее исчерпании, хотя доступной памяти может быть еще много. Также рекомендуем прочесть следующие статьи: 🔹 Linux - начинающим. Что такое пространства подкачки и как они работают 🔹 Linux - начинающим. Что такое OOM Killer и как он работает

Корпоративные сети 2026 – конференция по сетевым технологиям. Никакой рекламы. Только обмен опытом. 🔗 Регистрация Участие бе
Корпоративные сети 2026 – конференция по сетевым технологиям. Никакой рекламы. Только обмен опытом. 🔗 Регистрация Участие бесплатное, но регистрация обязательна 📅 8 апреля 2026 в 11:30 📍 Москва, ВК «Тимирязев Центр» (Верхняя аллея, 6, стр. 1) Ⓜ️ Станция метро «Петровско-Разумовская» Сетевые инженеры и ИТ-руководители поделятся реальными кейсами эксплуатации, настройки и защиты сетей. Честно обсуждаем цены и особенности железа разных производителей. 🧩 Полная программа конференции тут Лично пообщаться с экспертами и коллегами можно будет во время кофе-брейков и в зоне экспозиции оборудования. Конференция пройдет в рамках выставки «Связь-2026», так что вы сможете совместить посещение крупнейшего отраслевого события и нашей профильной площадки. Организатор мероприятия: ООО «Элтекс Коммуникации» — официальный дилер завода Eltex. Ждем Вас на КС-2026! #eltex #eltexcm #cnets #cnets2026 #связь2026 #кс2026 @eltexcm #реклама О рекламодателе

А в розетку включить не пробовали? В продолжение первоапрельской темы расскажу реальный случай. Было это в начале нулевых и р
А в розетку включить не пробовали? В продолжение первоапрельской темы расскажу реальный случай. Было это в начале нулевых и работал я в компьютерной фирме. Был у нас один достаточно крупный дилер из области и неплохой мужик сам по себе, назовем его Юра. Так вот, Юра купил навороченный компьютер и что-то там его не совсем устраивало, поэтому он заранее с нами договорился, мол привезу свой комп, посмотрите, магарыч с меня. В общем привез, подключили мы его с моим начальником Колей и стали смотреть, а там совсем беда, не стартует… И так и эдак, ну никак. Зовем Юру, мол попал ты пацан, мать мертвая, мать в гарантию, а это недели две, а то и месяц, мать то не простая, понтовая. Юра в шоке, ведь утром еще все включалось, зовем посмотреть самого – убеждается, то матери карачун. Далее стадия принятия и все такое. И тут подходит к нам другой сотрудник техотдела Женя, внимательно на нас смотрит, а потом задает единственный, но меткий вопрос: - А в розетку включить не пробовали? Оказалось, что лежащий на столе удлинитель типа «пилот» оказался никуда не подключен, ну как-то так исторически сложилось. В итоге оказалось, что проблемы Юры совсем не проблемы, мы быстро все решили и он поехал домой довольный. А Женя получил на домашний адрес большую пиццу.

Пригон Авто из Германии на 25-30% Выгоднее Рынка Список готовых к пригону авто в нашем Telegram. С ценами под ключ👌 Видео-отзывы клиентов✅ Никаких 100% предоплат✅ Оплата по этапам✅ Только проверенные авто✅ Узнать больше #реклама 16+ tgryx.ru О рекламодателе

Шутки в IT бывают разные: бывают достаточно безобидные, а бывают очень злые и деструктивные. Поэтому мы за первые. Старая добрая шутка на 1 апреля. 🤯🤯🤯 А какие IT-шутки знаете вы?

Вы когда-нибудь жалели о покупке для дома? Перекрашивали стены — и через год они надоели. Брали мебель «в тренде» — и через д
Вы когда-нибудь жалели о покупке для дома? Перекрашивали стены — и через год они надоели. Брали мебель «в тренде» — и через два года она выглядела устаревшей. Вкладывали деньги в ремонт — и понимали, что половину можно было не делать. В Telegram-канале «Экоокна» — о том, как улучшать дом разумно. Что реально стоит своих денег, а что — маркетинг. Какой интерьер не надоест через год. Как обустроить дом, чтобы жить в нём с удовольствием годами. Подписывайтесь!❤️ Узнать больше #реклама О рекламодателе

Логическая бомба Казалось бы, на эту тему все говорено-переговорено, но с завидным постоянством наблюдаю как даже опытные кол
Логическая бомба Казалось бы, на эту тему все говорено-переговорено, но с завидным постоянством наблюдаю как даже опытные коллеги регулярно создают логические бомбы. Логическая бомба – это код, который при наступлении некоторых условий, которые можно заранее просчитать и предвидеть, производит некоторые деструктивные действия. И здесь трудно сослаться на случайность или недосмотр. Почему же так происходит? На наш взгляд – это классическое «и так сойдет» и тот же самый русский авось. Т.е. надежда на то, что обстоятельства, приводящие к срабатыванию логической бомбы, не произойдут или находятся под контролем. Рассмотрим классический пример, очистка устаревших данных, например, бекапов:
find  -type f -mtime +90 -exec rm -rf {} \;
Что делает эта команда? Тупо ищет файлы старше 90 дней и удаляет их. И логических бомб тут сразу несколько. 1️⃣ Самая очевидная. Если у нас по какой-либо причине перестанут создаваться резервные копии, то через 90 дней у нас не останется ни одной. И тут ошибочно полагаться на мониторинг или иные средства контроля, так как сбой может произойти в любой части схемы. Сначала сломался мониторинг, потом перестали создаваться копии – вот и все, привет горячий. 2️⃣ Далее. Команда работает без привязки к конкретному расположению. Если кто-то случайно переместит скрипт, то он подметет вообще случайные данные. Поэтому никаких относительных путей в подобных конструкциях быть не должно. Только абсолютные. 3️⃣ Теперь – самое неочевидное – find, который не рекомендуется использовать в скриптах в силу ряда особенностей. В частности, если нам попадется файл с пробелами в имени, то строка будет разбита на две, что приведет к неожиданным последствиям. Чаще всего удаление не произойдет, но может случиться разное. Поэтому постараемся сразу учесть эти моменты. Удалять всегда нужно привязываясь не ко времени или еще каким-то внешним параметрам, а по количеству остающихся копий, в этом случае даже если у вас перестанут создаваться копии, то последние всегда останутся. Во многих случаях это гораздо лучше ситуации, когда копии нет вообще. Т.е. оставляем не копии за последние 90 дней, а 90 последних копий (или более, если в день создается более одной копии). Жестко привязываемся к путям и учитываем возможность появления пробелов в имени файла:
find /mnt/backup/ -type f -printf '%T@ "%p"\n' | \
sort -n | \
head -n -90 | \
awk '{print $2}' | \
xargs -I {} rm {}
Конструкция стала сложнее, мы, как и прежде ищем файлы, но сразу указываем директорию поиска, а список выводим построчно, в каждой строке размещая временную метку файла и его имя, взятое в кавычки. Сортируем от самых старых к самым новым и отбрасываем последние 90 записей. Затем для каждой строки получаем второй аргумент (имя файла в кавычках) и передаем его на удаление. Однозначно стало лучше, но не совсем. Что будет, если в эту папку попадут другие файлы? Они также будут удалены, при этом мы снова легко можем остаться без бекапов. Что будет если кто-то случайно закинет туда 100 новых файлов? Правильно – из них останется только 90 самых последних и ни одного бекапа, ну или самый последний. Это видно на берегу? Видно. Значит это очередная логическая бомба и надо от нее избавляться. Допустим, наши бекапы имеют имя base1-YYYY-MM-DD.dump, поэтому добавляем в строку поиска новое условие:
find /mnt/backup/increment/ -type f -name "base1*.dump" -printf '%T@ "%p"\n'
Или даже
find... -name "base1-*-*-*.dump"...
Чем более строгое совпадение в шаблоне – тем безопаснее, но во всем нужно видеть меру и вовремя остановиться, потому что если увлечься, то можно погрязнуть в проверках для совсем уже маловероятных условий или событий. Да, и не забывайте логировать все что делают подобные скрипты, чтобы в случае какой-либо нештатной ситуации вы хотя бы могли выполнить работу над ошибками.

Идёт набор на бесплатный урок по пошиву одежды с нуля За 1,5 часа в онлайн формате разберем базу работы с трикотажем: ✅ что делать, если нет оверлока, и как обойтись обычной швейной машинкой ✅3 лайфхака, без которых не получится шить качественно ✅как избежать ошибок при работе с трикотажем, на которых попадаются 90% новичков Подойдёт любая швейная машинка, оверлок не обязателен. ⚡ Я проведу урок, на котором подробно, доступным языком буду объяснять каждый шаг. Это не просто вебинар, это полноценный качественный курс. Получится у каждой, не сомневайтесь. Скажу сразу, что повтора бесплатного урока не будет, он станет платным. Хотите научиться шить — занимайте место прямо сейчас! 👍 Для регистрации на бесплатный урок жмите "Зарегистрироваться": Зарегистрироваться #реклама 16+ foxmaman-sew.ru О рекламодателе

Как быстро вычислить отвечающие на Ping узлы подсети в терминале Linux Такая задача встречается довольно часто, когда вам нуж
Как быстро вычислить отвечающие на Ping узлы подсети в терминале Linux Такая задача встречается довольно часто, когда вам нужно получить список «живых» узлов подсети, неважно с какими целями и сделать это нужно быстро и просто. Вам поможет утилита fping, для ее установки воспользуйтесь командой:
apt install fping
Затем запустите ее с ключами:
fping -a -g 192.168.172.0/24 2>/dev/null
Разберем части команды подробнее: ▫️Ключ -a – предписывает вывести узлы, которые отвечают на ping ▫️Ключ -g – генерировать узлы назначения из указанного диапазона, можно указать начальный и конечный адреса через пробел или CIDR, как в нашем случае. ▫️ 2>/dev/null – подавляет вывод потока ошибок, чтобы не выводить сообщения о недоступных узлах Как видим, поставленная нами задача решена просто и быстро. Но это еще не все, рекомендуем ознакомиться со всеми возможностями fping выполнив:
fping -h
Кстати, советуем регулярно обращаться к справке даже тех утилит, которые вы знаете, это поможет узнать что-то новое (новые ключи) или вспомнить некоторые забытые возможности.

Всё, что вы любите, есть на Wildberries Все мы ищем разное, но всегда находим что-то своё на WB — со скидками и доставкой Пер
Всё, что вы любите, есть на Wildberries Все мы ищем разное, но всегда находим что-то своё на WB — со скидками и доставкой Перейти на сайт #реклама wildberries.ru О рекламодателе

Полезная команда tee в Linux Любой Linux-администратор, активно работающий в консоли, должен знать и умело использовать эту к
Полезная команда tee в Linux Любой Linux-администратор, активно работающий в консоли, должен знать и умело использовать эту команду. Как и все классические утилиты tee выполняет одну задачу, но делает ее хорошо. Ее смысл можно представить в виде буквы Т - команда принимает на вход стандартны поток ввода и выдает его же в стандартный поток вывода, одновременно записывая его содержимое в один или несколько файлов. Например:
 command | tee file1.log
В данном случае мы не только увидим результат выполнения команды на экране, но и запишем его содержимое в файл file1.log. Это удобно для фиксации промежуточного результата, особенно в целях логирования или отладки.
 command1 | tee file1.log | command2
В примере выше мы передали результат работы первой команды на вход второй, попутно записав его в файл. По умолчанию tee перезаписывает указанный файл, если же мы хотим его дописать, то следует использовать ключ -a:
 command1 | tee -a file1.log
Еще один интересный ключ -i, который предписывает игнорировать команды завершения, такие как Ctrl + C. Для чего это нужно? Допустим вы запустили какую-то длительную команду, результат которой вам нужно записать в файл, а потом решили ее прервать по Ctrl + C, при наличии данного ключа tee продолжит работу и корректно завершит запись в файл.
 ping ya.ru | tee -i ping_ya.txt
Еще один вариант использование tee - это повышение прав для записи в системные файлы. Например:
 sudo echo "строка_текста" > /etc/myconf.conf
Не увенчается успехом, а если сделать вот так, то все получится:
 echo "строка_текста" | sudo tee /etc/myconf.conf
Как видим, tee - простая, но весьма удобная и функциональная команда.

Всё, что вы любите, есть на Wildberries Все мы ищем разное, но всегда находим что-то своё на WB, со скидками и доставкой Перейти на сайт #реклама wildberries.ru О рекламодателе

Обжал и стоишь думаешь - а чего оно на работает...
Обжал и стоишь думаешь - а чего оно на работает...

Эти добавки сделают из тебя гения! Такое не увидишь в обычных каналах. Здесь собрана информация про редкие ноотропы, которые повышают продуктивность и выкручивают работу мозга на полную катушку. Только проверенная информация, основанная на исследованиях и никакой воды. ⚡ Вступай в закрытый клуб биохакеров ⚡ P.S.: Заявки на подписку принимаются автоматически Подписаться #реклама 16+ О рекламодателе