uk
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Відкрити в Telegram

Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru

Показати більше

📈 Аналітичний огляд Telegram-каналу Bash Days | Linux | DevOps

Канал Bash Days | Linux | DevOps (@bashdays) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 23 780 підписників, посідаючи 5 698 місце в категорії Технології та додатки та 28 067 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 23 780 підписників.

За останніми даними від 21 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -218, а за останні 24 години на -1, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 24.89%. Протягом перших 24 годин після публікації контент зазвичай збирає 13.65% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 5 920 переглядів. Протягом першої доби публікація в середньому набирає 3 246 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 24.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як bashdays, linux, bash, docker, скрипт.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Завдяки високій частоті оновлень (останні дані отримано 22 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

23 780
Підписники
-124 години
-367 днів
-21830 день
Архів дописів
Если ты относишь себя к девопс-инженеру или что-то в этом духе — никогда не используй панельки ISPManager/VestaCP и т.п. для настройки серверов. Привет. Короче сторис. День первый. 100 лет назад я устроился в свою первую, местную веб-студию и велком таска на испытательном сроке была — подготовить сервер для клиентского проекта. Нет, меня не закинули в озеро с крокодилами, мне дали инструкцию, как все это дело настроить. Но проблема была в том, что вся настройка сводилась к работе в чистой консоли. В то время я уже был уверенный джун, но никогда не настраивал сервера таким способом, для меня это было — дичь ебаная! На изучение мне понадобилась бы неделя, но обосраться с первой задачей я не мог. Но естественно обосрался. Уже тогда, моя хитрожопость не знала границ. У меня был доступ в панель управления хостинга. И что я сделал? Правильно, пересоздал сервер с готовой Free ISPМ панелькой. Ну а дальше по накатанной, мышкой натыкал за полчаса, домены прописал, пехапе и апачу (фу-фу) завел. Таску в done двинул. Сижу радуюсь, какой же я охуенный! Потратил полчаса на таску, на которую мне выделили 8 часов. Естественно остальное время я пропинал хуи. День второй. На следующий день состоялся релиз клиентского проекта. Но… деплой не прошел, jenkins высрал еррор, мол — пермишен денаед. И понеслась пизда по кочкам. Шеф вызвал на ковер и задал свой любимый вопрос — как такое произошло? Я долго что-то мямлил, ну и каким-то чудом всё вскрылось. Как оказалось, инструкция по которой мне дали настраивать сервак, была отлажена годами и под эту настройку был заточен jenkins. Разработчик просто указывал IP адрес сервера куда выкатить вонючий битрикс и оно выкатывалось. В моём случае, на серваке банально не были прописаны ssh ключи этого злоебучего jenkins’а. Нууу…. и не хватало структуры каталогов, заведенных пользователей, нехватало — ничего! Короче ЖОПА! Ну я же не знал… Хотя мне потом все красиво объяснили, что я лось дырявый. И что нужно делать все по ТЗ, а не как мне оленю захочется. Процессы, все дела. Короче пиздов отхватил знатно, а задачу вернули на доработку. С тех пор, я научился придерживаться условиям задачи. Ну и самое главное нехило так качнул свои знания в Linux. Правда на всё про всё ушла неделя. Позже я накидал bash скрипт, который сам настраивал сервера по шаблону за несколько минут. Опыт дал о себе знать. Про этот скрипт я никому не говорил, хитрожопость. Шеф был тот еще мудень, но его доёбки до любых мелочей выстроили в моей башке правильные нейронные связи. Потом этот шеф написал на меня заяву, якобы я ему бекдоров насувал после увольнения. Но это были не бекдоры, а его дырявые битрикс. Короче разошлись мирно. Через несколько лет я узнал, что он много на кого бочку катил, обижался если от него уходили. Сейчас, когда я умею с закрытыми глазами настраивать чёрта через консоль, я могу позволить себе панельки ISPM/VESTA, потому что понимаю что там под капотом и как это работает. Но в 99% предпочитаю консольку. Олдскулл. Такие дела. Всегда иди туда, где страшно. Чем страшнее, тем больше опыта получишь. А используя панельки, ты остаешься на уровне овоща, никакого развития. Понятно дело, оно проще, быстрее, но минус значительный — деградируешь. У меня кореш активно пользуется панельками, но он не позиционирует себя как девопс, ему этот опыт нахер не нужен, ему нужно рабочее окружение под вордпресс и его пет-проекты. Ладно, давай, хорошей тебе недели и не будь овощем! tags: #рабочиебудни @BASHDAYS

📣 Всегда мечтал спросить «Слышите меня, «Лужники»?», но не было повода? Теперь есть. Мы даем тебе шанс собрать на свой докла
📣 Всегда мечтал спросить «Слышите меня, «Лужники»?», но не было повода? Теперь есть. Мы даем тебе шанс собрать на свой доклад по разработке тот самый стадион. Уже 23–26 мая в «Лужниках» пройдет международный киберфестиваль Positive Hack Days 2, объединяющий ценителей кода, хай-тека, безопасной разработки и защиты приложений. Мы приглашаем тебя выступить в треке Development при поддержке сообщества POSldev. Тебя услышат тысячи глаз зрителей, а твой доклад еще долго будут обсуждать в сообществе разработчиков. Рассказываем, что нужно сделать. 1️⃣ Выбрать тему выступления. Можно из списка, можно свою. 2️⃣ Определиться с длительностью доклада: есть варианты на 15 или 50 минут. 3️⃣ Подать заявку до 1 апреля, на которую мы обязательно ответим. 4️⃣ Выступить перед множеством внимательных и заинтересованных слушателей. Удачи! #PHD2

Не бейт себя ушами по щекам! Вопрос который я задаю на собесах, возможно с подвохом. Частенько ставит в ступор соискателей. Короче. Есть два бесконечных bash цикла:
while :
do
done
while true
do
done
Вопрос: почему в первом случае используется «:», а во втором «true»?
И тут начинается… у людей включается javascript мышление и они начинают троить. Раз есть задача, значит есть и разница в поведении, значит будут какие-то разные ожидаемые результаты. Рисуют мне какие-то формулы, строят гипотезы, даже пытаются доказать свою правоту и послать меня на хуй. Ведь как происходит, пишешь ты годами bash скрипты и даже не задумываешься, а схренали я использую «:» а не «true»? Да потому что оно нахер не всралось про это думать, работает и ок. На самом деле эти циклы делаю одно и тоже. Объяснение простое: Команда «:» всегда возвращает 0. Да «:» это команда, попробуй её запустить, а следом выполнить echo $? и получишь 0. Эта пустая команда, которая ничего не делает и всегда завершается успехом. Ее используют, там где в синтаксисе скрипта требуется какая-либо команда. Для while справедливо требуется продолжение, вот мы и продолжаем с помощью «:» чтобы интерпретатор не засыпал ошибками. Этакая заглушка, для синтаксической корректности. Ну а так как true тоже команда и всегда возвращает статус 0, получается что «:» и true = идентичны. Просто написать двоеточие намного быстрее.
Хотя с другой стороны, если писать true, то код становится более читаемым.
Ноги растут из древних Bourne Shell, где не было встроенных команд ни true ни false. Использовали именно «:». Получается «:» легаси? Ну можно и так сказать. Если хочешь чтобы твои скрипты работали в древних оболочках, используй «:». А если похер, то делай true. Вот что лучше читается?
if true; then
    echo "hello bashdays"
fi
if :; then
    echo "hello bashdays"
fi
Мне очевиднее первый вариант, если не знать за «:», то словишь ступор. Такие дела. Изучай. tags: #linux #bash @BASHDAYS

🚀 Хотите узнать, как отслеживать стабильность развертывания в вашем проекте? ✅Тогда вам обязательно стоит посетить бесплатны
🚀 Хотите узнать, как отслеживать стабильность развертывания в вашем проекте? ✅Тогда вам обязательно стоит посетить бесплатный урок по теме «KPI и метрики непрерывной доставки — отслеживаем стабильность развертывания на примере ArgoCD» от OTUS! Спикер Михаил Чугунов — ведущий DevOps-инженер. ⚡️На вебинаре: - рассмотрим, какие метрики и ключевые показатели нужны для успешного мониторинга и оценивания качества конвейера доставки; - поговорим об инструментах; - на примере ArgoCD разберем несколько кейсов, которые могут пригодиться на «боевых» стендах. ⏰ Занятие пройдёт 26 марта в 20:00 мск в рамках курса «SRE практики и инструменты». Доступна рассрочка на обучение! ➡️Пройдите короткий тест прямо сейчас и получите спец. цену на курс, а также запись урока! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

0xB105F00D, 0xB16B00B5, 0x0B00B135, 0xDEADBABE И снова здрасти. Сегодня на изи, работы валом. Короче эти штуки сверху называю
0xB105F00D, 0xB16B00B5, 0x0B00B135, 0xDEADBABE И снова здрасти. Сегодня на изи, работы валом. Короче эти штуки сверху называются HexSpeak. Это не просто HEX смещение, это запись английский слов, с помощью чисел в шестнадцатеричной системе счисления. Такой вот отголосок из 80х, когда была сцена, демки в 4кб и т.п. Многие персонажи, делали себе подобные ники:
B105F00D = BIOS food B16B00B5 = big boobs 0B00B135 = boobies DEADBABE = dead babe E11TE = elite
Да чо далеко ходить, вон в исходных кодах полно этого говна магических чисел с этими хекспиками. Да и в пасхалки порой их суют.
Про magic numbers писал тут.
Кто всю эту тему раскачал хуй знает, видимо народное творчество. Смысл ты наверное понял, как все это кодируется. Но вкратце: символ «0 - ноль» может быть буквой «О», а «1» = «L» или «I» ну и т.д. Короче это гиковская культура. Теперь смотрим на картинку к посту. Если открыть JAVA файл c классом в редакторе, его первая строка будет выглядеть как «cafe babe». Первые четыре байта. Это магическое число используется для идентификации классов JAVA. А почему вообще «cаfe babe»? На самом деле предположений много разных. Но позже Джеймс Гослинг (батя JAVA) все прояснил. Они вечно тусовались в кофейне, которое прозвали «CAFE DEAD». На самом деле там длинная история, погуглите. Ну и вот, в процессе работы Джеймсу понадобилось заебенить магическое число, а «CAFE DEAD» как раз представляло шестнадцатеричное число. Ну и он его запихал для формата объектного файла. Короче ничо специально не делалось, все произошло в моменте. Про популярные комбинации хекспиков, можешь глянуть на википедии. Давай, завтра увидимся, а на выходные уж отдохнем. tags: #linux @BASHDAYS

❓Часто сталкиваетесь с необходимостью автоматизировать выполнение задач в РЕД ОС, но не знаете, как настроить расписание или
❓Часто сталкиваетесь с необходимостью автоматизировать выполнение задач в РЕД ОС, но не знаете, как настроить расписание или где начать? 🚀 В нашем открытом занятии мы детально разберем, как эффективно планировать задания в РЕД ОС, используя самые надежные и проверенные методы. ✅ Зарегистрируйтесь и научитесь применять команды и скрипты по расписанию, настраивать cron и at, а также создавать таймеры systemd для максимальной эффективности вашей работы. ⏰ Занятие пройдёт 26 марта в 20:00 МСК и будет приурочено к старту курса «Расширенное администрирование РЕД ОС». 🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку! Регистрация! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Всегда задавай себе вопрос — а не хуйню ли я делаю? Кринжатину давно не постил. Исправляюсь. А ты знал… хотя нет, скорее всего не знал. Короче если к слову «Linux» применить XOR шифрование с маской 28, то получится слово PURID = «Чистый».
Это как если к слову «хлеб» применить XOR, то получится «пиво»
Смотри:
echo -e $(printf '\\x%x' $[ 64#{L,I,N,U,X} + 29 ^ 28 ])  
echo -e $(printf '\\x%x' $[ 64#{P,U,R,I,D} + 29 ^ 28 ])
Сразу пример, туда-обратно. Что тут происходит? Если кратно — происходят вычисления. Для слова «Linux» в фигурных скобках применяется Bash Brace Expansion, который приводит слово к такому виду:
`L`,`I`,`N`,`U`,`X`
Арифметическое действие происходит в «$[». А решетка + 64 означает, что числа будут интерпретированы как шестидесятеричные (в системе счисления по основанию 64). В итоге получаем число, которое будет вычислено как комбинация ASCII-кодов символов L, I, N, U, X (в шестидесятеричной системе) + 29, взятое по модулю 28 (используется оператор ^ как побитовое исключающее ИЛИ). Ну и echo -e = разрешаем интерпретацию escape-последовательностей в строке. Кринжатина? Еще какая! А сейчас давай оверхед на perl:
perl -E 'say map { chr(ord($_) ^ 28) } qw(L i n u x)'  
perl -E 'say map { chr(ord($_) ^ 28) } qw(P u r i d)'
Где это можно применить, понятия не имею. Возможно это как-то натолкнет тебя на правильные мысли и ты решишь изучить методы шифрования. Ладно, не смею больше насиловать твой чистый разум. Изучай! tags: #bash #linux @BASHDAYS

Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Securit
Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Security. На какой минуте произошел инцидент и как он повлиял на эфир? Заходи в Telegram-канал продукта, смотри вебинар и ищи багу 😏

Сделать через жопу, это лучше, чем не сделать совсем Иногда требуется проверить поведение скрипта, когда на диске физически закончилось место. Но создавать огромный файл с нулями и забивать всё место — такое себе решение. А как быть? Да всё просто, диск можно забить искусственно, не забивая его. Для этого существует такая поебень как: /dev/full.
/dev/full — это специальный файл устройства, источник данных, который всегда возвращает ошибку «No space left on device».
При попытке записи в /dev/full, тебе выдаст — опа, а места нету! Даже если физически место есть. Это удобно для тестирования софта и обработчиков исключений. Например, пишет твой скрипт в файл какую-нибудь суету, место закончилось. Что будет дальше делать скрипт? Как он себя поведет? Держу пари, будет пытаться продолжать писать. А по-хорошему, он должен сообщить тебе про это, либо корректно завершиться и освободить файл. Смекаешь? Вот пример скрипта:
#!/bin/bash

output_file="data.txt"

while true; do
    # Записываем данные в файл
    echo "bashdays data" >> "$output_file"

    # Проверяем на "No space left on device"
    if ! echo "bashdays data" >> "/dev/full"; then
        echo "Disk is full!"
        break
    fi
done
Скрипт при каждой итерации проверяет заполнен ли диск и если заполнен то выводит сообщение «Disk is full!». Символ «!» в этом примере = инвертирует результат выполнения команды. То есть если запись в /dev/full не вызывает ошибки, то диск еще не заполнен. Echo можешь заменить например на триггер, который тюкнет тебе в телеграм и скажет, что твой скрипт сожрал всё место.
Как взаимодействовать с API телеграм через Bash, я писал тут.
Такие дела. Изучай. tags: #bash #linux @BASHDAYS

Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Securit
Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Security. На какой минуте произошел инцидент и как он повлиял на эфир? Заходи в Telegram-канал продукта, смотри вебинар и ищи багу 😏

Мощные международные серверы VDSina от 4.80 $ / месяц Рады предложить новый зарубежный проект аренды серверов от 4.80 $ / мес
Мощные международные серверы VDSina от 4.80 $ / месяц Рады предложить новый зарубежный проект аренды серверов от 4.80 $ / месяц - https://www.vdsina.com/ru/pricing/standard/?partner=1nkuvyypkz - Доступны все популярные сайты, включая ChatGPT, Netflix, Dell, Intel - Фиксированная цена в долларах США без комиссий - Оплата с российских банковских карт, зарубежных карт, криптовалютой - Русскоязычная поддержка - Подключения к сети интернет — 10 Гбит/сек, возможность бесплатно использовать локальную сеть 100 Гбит/сек - Последнее поколение серверов на базе CPU AMD EPYC 9754 - Подходит для любых задач: работа в браузере, размещение сайтов и ботов - Размещение серверов в Амстердаме Почему я должен верить компании? VDSina работает с 2014 года и сейчас обслуживает более 40 000 серверов. Сомневаетесь? Вот чат в телеграме — задавайте вопросы другим пользователям: https://t.me/vdsina Реклама. ИП Краснов С.В. ИНН: 911104107858, erid: 2VtzqvkHcG4

Начинаем утреннюю гимнастику! Привет, эхх… люблю я издеваться над студентами, в хорошем смысле слова. Поэтому в арсенале всегда имеются задачки со звездочками. Типа с повышенной сложностью. Задачи без хуйни, но с элементом соревнований. Как сейчас модно говорить — челендж. Так намного интереснее, это вызывает азарт. Обучение через геймификацию, все же топ штука. Нужно написать самый короткий Bash скрипт, команду: 1. Вывести на экран таблицу умножения 2. Вывести на экран шахматную доску Ниже я покажу самые короткие решения, которые меня порадовали. Авторы этих решений, 16ти летние пацаны. Видимо мозги еще не убиты кубиками и всратым скрамом.
Перед тем как откроешь спойлера, попробуй сам решить эти задачки и закинуть свои наработки в комментарии. Чьи решения наберут больше реакций/лайков — получат пиздюдей приз.
Чо по плюшкам 1. Аналоговая шаурма/тортик/пиво/другое. Макс закинет тебе приятный бонус на РФ карточку. 2. Статус в чатике - воин дракона (ну или какой сам захочешь). А вот и самые короткие решения от моих студентов. Я предварительно их сломал, копипаста не сработает. Сначала подумай и пофикси, приключений на пару минут.
В комментах закинул скриншоты с рабочих вариантов.
Таблица умножения printf '%3s%3s%3s%3s%3s%3s%3s\n' $[{1..9} * {1..8}] Шахматная доска printf '%b%b%b\n' {1..4}'\b'{{1..5}'\b\e[107m \e[m ',{1..4}'\b \e[107m \e[m'} Дерзай, сегодня наверное еще увидимся. Хорошего тебе дня! А я побежал дальше graylog ковырять. tags: #bash #linux #games @BASHDAYS

In your head, in your head, Zombie, zombie, zombie-ie-ie… Привет. Вчера Юра в комментах спросил за зомби процессы и как с ними деликатно обходиться. Расскажу про свой не деликатный опыт. Поехали. Что такое зомби-процессы?
Зомби-процесс в Linux - это процесс, который завершил выполнение своей работы, но оставил запись в таблице процессов, ожидая, чтобы родительский процесс запросил информацию о его завершении. Пока родительский процесс не сделает это, запись о зомби-процессе останется в системе.
Всё, с теорий хватит. Чтобы потыкать палкой какой-нибудь зомби процесс, нужно его искусственно создать. Пишем на СИ портянку (ниже будет и на Bash):
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
    pid_t child_pid;
    child_pid = fork();

    if (child_pid > 0) {
        sleep(7200);
    } else if (child_pid == 0) {
        printf("Дочерний процесс выполнен.\n");
        exit(0);
    } else {
        perror("Ошибка при вызове fork");
        exit(EXIT_FAILURE);
    }
    return 0;
}
Этот код создает дочерний процесс, который сразу же завершается. Родительский процесс ждет 2 часа и затем завершается без вызова wait(). Вот так мы и получим своего маленького зомби, над которым будем ставить эксперименты. Компилируем и запускаем в фоне этого зомбаря:
gcc zombie.c -o zombie
./zombie &
Либо создаем зомби через Bash:
(sleep 1 & exec /bin/sleep 7200) &
Выполняем команды и наблюдаем zombie процесс:
ps aux | grep Z
Вывод на экран:
root 1669051 Z 14:09 0:00 [zombie] <defunct>
Ага, хорошо, зомби завели. Теперь как это дело всё закилить. Простой kill -9 PID не поможет, так как PID родительского процесса будет отличаться от дочернего. Чтобы найти PID родителя, смотрим:
ps ax | grep zombie
Кто-то грепает по слову defunct, тут уже по потребностям выбирай. Видим все PIDы и родителя и дочернего:
1669050 S+ 0:00 ./zombie
1669051 Z+ 0:00 [zombie] <defunct>
В моем случае PID родительского = 1669050, а дочернего 1669051, который собственно и есть зомбик. Теперь накидываем однострочник:
kill -9 $(ps -A -ostat, ppid | grep -e '[zZ]'| awk '{ print $2 }')
Эта штука найдет все зомби процессы и уничтожит их. Даже не нужно никакие циклы на Bash колхозить. А если требуется регулярно зачищать зомборей, вешаем однострочник на cron и радуемся. Вообще это самый простой способ закилить эту каку. Как это сделать через gdb напишу на следующей неделе. Но сразу предупреждают, там оверхед решение и скорее всего оно тебе не понравится. Хотя через gdb можно оставить в живых родительский процесс и убить только дочерних зомбаков.
В большинстве случаев не стоит обращать внимание на этих зомбаков, эти процессы не жрут ресурсы, а являются лишь косяками программного обеспечения.
У меня зомбаки порой случались с nginx на древней CentOS, но после апгрейда на убунту, все прошло. Если сможешь что-то еще добавить, пиши в комменты, будет всем полезно. Давай, хороших выходных, не болей! tags: #bash #linux @BASHDAYS

Митап про развитие карьеры в Linux Эксперты CROC Cloud Services и приглашенные гости — блогер Антон Павленко и бизнес-директо
Митап про развитие карьеры в Linux Эксперты CROC Cloud Services и приглашенные гости — блогер Антон Павленко и бизнес-директор Southbridge Борис Клименко — обсудят профессиональный путь Linux-специалиста Среди тем: как ускорить прогресс в изучении Linux, с чем откликаться на вакансию, какие вопросы задают на техническом интервью и как расти после оффера. Полезный контент для начинающих спецов, которые хотят развиваться в DevOps Встреча пройдет онлайн, 20 марта в 18:00 (мск). Подробности и регистрация по ссылке

Привет, я тут немного затроил, но без чтива вас не оставлю. Сегодня обсудим что делает kill -0 $pid в Bash скриптах. В принципе логично, команда должна убить какой-то процесс. Но как мы знаем, сигналы начинаются с единицы (1) = SIGHUP, а тут какой-то странный нолик затесался. Что забавно, в официальной документации и всяких манах информации по этому нулю очень мало. В некоторых дистрибутивах, через man 2 kill можно получить такой ответ: If sig is 0, then no signal is sent, but existence and permission checks are still performed; this can be used to check for the existence of a process ID or process group ID that the caller is permitted to signal. Не по-русски, но с переводчиком понятно. Короче с помощью нуля, можно проверить запущен ли процесс и может ли пользователь отправлять ему сигналы.
Более подробно про сигналы я писал в этом посте
Давай к примерам:
sleep 120 &
pid=$!
kill -0 $pid && kill $pid
fg
1. Запускаем в фоне задачу sleep 2. Присваиваем переменной PID процесса 3. Проверяем, если процесс с $pid запущен, то убиваем его 4. Проверяем что процесс убит Здесь мы с помощью нуля проверили наличие запущенного процесса и на возможность отправлять ему сигналы. Если всё ок, то отрабатывает команда kill $pid. А если запустить так:
kill -0 $pid; echo "Exit status: $?"
Получим статус выхода. То есть процесс не запущен и можно смело выходить со статусом 1.
Про статусы и коды возврата можешь почитать в этом посте.
Ну и напоследок проверим, может ли пользователь отправлять сигналы процессы. Запускаем под обычным пользователем:
sudo sleep 120 &
kill -0 $!; echo "Exit status: $?"
В итоге получим:
bash: kill: (1644755) - Operation not permitted
Exit status: 1
То есть запускаем фоновый процесс от рута, а затем с помощью нуля проверяем, сможет ли обычный пользователь убить этот процесс. Как видим - хуй, не сможет. В нормальной жизни я редко встречал скрипты с такими конструкциями и проверками, но тот кто профессионально пишет для opensource это прям мастхев, суют везде, мама не горюй. Хорошего дня, а я пошел дальше диван давить, да лечиться. Увидимся! tags: #bash @BASHDAYS

Научитесь разрабатывать безопасные приложения на курсе Positive Technologies 19 марта стартует обучение на курсе AppSec: Разр
Научитесь разрабатывать безопасные приложения на курсе Positive Technologies 19 марта стартует обучение на курсе AppSec: Разработка безопасного программного обеспечения. Курс разработан совместно с ведущими экспертами в области безопасной разработки и проводится на базе МФТИ. Вы узнаете основные принципы и методологии разработки безопасных приложений, научитесь работать с угрозами, рисками и обеспечивать безопасность на разных уровнях: от контейнерной инфраструктуры до облачной безопасности. Курс будет для вас полезен, если вы являетесь практикующим разработчиком, DevOps-инженером, системным администратором или тестировщиком. О чём ещё важно знать: - Вас ждёт 4,5 месяца обучения. - Лекции и семинары будут проходить 2-3 раза в неделю в 19:00. - В ходе обучения закрепите практику на 3-х практических проектах. Новый поток стартует 19 марта – успейте оставить заявку!

Есть такие команды, они выведут справку по утилите printf:
1. help printf
2. printf --help
3. env printf --help
НО. Каждая команда выведет свою версию справки (почти). То есть результат вывода будет отличаться в разных случаях. Не веришь? Попробуй сам. В первом пункте с help printf всё понятно. Получишь некий огрызок, который трудно назвать страницей помощи. Да и во втором тоже самое. В 1-2 вызывается именно встроенная утилита printf в оболочку Bash. А вот в третьем пункте, выведется достаточно внушительный хелп. И этот внушительный хелп будет от схожей, внешней утилиты printf, которая располагается тут: /usr/bin/printf. Посмотреть все варианты printf можно так:
type -a printf
На экран выведется список:
printf is a shell builtin
printf is /usr/bin/printf
printf is /bin/printf
Ну и везде советуют пользоваться встроенной в Bash командой help, она нативнее и поддерживает почти весь синтаксис оболочки. Тут уже решать тебе. Я очень редко читаю документацию таким способом, предпочитаю сразу загуглить. Ладно. Изучай. tags: #bash @BASHDAYS

Выделенные серверы Vscale от 1490 ₽/месяц Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в прост
Выделенные серверы Vscale от 1490 ₽/месяц Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в простой панели Vscale. Ты найдешь выделенные и облачные серверы в РФ с бесплатной защитой от DDoS-атак на базовом уровне (L3-L4), с 1 Гбит/с безлимитного Интернета, с GPU или без. Плати за час или за месяц, как удобно. В скором будущем планируется запуск облачных баз данных и управляемых кластеров Kubernetes. А пока можешь заглянуть в наш уютный чатик, где быстро можно что-то спросить или поделиться опытом. Посмотри все доступные конфиги в панели Vscale: https://slc.tl/m4t0j Реклама ООО «Селектел» erid 2VtzqukMxRi

Кот насрал в макбук Причем не «На», а конкретно «Вв». Сегодня снова про гавно и котов, которые выставляют айтишников на 200к рублей. Сторис С утра настраивал примитивный kubernetes кластер для клиента, пилил таску с ноута, сидя на унитазе. Ну а как, удалёнка, могу себе позволить. Жил бы один, вообщеб обратно в обезьяну эволюционировал. Короче время дейлика с другим клиентом, бросаю открытый ноут в сортире на коврик, бегу к стационарному компу где установлен zoom. 15 минут слушаю очередную хуиту от лосей, проблема не у нас, а на серверах. Классика. По привычке — выгораю, шлю нахуй, реву. Ну и вот! Вся эта поебень заканчивается, закидываю в кружку кофея, беру вонючий айкос и направляюсь в обсерваторию. А в кабинете меня ждет картина маслом. Ну как маслом… Ноут который я бросил на коврик… Ему был произведен основательный апгрейд + 100500 к бренду. Подробности описывать смысла не вижу. Все предельно просто: кот решил, что посрать на теплоё и закрыть крышку будет нативнее, чем в свой тазик. А новое и тёплое всегда безумно манит. Тем более присутствует интерактив — закрыть крышку. Зона комфорта. Ну ты и сам это прекрасно понимаешь. Я даже не стал визжать как сучка, мой косяк, спровоцировал животное. И так ему яйца уже заскейлили за заслуги. Уличные коты себе такого не позволяли, как этот голубых сука кровей, сеньор блядь помидор. Напомнил знакомого, который, любил гадить в лифтах. Сейчас кстати работает JAVA разработчиком. Тоже сеньор, лифты заменил на GIT репозитории. Забавно, но ситуация страшная. Сначала комбик за 50к, потом стена и диван в зале, а сегодня макбук за 200к. Хотя сам кот стоил всего 5к. Сомнительно конечно вложение было. Что дальше, хуй знает. Снова выгорел, поревел…
Такое происходит только в фильмах, но увы, порой я думаю, что живу в каком-то сценарии Тарантино.
Проанализировав произошедшее, в очередной раз убедился, что от apple и кубернейтсов одно зло. Linux / Windows / Android / Bash / Ctypes наше всё. Таску в джире пометил как кот - Blocked, а ноут выставил на авито. Так что будь аккуратнее если решишь купить б/у железяку, возможно ранее в её красиво насрали проапгрейдили. В комментах фото этого диверсанта. Результат апгрейда выкладывать не буду, у меня психологическая травма. Но если есть любители прекрасного, пишите Максу, он скинет. И всегда помни — даже если кот кастрирован, с его жопой ты ничего не сделаешь. Максимум сможешь провести ретроспективу по методологии «Scrum». Говорят в айти охуенно весело. Справедливо! tags: #рабочиебудни @BASHDAYS

Лучшие подкасты про саморазвитие в IT Как понять, каких навыков тебе не хватает для карьерного роста? Как эти навыки развиват
Лучшие подкасты про саморазвитие в IT Как понять, каких навыков тебе не хватает для карьерного роста? Как эти навыки развивать и какие курсы выбрать? Чему нужно учиться, чтобы выдержать конкуренцию с нейросетями? Нашли ответы на вопросы в выпусках подкаста: ⭐️Обучение в IT: как его выбрать и совмещать с работой Из подкаста узнали, как не ошибиться при выборе образовательного трека, какие привычки помогут сделать самообразование приятной рутиной и как распознать бесполезные курсы. ⭐️Нейросети ВМЕСТЕ с разработчиками или ВМЕСТО них Гости рефлексируют над стремительным проникновением нейросетей в IT и обсуждают, как специалистам адаптироваться и оставаться востребованными. ⭐️ Развитие личного бренда в IT В выпуске обсудили, почему важно развивать личный бренд и как найти баланс между развитием реальных навыков и самопрезентацией. Смотрите выпуски на YouTube или слушайте на аудиоплощадках. «Сегодня на ретро» — подкаст @Selectel о повседневных проблемах в карьере IT-специалистов. В нем практикующие разработчики, техлиды и продакты делятся собственным опытом и дают советы по развитию софт- и хард-скиллов. Реклама ООО «Селектел» erid 2VtzqvPJvqi