Search
Write a publication
Pull to refresh
5
0
Tolkachev Konstantin @kasperos

ИТ: администрирование, рем., диагн., и т.д. и т.п.

Send message

Bash-скрипты, часть 3: параметры и ключи командной строки

Reading time10 min
Views590K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.

image
Читать дальше →

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views706K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее

Кунг-фу стиля Linux: делиться — это плохо

Reading time7 min
Views30K
В детском саду вы узнали о том, что делиться — это хорошо. Но, если речь заходит о компьютерной безопасности, часто оказывается, что не всё так однозначно. Концепция пространств имён (namespaces) появилась в ядре Linux начиная с версии 2.6.24. Это случилось много лет назад, но использование пространств имён не стало массовым явлением, несмотря на то, что существуют инструменты для работы с ними. Разумеется, задумываться о пространствах имён нужно далеко не всегда. Но это одна из тех вещей, которые, если в них возникает необходимость, дают нам просто бесценные возможности. Если описать эти возможности в двух словах, то получится, что пространства имён позволяют предоставить процессу его собственные, приватные ресурсы, и, что важнее, запретить процессу доступ к ресурсам из других пространств имён.



На самом деле мы, работая в Linux, постоянно пользуемся этой концепцией. Каждый запускаемый нами процесс существует в среде, описываемой неким набором пространств имён. Почему я говорю тут о «наборе» пространств имён? Дело в том, что существуют пространства имён, используемые для управления различными ресурсами. Например, можно настроить особое сетевое пространство имён, которое позволит предоставить процессу его собственный набор сетевых ресурсов — таких, например, как таблицы маршрутизации и правила файрвола.

Поговорим о том, как в Linux организована работа с пространствами имён, и о том, что они скрывают.
Читать дальше →

HyperModem: Девайс для доступа в децентрализованный peer to peer интернет будущего

Reading time3 min
Views25K

Интернет в наше время излишне централизован и держится на костылях. Не всех это устраивает. Для технологии 1970-х годов он еще неплохо справляется, но зачем нам в 2022 году такие вещи, как централизованные интернет-провайдеры, BGP, IPv4, TLS? Можно ведь сделать лучше!

Все технологии для этого есть

Исследуем базы данных с помощью T-SQL

Reading time26 min
Views291K
Как dba и консультант по оптимизации производительности SQL Server в Ambient Consulting, я часто сталкиваюсь с необходимостью анализа узких мест производительности на экземплярах SQL Server, которые вижу первый раз в жизни. Это может быть сложной задачей. Как правило, у большинства компаний нет документации по их базам данных. А если есть, то она устарела, или же её поиск занимает несколько дней.

В этой статье я поделюсь базовым набором скриптов, раскапывающим информацию о метаданных с помощью системных функций, хранимых процедур, таблиц, dmv. Вместе они раскрывают все секреты баз данных на нужном экземпляре – их размер, расположение файлов, их дизайн, включая столбцы, типы данных, значения по умолчанию, ключи и индексы.

Если вы когда-нибудь пытались получить часть этой информации, с помощью GUI, я думаю вы будете приятно удивлены количеством той информации, которая, с помощью этих скриптов, получается мнгновенно.

Как и с любыми скриптами, сначала проверьте их в тестовом окружении, прежде чем запускать в продакшене. Я бы рекомендовал вам погонять их на тестовых базах MS, таких как AdventureWorks или pubs.

Ну, хватит слов, давайте я покажу скрипты!
Читать дальше →

Как простой баг повреждения памяти ядра Linux может привести к полной компрометации системы

Reading time47 min
Views6.1K

Введение


В этом посте описывается простой в реализации баг блокировки ядра Linux и то, как я использовал его против ядра Debian Buster 4.19.0-13-amd64. В посте рассматриваются варианты устранения бага, препятствующие или усложняющие использование подобных проблем злоумышленниками.

Я надеюсь, что подробный разбор такого эксплойта и его публикация помогут при определении относительной полезности различных подходов к его устранению.

Многие описанные здесь отдельные техники эксплойтов и варианты их устранения не новы. Однако я считаю, что стоит объединить их в одну статью, чтобы показать, как различные способы устранения взаимодействуют друг с другом на примере достаточно стандартного эксплойта с использованием освобождённой памяти.
Читать дальше →

Золотое правило системного администрирования

Reading time8 min
Views21K
image

Я занимался разработкой систем последние 12 лет своей жизни. У меня в руках побывало всё. Я видел системы, работающие на COM портах, для передачи данных между терминалами. У меня есть сертификат NEC, подтверждающий тот факт, что я могу программировать их зубодробительные системы, созданные инопланетянами. Я поднимал с колен уложенные облачные фермы и переписывал код на VB6. Мне удалось повидать хорошо отлаженные системы и запутанный ужас, который никак не поддавался дебагу.

В этой статье я расскажу о нескольких основных правилах работы с любой системой. Эти правила не привязаны к определённой системе. Они работают как для монолита, написанного на C# в 2005 году, так и для свежесобранного кластера на кубере.

Некоторым применение этих правил позволит предотвратить головную боль с пересбором упавшей системы за выходные, а некоторым поможет сохранить капиталовложения.
Читать дальше →

CRM 2022

Reading time7 min
Views9.1K

ИТ-сфера и окружающий её диджитал не допускают прогнозов дальше, чем на 1-3 года. Всё, что больше, это уже научная фантастика и о ней можно рассуждать или фантазировать, но никак не говорить всерьёз. С поправкой на современную ситуацию адекватный прогноз можно составить только на год, да и то рамочно. Давайте приоткроем дверь в новый год и посмотрим, что может ждать экспертов и пользователей на рынке CRM-систем. Тем более что этот рынок отражает и впитывает общие тренды ИТ-сферы, а в чём-то и опережает их, потому что CRM это не только про софт, это ещё про бизнес и про деньги.

Читать далее

Что делать, когда мигать лампочками уже скучно, а проектировать процессор еще сложно

Reading time5 min
Views12K

ПЛИС и Verilog - естественная платформа для обучения будущего проектировщика процессоров, так же как Си и микроконтроллеры - естественная платформа для обучения будущего программиста встроенных систем.

И один, и другой путь начинается с мигания огоньками на недорогой плате, но дальше пути расходятся. Встроенный программист смотрит в сторону самоуправляющихся авто, с задачами на RTOS и распознаванием ситуации с помощью AI в GPU. Проектировщик микросхем на уровне регистровых передач смотрит в сторону групп, разрабатывающих CPU, GPU, NPU и сетевые чипы, но какие упражнения он может делать между миганием огоньками и трудоустройством в Интел?

И что делать?

IT в штате или внешний подряд?

Reading time7 min
Views5.3K

Тема аутсорса в области автоматизации производителей продуктов питания актуальна как никогда. Направление растет, развивается. Однако, по ощущениям, некоторые предприятия не совсем правильно воспринимают возможности этого ресурса.

Сейчас я попробую прояснить ситуацию.

Кстати, меня зовут Андрей Шишкин, я являюсь управляющим партнером компании «Константа».

Итак, аутсорс – это привлечение сторонней помощи для решения внутренней задачи предприятия. В данном случае мы говорим про задачи автоматизации учета.

Читать далее

Собираем конструктор или архитектура сетевой безопасности. Случай 1 – Небольшой офис

Reading time7 min
Views14K

Сетевая безопасность? Да у нас на периметре роутер стоит и все нормально!

Благодаря многолетней работе в интеграторе я периодически сталкиваюсь с таким мнением, поэтому надеюсь, что популяризация данной темы поможет избежать проблем в виде каких-нибудь шифровальщиков хотя бы в паре компаний. 

Читать далее

Проклятие поддомена WWW: чеклист молодого админа

Reading time4 min
Views14K

Должен ли адрес веб-сайта включать поддомен WWW и стоит ли вообще его создавать – тема многолетней спецолимпиады в этих наших Интернетах. Как «за», так и «против» приводится множество аргументов разной степени маразматичности разумности, которые я не стану воспроизводить в 100500-й раз. Отмечу лишь два момента. Первый: существуют разумные доводы в пользу обоих вариантов, поэтому следует решать, сообразуясь лишь со своими целями и обстоятельствами. Второй: не существует RFC, который явно требовал бы наличия или отсутствия поддомена WWW.
Читать дальше →

Применение функционального шифрования для решения Cross Domain Problem

Reading time6 min
Views1.9K

Проблема безопасной отправки данных между доменами с разным уровнем доступа возникает в различных сценариях передачи информации по сети. Большинство методов решения данной задачи использует политики безопасности и доверенные стороны, при этом создание системы, работающей в произвольной сети, является сложной задачей.

В данной статье рассматривается новый алгоритм на основе функционального шифрования, который позволяет решить данную проблему.

Читать далее

Установка Kubernetes на домашнем сервере с помощью K3s

Reading time23 min
Views32K

Но зачем


Знаю, о чем вы думаете — Kubernetes? На домашнем сервере? Кто может быть настолько сумасшедшим? Что ж, раньше я согласился бы, однако недавно кое-что изменило мое мнение.


Я начал работать в небольшом стартапе, в котором нет DevOps разработчиков со знанием Kubernetes (в дальнейшем K8s), и даже будучи старым ненавистником K8s из-за его громоздкости, был вынужден признать, что мне не хватает его программного подхода к деплойментам и доступу к подам. Также должен признать, что азарт от укрощения настолько навороченного зверя давно будоражит меня. И вообще, K8s захватывает мир — так что лишние знания не навредят.

Читать дальше →

Как разработать микросхему, от идеи до результата. Часть 2. Установка программного обеспечения

Reading time9 min
Views11K
В этой статье мы поставим все необходимые инструменты для того, чтобы начать разработку микросхемы. Также мы установим Process Design Kit, про который мы говорили в предыдущей статье.

Напоминаю, что я продолжаю идти к цели — сделать свой собственный Отечественный Процессор (TM). Продолжение процесса разработки можно посмотреть под катом.

Читать дальше →

[Пятничное] Теория Жоп

Reading time5 min
Views242K

Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...

Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.

Читать далее

Мой компьютер на логических микросхемах

Reading time6 min
Views58K

Привет, Хабр. Два года назад, как раз перед началом пандемии, я затеял большой проект: построить компьютер, используя только простые логические микросхемы 74 серии и микросхемы памяти. В этой статье я бы хотел кратко рассказать о том, что получилось, и более подробно об основной части – процессоре.

Читать далее

Переход с iptables на nftables. Краткий справочник

Reading time18 min
Views160K
image

В Debian теперь нет iptables. Во всяком случае, по умолчанию.

Узнал я об этом, когда на Debian 11 ввёл команду iptables и получил “command not found”. Сильно удивился и стал читать документацию. Оказалось, теперь нужно использовать nftables.

Хорошие новости: одна утилита nft заменяет четыре прежних — iptables, ip6tables, ebtables и arptables.

Плохие новости: документация (man nft) содержит больше 3 тысяч строк.

Чтобы вам не пришлось всё это читать, я написал небольшое руководство по переходу с iptables на nftables. Точнее, краткое практическое пособие по основам nftables. Без углубления в теорию и сложные места. С примерами.
Читать дальше →

Прерывания от внешних устройств в системе x86. Часть 2. Опции загрузки ядра Linux

Reading time13 min
Views24K
В предыдущей части мы рассмотрели эволюцию доставки прерываний от устройств в x86 системах (PIC → APIC → MSI), общую теорию и все необходимые термины.

В этой практической части мы рассмотрим как откатиться к использованию устаревших методов доставки прерываний в Linux, а именно рассмотрим опции загрузки ядра:

  • pci=nomsi
  • noapic
  • nolapic

Также мы посмотрим на порядок, в котором ОС смотрит таблицы роутинга прерываний (ACPI/MPtable/$PIR) и какое влияние на него окажет добавление опций загрузки:

  • pci=noacpi
  • acpi=noirq
  • acpi=off

Возможно вы пробовали комбинации из всех этих опций, когда какое-либо устройство не работало из-за проблемы с прерываниями. Разберём, что именно они делают и как они меняют вывод /proc/interrupts.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity