Дискуссионная пятничная тема. Недавно общался с человеком, который просил помощи с Windows Server и Hyper-V. И приводил свои ошибки из логов на русском языке. Те, кто много работал с Windows серверами, наверное уже поняли, о чём пойдёт речь.
Если искать в поиске в интернете ошибки на русском языке, то что-то дельное найти будет проблематично. Их придётся переводить на английский язык и пытаться найти на английском. Чтобы избежать этой проблемы и упростить себе жизнь в обслуживании и диагностике – ставьте везде, где это допустимо, английские версии продуктов. Частично этот вопрос закрывают ИИ, но всё равно не полностью.
Не так давно столкнулся с тем, что если в консоли Linux стоит русская локаль, то Mariadb начинает в лог писать ошибки на русском языке. По ним ничего дельного потом не найти. Это очень неудобно. То же самое с PostgreSQL. Если СУБД стоит на одном сервере с сервером 1С, который требует русскую локаль, то тоже все логи PostgreSQL будут на русском языке. Хотя конкретно в PostgreSQL перевод очень качественный, но так бывает не везде.
Язык современной техносферы – английский и с этим приходится считаться. Если у вас возникает какая-то ошибка, то в англоязычном интернете, пока он ещё доступен, вы найдете в разы больше материала по ней.
Русский язык обычно нужен пользователям, которые работают с системой. Некоторые начинающие инженеры тоже ставят русский язык в надежде, что это упростит им настройку и эксплуатацию. Но на деле он только осложнит, если начнутся какие-то проблемы и ошибки. Так что рекомендую везде использовать английский.
#разное
Если искать в поиске в интернете ошибки на русском языке, то что-то дельное найти будет проблематично. Их придётся переводить на английский язык и пытаться найти на английском. Чтобы избежать этой проблемы и упростить себе жизнь в обслуживании и диагностике – ставьте везде, где это допустимо, английские версии продуктов. Частично этот вопрос закрывают ИИ, но всё равно не полностью.
Не так давно столкнулся с тем, что если в консоли Linux стоит русская локаль, то Mariadb начинает в лог писать ошибки на русском языке. По ним ничего дельного потом не найти. Это очень неудобно. То же самое с PostgreSQL. Если СУБД стоит на одном сервере с сервером 1С, который требует русскую локаль, то тоже все логи PostgreSQL будут на русском языке. Хотя конкретно в PostgreSQL перевод очень качественный, но так бывает не везде.
Язык современной техносферы – английский и с этим приходится считаться. Если у вас возникает какая-то ошибка, то в англоязычном интернете, пока он ещё доступен, вы найдете в разы больше материала по ней.
Русский язык обычно нужен пользователям, которые работают с системой. Некоторые начинающие инженеры тоже ставят русский язык в надежде, что это упростит им настройку и эксплуатацию. Но на деле он только осложнит, если начнутся какие-то проблемы и ошибки. Так что рекомендую везде использовать английский.
#разное
5👍203👎16
❓ Вы когда-нибудь задумывались, как ваше приложение проходит путь от кода до полноценного рабочего окружения?
👉 Приглашаем вас на открытый вебинар «От кода до Kubernetes за полтора часа» 14 июля в 20:00 МСК, где вы увидите, как развернуть ASP.NET-приложение в Kubernetes.
Мы разберём:
◽️Создание Docker-образа приложения.
◽️Подготовку манифестов и деплой в Kubernetes.
◽️Настройку сервисов и переменных окружения.
На вебинаре мы покажем весь цикл: от подготовки образа до деплоя. Вы получите реальный опыт работы с
Вебинар проходит в преддверии старта курса «DevOps практики и инструменты».
👉 Для участия зарегистрируйтесь: https://clck.ru/3N3eev
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👉 Приглашаем вас на открытый вебинар «От кода до Kubernetes за полтора часа» 14 июля в 20:00 МСК, где вы увидите, как развернуть ASP.NET-приложение в Kubernetes.
Мы разберём:
◽️Создание Docker-образа приложения.
◽️Подготовку манифестов и деплой в Kubernetes.
◽️Настройку сервисов и переменных окружения.
На вебинаре мы покажем весь цикл: от подготовки образа до деплоя. Вы получите реальный опыт работы с
kubectl
и манифестами, а также советы по оптимизации и разбор типичных ошибок.Вебинар проходит в преддверии старта курса «DevOps практики и инструменты».
👉 Для участия зарегистрируйтесь: https://clck.ru/3N3eev
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎10👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Часто слушал эту прикольную песенку НТР. Такой подход к делу и материшну в целом не одобряю, но песня забавная. И при этом особо не обращал внимание на вступление.
Плиз коммит ченджес иммидиатли, асап.
Тут вроде понятно, о чём идёт речь, хотя что такое асап тоже не знал. А дальше думал, идёт какой-то набор слов просто для красного словца.
Сума сандаран cамалан бабан.
И только недавно я понял, что тут речь идёт об имени и фамилии какого-то индусаСумасандаран Самаланбабан . Увидел где-то обсуждение индусских имён и вспомнил, что в песне был не набор бессмысленных слов, а индусское имя 😀
То есть полностью вступление звучит так:
Please, commit changes immediately asap (As Soon As Possible),
Sumasandaran Samalanbaban.
Что означает в вольном переводе: "Пожалуйста, внесите исправления немедленно, Сумасандаран Самаланбабан."
#юмор #музыка
Плиз коммит ченджес иммидиатли, асап.
Тут вроде понятно, о чём идёт речь, хотя что такое асап тоже не знал. А дальше думал, идёт какой-то набор слов просто для красного словца.
Сума сандаран cамалан бабан.
И только недавно я понял, что тут речь идёт об имени и фамилии какого-то индуса
То есть полностью вступление звучит так:
Please, commit changes immediately asap (As Soon As Possible),
Sumasandaran Samalanbaban.
Что означает в вольном переводе: "Пожалуйста, внесите исправления немедленно, Сумасандаран Самаланбабан."
#юмор #музыка
👍90👎7
Небольшая зарисовка-совет из моего недавнего опыта по настройке шаблона в Zabbix Server. В настройках айтема можно использовать предобработку, которая называется Отбрасывать не изменившееся. По названию уже понятно, что она делает – не записывает новое значение, если оно не отличается от прошлого. Я везде, где можно, использую эту предобработку, потому что она существенно экономит место в базе данных, особенно если речь идёт про какие-то длинные строки в логах или другие редко изменяемые данные.
В то же время в функциях триггеров есть функция nodata, которая проверяет время последнего поступления данных. И если данные не поступали дольше заданного периода, она активирует триггер. Эта функция проверяет поступление данных на основе последней записи айтема в базе, а не самого факта поступления данных от агента. И если предобработка отбрасывает не изменившееся значение, функция nodata считает, что его не было.
Выглядит это как баг, но на деле просто особенность работы указанной пары функциональности, которую нужно знать. У предобработки есть расширенная версия – Отбрасывать не изменившееся с периодическим контролем, а у функции есть в качестве одного из параметров интервал в прошлое, на котором мы проверяем наличие новых значений.
Эта два значения надо правильно подобрать, чтобы проверка работала корректно. У предобработки время периодического контроля, когда значение в любом случае будет записано, даже если не изменилось, должно быть меньше, чем интервал в прошлое у функции nodata. Тогда всё это будет корректно работать.
Я какое-то время потратил на то, чтобы разобраться, почему один из триггеров работает некорректно. Забыл про указанную предобработку и долго не мог понять, что не так. Данные корректно уходят на сервер, в отладке это видно, но в базу данных не попадают. Думал со связью проблемы. Потом уже принудительно начал в айтем записывать разные данные, убедился, что они приходят и записываются в базу. И только после этого понял, что стоит предобработка, которая отбрасывает неизменившиеся значения.
Если не знаете и не используете описанную функциональность в мониторинге, советую обратить внимание. Предобработка существенно экономит место в базе, а функция nodata страхует вас от ситуации, когда новые данные просто не приходят, а вы думаете, что у вас всё в порядке, потому что на основе старых данных триггер не видит проблем. А на деле, к примеру, бэкапы просто не выполняются.
#zabbix
В то же время в функциях триггеров есть функция nodata, которая проверяет время последнего поступления данных. И если данные не поступали дольше заданного периода, она активирует триггер. Эта функция проверяет поступление данных на основе последней записи айтема в базе, а не самого факта поступления данных от агента. И если предобработка отбрасывает не изменившееся значение, функция nodata считает, что его не было.
Выглядит это как баг, но на деле просто особенность работы указанной пары функциональности, которую нужно знать. У предобработки есть расширенная версия – Отбрасывать не изменившееся с периодическим контролем, а у функции есть в качестве одного из параметров интервал в прошлое, на котором мы проверяем наличие новых значений.
Эта два значения надо правильно подобрать, чтобы проверка работала корректно. У предобработки время периодического контроля, когда значение в любом случае будет записано, даже если не изменилось, должно быть меньше, чем интервал в прошлое у функции nodata. Тогда всё это будет корректно работать.
Я какое-то время потратил на то, чтобы разобраться, почему один из триггеров работает некорректно. Забыл про указанную предобработку и долго не мог понять, что не так. Данные корректно уходят на сервер, в отладке это видно, но в базу данных не попадают. Думал со связью проблемы. Потом уже принудительно начал в айтем записывать разные данные, убедился, что они приходят и записываются в базу. И только после этого понял, что стоит предобработка, которая отбрасывает неизменившиеся значения.
Если не знаете и не используете описанную функциональность в мониторинге, советую обратить внимание. Предобработка существенно экономит место в базе, а функция nodata страхует вас от ситуации, когда новые данные просто не приходят, а вы думаете, что у вас всё в порядке, потому что на основе старых данных триггер не видит проблем. А на деле, к примеру, бэкапы просто не выполняются.
#zabbix
1👍89👎3
Как выглядят будни разработчиков управляемых БД, S3 и CDN в стартапе внутри big tech?
Слушайте в подкасте «Расскажите про MWS». В новом выпуске мы беседуем с Дмитрием Черёмухиным, руководителем направления Data Platform в MWS.
Обсудим, без каких сервисов не может существовать ни одно современное облако, какие команды их разрабатывают и с какими сложностями они сталкиваются. И самое важное, то, о чём все мечтают, — прекрасный green field, в котором все так хотели поработать.
Смотрите и слушайте на всех популярных площадках:
🎬 YouTube
🎬 VK Видео
🎧 Яндекс Музыка
🎧 Apple Podcasts
🎧 Mave Digital
Слушайте в подкасте «Расскажите про MWS». В новом выпуске мы беседуем с Дмитрием Черёмухиным, руководителем направления Data Platform в MWS.
Обсудим, без каких сервисов не может существовать ни одно современное облако, какие команды их разрабатывают и с какими сложностями они сталкиваются. И самое важное, то, о чём все мечтают, — прекрасный green field, в котором все так хотели поработать.
Смотрите и слушайте на всех популярных площадках:
🎬 YouTube
🎬 VK Видео
🎧 Яндекс Музыка
🎧 Apple Podcasts
🎧 Mave Digital
👍7👎6
Какое-то дёрганное лето получается. Новые проблемы сыпятся, как из рога изобилия. Жара что ли на сервера так влияет? Расскажу историю очередной проблемы, с которой столкнулся. Там есть несколько поучительных моментов.
На одном проекте ночью упал Redis, сайт начал 500-ю ошибку отдавать. Нечасто такое случается. Редис если и упадёт, то обычно быстро поднимается, потому что используют его в основном под кэш в оперативной памяти, данные можно не сохранять.
Redis словил ошибку Segmentation fault. Эта такая мутная тема, потому что нельзя однозначно сказать, из-за чего она возникает. Это могут быть как проблемы с железом, так и с самим софтом. Либо банально оперативной памяти на сервере не хватило.
У меня скорее всего последний вариант, так как в момент падения сервер реально сильно нагрузили, причём разносторонней нагрузкой. Рядом работающая СУБД в этот же момент скинула на диск свой пул и буферный кэш. Это осталось в её логе. Они это делают, чтобы освободить оперативную память, если её не хватает.
В настройках systemd юнита Redis указан параметр
Redis всю ночь поднимался и падал, постоянно записывая что-то на диск. Это видно по мониторингу. Забил весь ресурс дисков своей записью. Он писал свои трейсы в лог, но помимо них ещё какую-то информацию. Судя по всему своё состояние пытался скинуть, но не получалось. Я трейсы бегло посмотрел, но особо не вникал, так как там без должного понимания ничего особо не увидишь.
В общем случае с параметром
Но как я уже сказал, у меня что-то пошло не так. В данном случае было бы лучше, если бы он тихо помер и не мучал больше сервер. Помогло в итоге то, что я туром проснулся, вручную остановил его и запустил заново:
Так что сильно рассчитывать на systemd в таких вопросах не стоит. Очень желательно настраивать для критичных сервисов внешний мониторинг службы, чтобы она отвечала по настроенному TCP порту или Unix сокету. Отдавала какие-то данные или своё состояние передавала. И если не отвечает, то каким-то образом гарантированно перезапускать её, в зависимости от того, где она запущена, как служба на сервере или в отдельном контейнере.
Если бы это была СУБД, типа MySQL или Postgres, которая всю ночь пыталась подняться и падала, то даже не знаю, что бы стало с данными. Для этих баз данных такое поведение может быть фатальным, особенно если они упали из-за проблем с диском, а при старте запускали восстановление данных. Постоянные перезапуски их добьют. Так что аккуратнее с параметром
Я в итоге снизил потребление памяти у некоторых служб, чтобы избежать ситуаций, когда память вся закончится. Буду наблюдать. Надеюсь, что проблема не повторится.
#linux #systemd #ошибка
На одном проекте ночью упал Redis, сайт начал 500-ю ошибку отдавать. Нечасто такое случается. Редис если и упадёт, то обычно быстро поднимается, потому что используют его в основном под кэш в оперативной памяти, данные можно не сохранять.
Redis словил ошибку Segmentation fault. Эта такая мутная тема, потому что нельзя однозначно сказать, из-за чего она возникает. Это могут быть как проблемы с железом, так и с самим софтом. Либо банально оперативной памяти на сервере не хватило.
У меня скорее всего последний вариант, так как в момент падения сервер реально сильно нагрузили, причём разносторонней нагрузкой. Рядом работающая СУБД в этот же момент скинула на диск свой пул и буферный кэш. Это осталось в её логе. Они это делают, чтобы освободить оперативную память, если её не хватает.
В настройках systemd юнита Redis указан параметр
Restart=always
. Подробно на эту тему я делал отдельную заметку. Рекомендую ознакомиться, если не знаете. Данный параметр означает, что при любой причине завершения работы службы будет попытка поднять её. Я упоминал в той заметке, что не всегда это бывает полезно. И это как раз мой случай.Redis всю ночь поднимался и падал, постоянно записывая что-то на диск. Это видно по мониторингу. Забил весь ресурс дисков своей записью. Он писал свои трейсы в лог, но помимо них ещё какую-то информацию. Судя по всему своё состояние пытался скинуть, но не получалось. Я трейсы бегло посмотрел, но особо не вникал, так как там без должного понимания ничего особо не увидишь.
В общем случае с параметром
Restart=always
служба должна подняться автоматически. Я потестировал немного на отдельной виртуалке. Если Редису дать команду SIGSEGV, то он так же, как у меня вышло, скидывает свой трейс в лог, завершает работу и запускается заново. Проверить можно так:# kill -SIGSEGV $(pidof redis-server)
Но как я уже сказал, у меня что-то пошло не так. В данном случае было бы лучше, если бы он тихо помер и не мучал больше сервер. Помогло в итоге то, что я туром проснулся, вручную остановил его и запустил заново:
# systemctl stop redis-server
# systemctl start redis-server
Так что сильно рассчитывать на systemd в таких вопросах не стоит. Очень желательно настраивать для критичных сервисов внешний мониторинг службы, чтобы она отвечала по настроенному TCP порту или Unix сокету. Отдавала какие-то данные или своё состояние передавала. И если не отвечает, то каким-то образом гарантированно перезапускать её, в зависимости от того, где она запущена, как служба на сервере или в отдельном контейнере.
Если бы это была СУБД, типа MySQL или Postgres, которая всю ночь пыталась подняться и падала, то даже не знаю, что бы стало с данными. Для этих баз данных такое поведение может быть фатальным, особенно если они упали из-за проблем с диском, а при старте запускали восстановление данных. Постоянные перезапуски их добьют. Так что аккуратнее с параметром
Restart
.Я в итоге снизил потребление памяти у некоторых служб, чтобы избежать ситуаций, когда память вся закончится. Буду наблюдать. Надеюсь, что проблема не повторится.
#linux #systemd #ошибка
👍97👎2
Вопрос управлением памятью в Linux непростой. У меня уже были в разное время заметки по этой теме. Причём он не только технический, но и организационный. Как раскидать сервисы по виртуалкам и контейнерам? Всегда придётся искать баланс, потому что максимально всё подробить не обязательно будет удобно и эффективно. Но при любом раскладе нужно будет настраивать сами приложения. Покажу на нескольких примерах, как это выглядит на практике у меня.
1️⃣ Начну с MySQL. В качестве калькулятора при подборе настроек я использую MySQLTuner. Он много всего может проверить и посоветовать, но без глубокого понимания работы СУБД, лучше лишний раз не трогать настройки.
Мне главное понять, сколько памяти съест СУБД, если её максимально нагрузить при текущих параметрах. Это MySQLTuner как раз наглядно покажет. Подробно все настройки, на которые стоит обратить внимание в этом контексте, я разбирал в отдельной заметке. Не буду повторяться. Надо настроить так, чтобы MySQL не запросила памяти больше, чем есть на сервере, либо можно позволить выделить с учётом других сервисов, если они там есть. Параметры подбираются по ситуации.
Для PostgreSQL есть много конфигураторов, которые по заявленным характеристикам сервера сами посоветуют параметры, в том числе относящиеся к потреблению памяти. Мне больше всего нравится pgconfigurator.cybertec.at (хостится за CF, нужен VPN).
Есть софт попроще в плане настроек потребления памяти. Например, в Elasticsearch, Redis, Memcached можно одним параметром ограничить память, которую приложение будет использовать.
2️⃣ Дальше у нас идут приложения, которые в зависимости от нагрузки запускают разное количество экземпляров. Наглядным примером тут выступает php-fpm. Его нужно ограничить по количеству процессов, которые он может запустить в пределах отведённой ему памяти. Для этого надо понять, а сколько памяти в текущих условиях занимает один процесс?
Вопрос этот нетривиальный, так как у нас есть общая память, виртуальная память, реальная память. Форки одного процесса частично используют общую память и поэтому в лоб посмотреть в top или htop, сколько один процесс использует реальной памяти, не получится. Хотя для грубого подсчёта может и сойти. Более точно это можно определить с помощью
3️⃣ Отдельно идут приложения, которые не имеют своих настроек потребления памяти. Плюс, они не форкаются под выросшей нагрузкой. Наглядные примеры таких приложений - Nginx, Postfix, Dovecot. Сюда же можно отнести какие-то самописные скрипты, или тот же Fail2Ban. Последнего надо обязательно ограничивать, так как он легко может повесить сервер под нагрузкой.
Если мы хотим для таких приложений настроить ограничения, то можем воспользоваться настройками systemd. Их там несколько, можно очень гибко всё настроить. При определённом лимите можно ограничивать выделение памяти, а если не поможет, то перезапустить сервис или прибить. Тоже подробно это описывал ранее.
☝️ Может показаться, что контейнеры как раз и придумали в том числе для того, чтобы изолировать приложения друг от друга и ограничивать в ресурсах, и не тратить время на тонкую настройку. Частично да, в том числе для этого и придумали. Третий тип приложений отлично ограничивается на уровне выделенных ресурсов, но первые два, особенно СУБД, всё равно для стабильной работы нужно предварительно настроить под выделенные ресурсы.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#perfomance
Мне главное понять, сколько памяти съест СУБД, если её максимально нагрузить при текущих параметрах. Это MySQLTuner как раз наглядно покажет. Подробно все настройки, на которые стоит обратить внимание в этом контексте, я разбирал в отдельной заметке. Не буду повторяться. Надо настроить так, чтобы MySQL не запросила памяти больше, чем есть на сервере, либо можно позволить выделить с учётом других сервисов, если они там есть. Параметры подбираются по ситуации.
Для PostgreSQL есть много конфигураторов, которые по заявленным характеристикам сервера сами посоветуют параметры, в том числе относящиеся к потреблению памяти. Мне больше всего нравится pgconfigurator.cybertec.at (хостится за CF, нужен VPN).
Есть софт попроще в плане настроек потребления памяти. Например, в Elasticsearch, Redis, Memcached можно одним параметром ограничить память, которую приложение будет использовать.
Вопрос этот нетривиальный, так как у нас есть общая память, виртуальная память, реальная память. Форки одного процесса частично используют общую память и поэтому в лоб посмотреть в top или htop, сколько один процесс использует реальной памяти, не получится. Хотя для грубого подсчёта может и сойти. Более точно это можно определить с помощью
pmap
. У меня была подробная заметка, где я на конкретном примере показал, как это сделать. Это руководство подойдёт для всех подобных приложений.Если мы хотим для таких приложений настроить ограничения, то можем воспользоваться настройками systemd. Их там несколько, можно очень гибко всё настроить. При определённом лимите можно ограничивать выделение памяти, а если не поможет, то перезапустить сервис или прибить. Тоже подробно это описывал ранее.
☝️ Может показаться, что контейнеры как раз и придумали в том числе для того, чтобы изолировать приложения друг от друга и ограничивать в ресурсах, и не тратить время на тонкую настройку. Частично да, в том числе для этого и придумали. Третий тип приложений отлично ограничивается на уровне выделенных ресурсов, но первые два, особенно СУБД, всё равно для стабильной работы нужно предварительно настроить под выделенные ресурсы.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#perfomance
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍87👎2
Открытый практикум DevOps by Rebrain: Регулярные выражения
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉 Регистрация
Время проведения:
22 июля (вторник), 19:00 по МСК
Программа практикума:
▪️ Типы регулярных выражений
▫️ Утилиты grep, sed, awk, perl
▪️ Использования регулярок для анализа логов
▫️ Регулярки для работы с конфигами
Кто ведёт?
Николай Лавлинский — технический директор в ООО «Метод Лаб», веб-разработчик более 15 лет, преподаватель технологий на онлайн-платформах, спикер конференций HighLoad++, РИТ++. Специализируется на ускорении сайтов и веб-приложений.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFHmzyGL
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉 Регистрация
Время проведения:
22 июля (вторник), 19:00 по МСК
Программа практикума:
▪️ Типы регулярных выражений
▫️ Утилиты grep, sed, awk, perl
▪️ Использования регулярок для анализа логов
▫️ Регулярки для работы с конфигами
Кто ведёт?
Николай Лавлинский — технический директор в ООО «Метод Лаб», веб-разработчик более 15 лет, преподаватель технологий на онлайн-платформах, спикер конференций HighLoad++, РИТ++. Специализируется на ускорении сайтов и веб-приложений.
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFHmzyGL
👍8👎6
На днях почувствовал себя пользователем vi или vim, который не знает, как из него выйти. Установил на винду консольный редактор MSEdit:
Подсказали в прошлой заметке про sudo в Windows. Честно говоря вообще впервые про него услышал. Это что-то из далёкого прошлого. Редактор из системы MS-DOS. Я её не застал. Сознательный возраст встретил с Windows 95.
Запускается в командной строке:
Зашёл, а выйти не могу. Понятно, что в Windows всё намного проще. Можно просто окно закрыть. Тем не менее, стал перебирать различные комбинации. Ничего из привычного не подошло. Я не понял ни как выйти, ни как открыть верхнее меню. Комбинации клавиш не совпадают с теми, к которым привык в Linux.
В верхнее меню можно попасть через Alt и любую из указанных клавиш. А можно просто мышкой туда тыкнуть. Как оказалась, в этот консольный редактор добавили поддержку мышки.
Для винды выглядит максимально непривычно. Не знаю, будет ли это кому-то удобно. Мне кажется, оживили проект больше по приколу, нежели для развития какой-то функциональности, в отличии от sudo. Я пользоваться точно не буду, потому что горячие клавиши непривычны. Автоматом жму Ctrl + X или F10, чтобы выйти. А первая комбинация в edit вырезает строку.
#windows
> winget install Microsoft.Edit
Подсказали в прошлой заметке про sudo в Windows. Честно говоря вообще впервые про него услышал. Это что-то из далёкого прошлого. Редактор из системы MS-DOS. Я её не застал. Сознательный возраст встретил с Windows 95.
Запускается в командной строке:
> edit readme.txt
Зашёл, а выйти не могу. Понятно, что в Windows всё намного проще. Можно просто окно закрыть. Тем не менее, стал перебирать различные комбинации. Ничего из привычного не подошло. Я не понял ни как выйти, ни как открыть верхнее меню. Комбинации клавиш не совпадают с теми, к которым привык в Linux.
В верхнее меню можно попасть через Alt и любую из указанных клавиш. А можно просто мышкой туда тыкнуть. Как оказалась, в этот консольный редактор добавили поддержку мышки.
Для винды выглядит максимально непривычно. Не знаю, будет ли это кому-то удобно. Мне кажется, оживили проект больше по приколу, нежели для развития какой-то функциональности, в отличии от sudo. Я пользоваться точно не буду, потому что горячие клавиши непривычны. Автоматом жму Ctrl + X или F10, чтобы выйти. А первая комбинация в edit вырезает строку.
#windows
👍43👎6
📊 2 недели назад проводил опрос на тему использования операционных систем на рабочих машинах и серверах. Было интересно сравнить с такими же опросами в прошлом году.
На удивление, за год существенных изменений нет. Результаты очень близкие с учётом погрешности. Единственный момент – я ошибся в TG с опросом ОС на серверах. В прошлом году разрешил выбрать несколько вариантов, а в этом только один. Из-за этого в лоб сравнить 2 года не получится, но по общей картине видно, что изменений там особо нет.
Ожидал, что доля Linux на рабочих машинах подрастёт, а MacOS снизится, но этого не произошло. Также думал, что заметно снизится доля Windows серверов. В результатах TG это заметно, но очень незначительно, что на такой выборке выглядит как погрешность. А в VK вообще без изменений.
Среди российских дистрибутивов неожиданно было увидеть высокую долю Red OS, очень близкую к Alt. Честно говоря, думал, что в лидерах будет именно он, а не Astra. На деле Астра – безоговорочный лидер.
Свёл результаты обоих лет на картинках снизу с разбивкой на Telegram и VK.
#опрос
На удивление, за год существенных изменений нет. Результаты очень близкие с учётом погрешности. Единственный момент – я ошибся в TG с опросом ОС на серверах. В прошлом году разрешил выбрать несколько вариантов, а в этом только один. Из-за этого в лоб сравнить 2 года не получится, но по общей картине видно, что изменений там особо нет.
Ожидал, что доля Linux на рабочих машинах подрастёт, а MacOS снизится, но этого не произошло. Также думал, что заметно снизится доля Windows серверов. В результатах TG это заметно, но очень незначительно, что на такой выборке выглядит как погрешность. А в VK вообще без изменений.
Среди российских дистрибутивов неожиданно было увидеть высокую долю Red OS, очень близкую к Alt. Честно говоря, думал, что в лидерах будет именно он, а не Astra. На деле Астра – безоговорочный лидер.
Свёл результаты обоих лет на картинках снизу с разбивкой на Telegram и VK.
#опрос
👍79👎5
Отказоустойчивость от двух нод в облачных базах данных
Если вам важна бесперебойная работа вашего проекта, самое время позаботиться об отказоустойчивости. Selectel поможет сделать это проще и выгоднее — у провайдера можно создать отказоустойчивый кластер баз данных всего от двух нод.
Выгода очевидна: использование двух нод в кластере вместо стандартных трех позволяет сократить расходы на 33%.
Почему это надежно?
▪️SLA отказоустойчивого кластера — 99,95% на запись и 99,99% на чтение.
▪️Доступно автоматическое резервное копирование кластера «из коробки» и без доплат. Ежедневно создаются инкрементальные бэкапы, а полные копии кластера — раз в неделю.
▪️Можно создавать реплики в разных сегментах пула для большей надежности. При этом серверы кластера размещаются на разных физических хостах и имеют разные контуры питания.
Разверните отказоустойчивые кластеры облачных баз данных в Selectel: https://slc.tl/kwejj
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqvWymks
Если вам важна бесперебойная работа вашего проекта, самое время позаботиться об отказоустойчивости. Selectel поможет сделать это проще и выгоднее — у провайдера можно создать отказоустойчивый кластер баз данных всего от двух нод.
Выгода очевидна: использование двух нод в кластере вместо стандартных трех позволяет сократить расходы на 33%.
Почему это надежно?
▪️SLA отказоустойчивого кластера — 99,95% на запись и 99,99% на чтение.
▪️Доступно автоматическое резервное копирование кластера «из коробки» и без доплат. Ежедневно создаются инкрементальные бэкапы, а полные копии кластера — раз в неделю.
▪️Можно создавать реплики в разных сегментах пула для большей надежности. При этом серверы кластера размещаются на разных физических хостах и имеют разные контуры питания.
Разверните отказоустойчивые кластеры облачных баз данных в Selectel: https://slc.tl/kwejj
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqvWymks
👍8👎8
Казалось бы, ну кто не знает в наше время, что нужно делать и проверять бэкапы? Куча инструментов есть, в том числе бесплатных. Но это всё слабо помогает. Через меня проходит много всевозможных историй, поэтому решил в очередной раз рассказать о них и напомнить про бэкапы.
1️⃣ Читал статью на хабре, как разработчик случайным запросом очистил базу пользователей и похоронил коммерческий проект, так как бэкап был месячной давности.
2️⃣ Мне в личные сообщения написал человек и попросил помочь. У него умер рейд массив на контроллере домена. Он бэкапился встроенным резервным копированием винды. При восстановлении оказалось, что ничего не восстанавливается, система пишет, что не видит бэкапа в указанном месте.
В обоих случаях бэкапы вроде бы и делались, но не проверялись. По факту оказалось, что их нет.
3️⃣ Эта история более насыщенная, так как я в ней лично поучаствовал. Обратился старый заказчик, которому я несколько лет назад настраивал инфраструктуру. Но не поддерживал её. Если кому-то что-то настраиваю, то сразу предупреждаю, что поддерживать не буду. У меня нет такой возможности. Всё аккуратно передаю и объясняю, чтобы дальше без моего участия можно было вести дела.
Но тут сделал исключение. Был поздний вечер, уже собирался спать, всё выключил. Ну и как обычно проверил Telegram. А там умер виндовый сервер с кучей баз 1С. Утром придут люди и «прибьют меня».
Базы были как файловые, так и в MSSQL. Бэкапы файловых баз были, скульных – свежих нет. Но бэкап это пол дела. Системы то самой нет. Надо всё с нуля поднимать и настраивать, восстанавливать лицензии, делать публикации. На дворе ночь, подменного сервера нет.
Сервер вёл себя странно. Он нормально загружался до своей заставки с часами. А дальше ни на что не реагировал. Если раз 10 нажать CTRL+ALT+Delete, падает в чёрный экран и больше ни на что не отвечает. Но при этом курсор двигается, активен порт RDP, но удалённые соединения не устанавливаются. Залогиниться не получалось даже локально.
Загрузился в режиме восстановления, успешно зашёл в систему. Весь системный лог в ошибках. Службы не запускаются, какие-то файлы недоступны, на диске ошибки. Но при этом
Запускаю
Я не верил, что эту систему можно оживить. Слишком много каких-то неведомых проблем. Заказчик предложил удалить программу Обновлятор-1С, так как впервые система зависла и начались проблемы во время её работы. Я знаю эту программу. Она довольно старая и известная. Cам не раз пользовался. Каких-то глобальных проблем с ней не видел. Стояла купленная лицензионная версия.
Не думал, что удаление программы на что-то повлияет. Загрузился в безопасном режиме, удалил программу, перезагрузился. Система запустилась как ни в чём ни бывало. Никаких ошибок ни с диском, ни с файлами, ни со службами. Я не знаю, что она там делала и как ломала систему. Но факт есть факт. Дело реально было в ней.
☝️ Мораль тут какая? Бэкапить надо не только данные, но и системы. Иначе в час ИКС ты просто не будешь знать, что тебе делать. Надо искать и железо, и систему восстанавливать. А потом на неё данные накатывать. Это очень долго. Наверняка окажется, что и версий подходящих нет. Я практически всегда делаю бэкап и виртуальной машины и отдельно данных. Ну и по возможности всё это проверяю. Если не проверять, то очень велика вероятность, что в час ИКС ничего восстановить и не получится. Бэкапы могут месяцами не создаваться или создаваться битыми. Для баз данных это очень актуальная тема.
Кстати, описанная инфраструктура была построена примерно вот так. Уже не первый раз убеждаюсь, что это работает просто и надёжно. И почти не требует обслуживания. Главное, бэкапы данных и виртуальных машин делать.
#backup
В обоих случаях бэкапы вроде бы и делались, но не проверялись. По факту оказалось, что их нет.
Но тут сделал исключение. Был поздний вечер, уже собирался спать, всё выключил. Ну и как обычно проверил Telegram. А там умер виндовый сервер с кучей баз 1С. Утром придут люди и «прибьют меня».
Базы были как файловые, так и в MSSQL. Бэкапы файловых баз были, скульных – свежих нет. Но бэкап это пол дела. Системы то самой нет. Надо всё с нуля поднимать и настраивать, восстанавливать лицензии, делать публикации. На дворе ночь, подменного сервера нет.
Сервер вёл себя странно. Он нормально загружался до своей заставки с часами. А дальше ни на что не реагировал. Если раз 10 нажать CTRL+ALT+Delete, падает в чёрный экран и больше ни на что не отвечает. Но при этом курсор двигается, активен порт RDP, но удалённые соединения не устанавливаются. Залогиниться не получалось даже локально.
Загрузился в режиме восстановления, успешно зашёл в систему. Весь системный лог в ошибках. Службы не запускаются, какие-то файлы недоступны, на диске ошибки. Но при этом
sfc /scannow
и DISM /Online /Cleanup-Image /RestoreHealth
ошибок не показывают.Запускаю
chkdsk C: /f /r
и перезагружаю. Во время проверки долго висит на 15%, по графикам VM видно, что очень активно шерстит NVME дисками. В итоге проверка до конца не доходит, аварийно вырубается и система заново загружается с теми же проблемами.Я не верил, что эту систему можно оживить. Слишком много каких-то неведомых проблем. Заказчик предложил удалить программу Обновлятор-1С, так как впервые система зависла и начались проблемы во время её работы. Я знаю эту программу. Она довольно старая и известная. Cам не раз пользовался. Каких-то глобальных проблем с ней не видел. Стояла купленная лицензионная версия.
Не думал, что удаление программы на что-то повлияет. Загрузился в безопасном режиме, удалил программу, перезагрузился. Система запустилась как ни в чём ни бывало. Никаких ошибок ни с диском, ни с файлами, ни со службами. Я не знаю, что она там делала и как ломала систему. Но факт есть факт. Дело реально было в ней.
☝️ Мораль тут какая? Бэкапить надо не только данные, но и системы. Иначе в час ИКС ты просто не будешь знать, что тебе делать. Надо искать и железо, и систему восстанавливать. А потом на неё данные накатывать. Это очень долго. Наверняка окажется, что и версий подходящих нет. Я практически всегда делаю бэкап и виртуальной машины и отдельно данных. Ну и по возможности всё это проверяю. Если не проверять, то очень велика вероятность, что в час ИКС ничего восстановить и не получится. Бэкапы могут месяцами не создаваться или создаваться битыми. Для баз данных это очень актуальная тема.
Кстати, описанная инфраструктура была построена примерно вот так. Уже не первый раз убеждаюсь, что это работает просто и надёжно. И почти не требует обслуживания. Главное, бэкапы данных и виртуальных машин делать.
#backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍130👎3
У меня в прошлом была серия заметок про проверку Docker образов на уязвимости с помощью Trivy и их исправление с помощью Copacetic. Я всё это оформил в статью на сайте:
⇨ Проверка безопасности Docker образов с помощью Trivy
Данную связку хорошо дополняет Dockle. Предлагаю к ним компанию добавить ещё один популярный, удобный и бесплатный инструмент – TruffleHog. С его помощью можно проверять код, логи и конфигурации на наличие в них забытых секретов в виде паролей, токенов и приватных ключей. Причём TruffleHog может как найти секреты, так и проверить их. Для каждого сервиса написаны детекторы. Полный их список можно посмотреть в репозитории.
TruffleHog поддерживает следующие источники информации:
◽️Git репозитории, в том числе с отдельной интеграцией с github и gitlab
◽️Обычная файловая система
◽️Elasticsearch
◽️Логи в формате Syslog
◽️Docker образы и контейнеры
И некоторые другие источники. Не стал их все перечислять.
Программа представляет из себя одиночный бинарник, написанный на Go. Имеет как интерактивный режим работы для ручной проверки, так и передачу параметров через ключи. Соответственно, всё это легко интегрируется в ваши пайплайны для проверки кода и образов. Результаты работы можно получить сразу в формате json для последующего анализа.
Работает примерно так:
Это пример проверки тестового репозитория самих разработчиков. Установить trufflehog можно любым удобным способом. Самому скачать бинарник, либо использовать скрипт, который скачает сам нужную версию из репозитория:
Можно просто в Docker запустить:
Если запустить trufflehog без параметров, то откроется интерактивный режим настроек, где можно по шагам задать параметры проверки.
Программа универсальная и поддерживает свои проверки. Вот пример конфигурации, где заданы некоторые из них. Проверил, добавив в один из логов попадающую под шаблон из примера строку:
Trufflehog успешно её обнаружил. В данный момент разрабатывается в том числе и универсальный механизм проверок для своих внутренних сервисов, а не только публичных, которые уже реализованы в самой программе. Данная функциональность пока в режиме альфа. Посмотреть, как будет работать, можно на примерах. Там вариант конфигурации с так называемым Custom Detector.
Описанный софт, в том числе то, что я перечислил в начале заметки, обычно присутствует в списке продуктов, которые рекомендуют к изучению и использованию, если вы хотите работать в качестве DevOps инженера. Так что если двигаетесь в этом направлении, изучайте его. TruffleHog одно из самых популярных решений в области проверки секретов.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#docker #devops #cicd #security
⇨ Проверка безопасности Docker образов с помощью Trivy
Данную связку хорошо дополняет Dockle. Предлагаю к ним компанию добавить ещё один популярный, удобный и бесплатный инструмент – TruffleHog. С его помощью можно проверять код, логи и конфигурации на наличие в них забытых секретов в виде паролей, токенов и приватных ключей. Причём TruffleHog может как найти секреты, так и проверить их. Для каждого сервиса написаны детекторы. Полный их список можно посмотреть в репозитории.
TruffleHog поддерживает следующие источники информации:
◽️Git репозитории, в том числе с отдельной интеграцией с github и gitlab
◽️Обычная файловая система
◽️Elasticsearch
◽️Логи в формате Syslog
◽️Docker образы и контейнеры
И некоторые другие источники. Не стал их все перечислять.
Программа представляет из себя одиночный бинарник, написанный на Go. Имеет как интерактивный режим работы для ручной проверки, так и передачу параметров через ключи. Соответственно, всё это легко интегрируется в ваши пайплайны для проверки кода и образов. Результаты работы можно получить сразу в формате json для последующего анализа.
Работает примерно так:
# trufflehog git https://github.com/trufflesecurity/test_keys
Это пример проверки тестового репозитория самих разработчиков. Установить trufflehog можно любым удобным способом. Самому скачать бинарник, либо использовать скрипт, который скачает сам нужную версию из репозитория:
# curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin
Можно просто в Docker запустить:
# docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys
Если запустить trufflehog без параметров, то откроется интерактивный режим настроек, где можно по шагам задать параметры проверки.
Программа универсальная и поддерживает свои проверки. Вот пример конфигурации, где заданы некоторые из них. Проверил, добавив в один из логов попадающую под шаблон из примера строку:
# trufflehog filesystem --config=$PWD/generic.yml /var/log
Trufflehog успешно её обнаружил. В данный момент разрабатывается в том числе и универсальный механизм проверок для своих внутренних сервисов, а не только публичных, которые уже реализованы в самой программе. Данная функциональность пока в режиме альфа. Посмотреть, как будет работать, можно на примерах. Там вариант конфигурации с так называемым Custom Detector.
Описанный софт, в том числе то, что я перечислил в начале заметки, обычно присутствует в списке продуктов, которые рекомендуют к изучению и использованию, если вы хотите работать в качестве DevOps инженера. Так что если двигаетесь в этом направлении, изучайте его. TruffleHog одно из самых популярных решений в области проверки секретов.
⇨ 🌐 Сайт / Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#docker #devops #cicd #security
1👍74👎3
⚠️ Откройте для себя Infrastructure as Code с Terraform
Задумывались, как упростить управление инфраструктурой и сделать её более прозрачной и управляемой?
👉 Узнайте, как сделать это с помощью Terraform на открытом автовебинаре.
Мы расскажем, как концепция Infrastructure as Code помогает автоматизировать и контролировать процессы, избавляя вас от необходимости вручную управлять виртуальными машинами через интерфейс облачных провайдеров. Один раз описав желаемое состояние инфраструктуры, вы сможете подключать любые облачные провайдеры, когда это будет нужно.
💪 Преимущества очевидны: автоматизация, контроль версий и возможность откатиться к предыдущим состояниям. Понимание этих инструментов — шаг к эффективному управлению вашей инфраструктурой.
👉 Зарегистрируйтесь для участия: https://clck.ru/3NAfcv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Задумывались, как упростить управление инфраструктурой и сделать её более прозрачной и управляемой?
👉 Узнайте, как сделать это с помощью Terraform на открытом автовебинаре.
Мы расскажем, как концепция Infrastructure as Code помогает автоматизировать и контролировать процессы, избавляя вас от необходимости вручную управлять виртуальными машинами через интерфейс облачных провайдеров. Один раз описав желаемое состояние инфраструктуры, вы сможете подключать любые облачные провайдеры, когда это будет нужно.
💪 Преимущества очевидны: автоматизация, контроль версий и возможность откатиться к предыдущим состояниям. Понимание этих инструментов — шаг к эффективному управлению вашей инфраструктурой.
👉 Зарегистрируйтесь для участия: https://clck.ru/3NAfcv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎9👍6
⇨ Postgresus - удобный домашний бекап баз данных
Коротенький обзор веб панели программы для бэкапа PostgreSQL серверов. Выглядит удобно и полезно. Скорее всего тоже попробую и сделаю отдельный обзор. Бэкапы она делает только полные, так что подойдёт только для небольших баз. У меня есть сервера, где как раз куча небольших баз 1С. Возможно, с этой панелькой будет удобно их бэкапить и быстро восстанавливать.
⇨ Self-Host Your Own Automation Platform with n8n + Docker
Очередной обзор и примеры использования платформы для автоматизации n8n. Это очень популярная и функциональная штука. Я пару раз за неё садился и пытался к чему-нибудь приспособить, но ничего дельного не получалось. Её на самом деле с наскока трудно освоить, хоть она и позиционируется как простое no-code решение. Кто не знаком с ней, рекомендую посмотреть. Может приспособите её куда-то к себе.
⇨ Сжатие текста в Angie: статика, динамика, производительность
Обзор и тесты различных режимов сжатия в веб сервере. Я всё это неплохо знаю и в своё время тестировал и использовал различные алгоритмы: gzip, brotli, zstd. Про последний делал отдельную заметку с описанием настройки. Я лично почти везде включаю zstd на веб серверах.
⇨ Zabbix 7.4 Host Wizard Overview
Видео актуально, если вы не собираетесь обновляться до 7.4, но хотите посмотреть, как выглядит новый интерфейс добавления хостов в Zabbix Server.
⇨ OAuth 2.0 — Простым языком на понятном примере
Автор подробно и с примерами показал, как работает OAuth и OpenID Connect. Часто упоминаю эти технологии, когда рассказываю про тот или иной софт. Если не знаете, что это такое, то посмотрите видео.
⇨ Grafana Alloy, NEW log + metric collector replaces everything!
Обзор инструмента Grafana Alloy. Думал это что-то новое, но не особо то и новое. Год уже точно существует. Честно говоря, впервые услышал про этот продукт. Никогда не видел и не слышал. Он собирает логи и метрики. По сути это аналог promtail, opentelemetry collector и т.д.
⇨ ALT Linux 10 установка КриптоПРО 5 с поддержкой ключей от 4-й версии
Настройка работы КриптоПРО на рабочей станции ALT.
⇨ Устанавливаем Fedora Server 42 — Идеальный дистрибутив для self-hosting?
Практической пользы нет, но мне было любопытно посмотреть. Вообще не знал, что у Fedora есть сервер. После видео так и не понял, зачем он нужен.
⇨ Прямое подключение NAS к ПК по 10GbE
Видео простенькое, для обычных пользователей. Но мне было интересно посмотреть, что за адаптеры с подключением по usb-c используются для этого (цена ~6 т.р.), какие провода и т.д. На практике я вообще никогда не настраивал такие интерфейсы. Были кое-где на арендных серверах, но там настраивать ничего не надо. Сразу выдают настроенные.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Postgresus - удобный домашний бекап баз данных
из рубрики "полезное и интересное" рассмотрел сегодня удобный UI-интерфейс для бекапа\рестора БД Psql.
умеет работать по расписанию, отправлять нотификации, сохранять в s3\google-drive, обладает удобным и очень приветливым интерфейсом.
где-то на проде конечно…
умеет работать по расписанию, отправлять нотификации, сохранять в s3\google-drive, обладает удобным и очень приветливым интерфейсом.
где-то на проде конечно…
👍52👎2
Регулярные выражения или по-простому регулярки способны освоить не только лишь все. Это база, которая сделала конструкции из консольных команд в Unix нечитаемыми не только для обычных людей, но и it-специалистов, которые не понимают регулярок. Кто знает, может быть из-за них юниксоидов, а потом и линуксоидов прозвали задротами и красноглазиками. А как ещё назвать человека, который способен расшифровать подобное:
Конечно, сейчас можно сказать, что зачем всё это знать, если можно просто спросить ChatGPT и он всё объяснит и сам напишет. А зачем вообще в школу ходить и делать домашки, если их может тот же ИИ сделать? Уже есть исследования, которые показывают, что через 2-3 месяца активного использования ИИ для решения задач у человека заметно снижаются когнитивные способности. Если по-простому, то он тупеть начинает, не хочет и не может лишний раз подумать и решить задачу.
Я, кстати, из-за этого всегда без исключений все тексты пишу сам, даже если очень не хочется. Велик соблазн попросить ИИ, а потом за ним подредактировать. Это проще, чем писать самому с нуля. Но я знаю, что начну терять навык. Даже структуру статей, заметок не прошу делать. Делаю сам от и до.
То же самое касается конфигураций и bash скриптов. Никогда не прошу полностью решить задачу. Если что-то и спрашиваю, то про какие-то конкретные вещи. То есть использую его как справочник, а не как инструмент для решения всей задачи. Тупеть не хочется. Возраст и так своё дело рано или поздно сделает, не хочется ему помогать.
Длинное вступление получилось. Написать не об этом хотел. Есть очень качественный интерактивный тренажёр для изучения регулярных выражений. Он переведён на многие языки, в том числе русский. Перевод качественный.
⇨ https://regexlearn.com/ru
В нём сначала идёт блок теории, а потом она закрепляется практикой. Ничего сложного, но нужно будет немного поднапрячь мозги. Даётся база, каких-то сложных выражений не разбирают. Если будете реально проходить, то рекомендую открыть с этого же сайта шпаргалку. Я без неё проходил, потому что в целом всё это и так знаю. Конкретно эту базу невольно пришлось освоить, когда самостоятельно изучал Asterisk и писал план набора в
📌 Дополнительные ссылки по теме:
▪️ autoregex.xyz — построение регулярок с помощью ИИ
▪️ regex101.com — проверка регулярных выражений
▪️ grex — автоматическое составление регулярок на основе набора данных
▪️ regexper.com — схематическое изображение регулярок
▪️ ihateregex.io — готовые примеры регулярных выражений
▪️SLASH\ESCAPE — интерактивная атмосферная обучающая игра
Ссылки все живые. Какие-то блокируются из-за CF, какие-то из-за блока на той стороне 🤷♂️
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#regex #обучение
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!#%*?&]{8,}$
Конечно, сейчас можно сказать, что зачем всё это знать, если можно просто спросить ChatGPT и он всё объяснит и сам напишет. А зачем вообще в школу ходить и делать домашки, если их может тот же ИИ сделать? Уже есть исследования, которые показывают, что через 2-3 месяца активного использования ИИ для решения задач у человека заметно снижаются когнитивные способности. Если по-простому, то он тупеть начинает, не хочет и не может лишний раз подумать и решить задачу.
Я, кстати, из-за этого всегда без исключений все тексты пишу сам, даже если очень не хочется. Велик соблазн попросить ИИ, а потом за ним подредактировать. Это проще, чем писать самому с нуля. Но я знаю, что начну терять навык. Даже структуру статей, заметок не прошу делать. Делаю сам от и до.
То же самое касается конфигураций и bash скриптов. Никогда не прошу полностью решить задачу. Если что-то и спрашиваю, то про какие-то конкретные вещи. То есть использую его как справочник, а не как инструмент для решения всей задачи. Тупеть не хочется. Возраст и так своё дело рано или поздно сделает, не хочется ему помогать.
Длинное вступление получилось. Написать не об этом хотел. Есть очень качественный интерактивный тренажёр для изучения регулярных выражений. Он переведён на многие языки, в том числе русский. Перевод качественный.
⇨ https://regexlearn.com/ru
В нём сначала идёт блок теории, а потом она закрепляется практикой. Ничего сложного, но нужно будет немного поднапрячь мозги. Даётся база, каких-то сложных выражений не разбирают. Если будете реально проходить, то рекомендую открыть с этого же сайта шпаргалку. Я без неё проходил, потому что в целом всё это и так знаю. Конкретно эту базу невольно пришлось освоить, когда самостоятельно изучал Asterisk и писал план набора в
extensions.conf
. Там без регулярок никуда. Вся настройка на них основывается.📌 Дополнительные ссылки по теме:
▪️ autoregex.xyz — построение регулярок с помощью ИИ
▪️ regex101.com — проверка регулярных выражений
▪️ grex — автоматическое составление регулярок на основе набора данных
▪️ regexper.com — схематическое изображение регулярок
▪️ ihateregex.io — готовые примеры регулярных выражений
▪️SLASH\ESCAPE — интерактивная атмосферная обучающая игра
Ссылки все живые. Какие-то блокируются из-за CF, какие-то из-за блока на той стороне 🤷♂️
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#regex #обучение
2👍171👎4