Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
نمایش بیشتر📈 تحلیل کانال تلگرام Bash Days | Linux | DevOps
کانال Bash Days | Linux | DevOps (@bashdays) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 23 797 مشترک است و جایگاه 5 708 را در دسته فناوری و برنامهها و رتبه 28 124 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 23 797 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 16 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -201 و در ۲۴ ساعت گذشته برابر -10 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 20.40% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 11.53% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 4 855 بازدید دریافت میکند. در اولین روز معمولاً 2 744 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 17 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند bashdays, linux, bash, docker, скрипт تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.r...”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 17 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
Что прикольно — можно выполнять команды из файлов. Нахуячил инструкций в файл, скормил этой тулзе, запустил. Вуаля!Ни циклов тебе, ни ансиблов, для быстрых манипуляций — сгодится. Написан на змеях. В коробке много еще всяких фишек, посмотри на досуге ради интереса, авось в хозяйстве сгодится. ➡️ Проект на гитхабе Заявлена поддержка винды, маков, хуяков. tags: #linux #utils — 🔔 @bashdays➡️ @gitgate
tar -czvf bashdays.tar.gz /etc
На выходе получаем годный bashdays.tar.gz. Теперь нужно проверить, что этот архив действительно годный и случайно не побился.
Для этого запускаем:
tar -tzf bashdays.tar.gz
Ключ «t» как раз и запускает необходимый тест. Если все хорошо, то команда вернет статус: echo $? ага выдаёт 0. Отлично!
Теперь ломаем архив:
truncate -s -10 bashdays.tar.gz
И после проверки получаем:
tar -tzf bashdays.tar.gz
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
А echo $? ага выдаёт 2. Ага. Зная это ты можешь тестировать архивы без распаковки и затем заливать их например в s3.
Еще можно протестировать так:
gzip -t bashdays.tar.gz
Ну или банально распаковать в дев/нуль:
tar -xzf bashdays.tar.gz -O > /dev/null
Bash скрипт для проверки может выглядеть так:
#!/bin/bash
# Проверяем, передан ли аргумент
if [ $# -ne 1 ]; then
echo "Использование: $0 <файл архива>"
exit 1
fi
ARCHIVE="$1"
# Проверяем, существует ли файл
if [ ! -f "$ARCHIVE" ]; then
echo "Ошибка: файл '$ARCHIVE' не найден!"
exit 2
fi
# Определяем тип архива
if [[ "$ARCHIVE" == *.tar.gz || "$ARCHIVE" == *.tgz ]]; then
echo "Архив '$ARCHIVE' определён как tar.gz"
FORMAT="tar.gz"
elif [[ "$ARCHIVE" == *.tar ]]; then
echo "Архив '$ARCHIVE' определён как tar"
FORMAT="tar"
else
echo "Ошибка: неподдерживаемый формат архива!"
exit 3
fi
# Проверяем целостность архива
echo "Проверка содержимого архива..."
if ! tar -tzf "$ARCHIVE" &>/dev/null; then
echo "Ошибка: tar.gz архив повреждён!"
exit 4
fi
if [[ "$FORMAT" == "tar.gz" ]]; then
echo "Дополнительная проверка gzip..."
if ! gzip -t "$ARCHIVE" &>/dev/null; then
echo "Ошибка: gzip-архив повреждён!"
exit 5
fi
fi
echo "Архив '$ARCHIVE' проверен: ошибок не обнаружено."
exit 0
Чмодим и запускаем:
chmod +x check_tar.sh
./check_tar.sh bashdays.tar.gz
Такие дела.
Чуть позже покажу какие есть способы проверять целостность архивов которые ты заливаешь в s3. Очень полезно это проверять в рамках бекапов, когда локально оно у тебя все хорошо, а в s3 все нахуй битое-побитое лежит.
tags: #linux #bash
—
🔔 @bashdays➡️ @gitgateРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Макс, 35 лет, ищет работу, в меру упитанный мужчина, обладатель сокровенных знаний, закрыл ящик Пандоры, забрал душу у Шанг Тсунга, прыгал из самолета без парашюта, горел, делал сам себе искусственное дыхание. Опыт ёпта! - Девопс ин де хаус - Программист на yaml - Широчайшие познания в aws - Пайпы, ансиблы, докеры и вся байда - Сети, роутинг, фаерволы - Опыт работы в иностранных компаниях - Часовой пояс? Наверное похуй! - Linux, мониторинг, golang, java, bash…Можно бесконечно это описывать, короче уверенный стек и скиллы выживания в айти за спиной. Макс прошел LF и по его скиллам скажу так — моё почтение, снимаю шляпу! Работа на максимальный результат. Было бы у меня 150к я бы без раздумий забрал его кубы
#/bin/bash
declare -x PATH="/usr/local/bin:/usr/bin:/bin"
declare -i JOB_NUM=$(nproc)
declare DELAY=0.5
exec >&2
for i in {1..50};do # это цикл по всем заданиям
# это команда, выполняемая в фоне
( sleep $(($SRANDOM % 3 +1)); echo ${SECONDS}_sec ) &
while [[ $(jobs -r -p |wc -l) -ge $JOB_NUM ]];do
sleep $DELAY
echo $i
done
done
echo end loop
wait
echo TOTAL $SECONDS sec
Ну, и небольшая пояснялка:
nproc - число "ядер"
DELAY - задержка между проверками окончания выполнения фоновых заданий. Если задание выполняется долго (проверка архива) - можно смело ставить 10-30 секунд.
exec >&2 перенаправили весь вывод на stderr. В реалном скрипте можно убрать. (Как и все echo).
for - основной цикл по списку всех заданий.
sleep $(($SRANDOM % 3 +1)) - собственно фоновое задание. В данном случае пауза 1-3 сек.
echo ${SECONDS}_sec - ввел для примера, чтобы показать, что команд в фоновом задании может быть несколько.
while - как только запустили нужное число фоновых заданий, начинаем ждать окончания одного или нескольких.
echo end loop - как только основной цикл закончился - скрипт можно завершать (но некоторые задания еще могут долго работать).
wait - ожидать окончания всех фоновых заданий.
echo TOTAL $SECONDS sec - время полного выполнения скрипта.
На данный момент все задания завершены. Можно отправлять лог.
man nproc wc help exec jobs waittags: #linux #bash — 🔔 @bashdays➡️ @gitgate
ssh -p2222 user@server
Охуеть как удобно! Ты скажешь - дак можно же в ~/.ssh/config все это прописать и всё вернуть на свои места.
Host bashdays.ru
HostName bashdays.ru
User user
IdentityFile ~/.ssh/shuba
Port 2222
Справедливо. Но зачем жертвовать своим удобством?
У тебя на серверах уже отключен вход по паролю, только ключи, рут тоже запрещен.
Пусть эти писька-боты долбятся и дальше в жопы. Накрайняк воткни fail2ban и устрой им веселую жизу.
Да и боты сейчас умные, если они видят закрытый 22 порт, они сделают nmap -Pn, по итогу получат твой 2222 и продолжат долбиться.
Как не прячься, все равно тебя найдут и насрут в логи.
Получается все манипуляции с портом это бесполезные телодвижения в ущерб удобства.
Соблюдай базовые правила безопасности и всё с твоими серверами будет хорошо.
- отключи вход по паролю - перейди на ssh ключи - запрети вход для рутаЗа всю свою практику я встретил только одну компанию, где меняли 22 порт на какой-то другой, но никакой смысловой нагрузки в этом не было. Так и так эту компанию подломили и спиздили базу данных. Да, еще был компания, где 22 порт открывался через port knocking. То есть нужно было предварительно стукнуться на 3 определенных порта и если последовательность была соблюдена, то открывался 22 порт. Ну тоже такое себе решение в ущерб удобства. Любят люди из пушки по воробьям стрелять. Это как в жизни — мойте руки перед едой. Если соблюдаешь этот базовый принцип, то повышаешь шансы, что твой организм не хакнет кишечная палочка. Такие дела, изучай! tags: #devops #ssh #linuxfactory #security — 🔔 @bashdays➡️ @gitgate
Порой возникает ситуация, когда какой-нибудь раннер отказывается клонировать репу и начинает орать на доступы.Ты проверяешь, видишь в табличке «Заголовок» — gitlab-runner-1 и вроде всё хорошо, ключ прописан и в раннере его приватная часть есть. Чо за хуйня? Тут нам и пригодится команда:
ssh-keygen -l -E md5 -f ~/.ssh/id_rsa
Выполняем ее для ключа с которым подключаемся (работает и для приватной и публичной части одинаково).
И по итогу видим фингерпринт, отпечаток:
2048 MD5:03:62:23:ca:ce:1b:8c:ad:60:1f:66:16:05:43:d8:a7 shuba@server (RSA)
Сравниваем этот отпечаток с тем что прописан в гитлабе/гитхабе и видим что он НЕ совпадает.
А это значит что твой раннер использует не тот приватный ключ для подключения.Фиксим и радуемся. Как фиксить? Прописать актуальную публичную часть ключа в гитлаб/гитхаб. Дело закрыто. tags: #git #devops #ssh #linuxfactory — 🔔 @bashdays➡️ @gitgate
crane cp gcr.io/shlyapa-project/executor:v1.7.0-debug myharbor.ru/shlyapa-executor:v1.7.0-debug
Эта команда скопирует образ executor:v1.7.0-debug из реестра gcr.io в ваш собственный реджистри myharbor.ru.
Просмотр содержимого образа:
Иногда хочется заглянуть внутрь образа и посмотреть, что там внутри.
С crane это проще простого:
crane export executor - | tar -tvf - | less
Здесь мы экспортируем файловую систему образа executor и просматриваем список файлов с помощью команды tar.
Извлечение конкретного файла из образа:
Нужно достать нужный файл из образа? Легко!
crane export executor - | tar -Oxf - etc/passwd
Эта команда извлечет файл passwd из директории etc образа executor и выведет его содержимое.
Сравнение конфигураций двух версий образа:
Хотите узнать, чем отличаются конфигурации двух версий одного образа? Пожалуйста:
diff <(crane config front:1.32 | jq) <(crane config front:1.33 | jq)
Здесь мы сравниваем конфигурации версий 1.32 и 1.33 образа front с помощью утилиты diff.
Получение размера образа:
Интересно, сколько весит ваш образ? Вот как это узнать:
crane manifest gcr.io/buildpacks/builder:v1 | jq '.config.size + ([.layers[].size] | add)'
Эта команда выводит суммарный размер конфигурации и всех слоев образа.
Изменение меток и аннотаций образа:
Вы можете добавлять или изменять метки и аннотации в существующем образе без необходимости его повторной сборки:
crane mutate myharbor.ru/shlyapa-project/bear_ass_image:tag --annotation "org.opencontainers.image.description=New description" --label "version=2.0"
Эта команда добавит или обновит аннотацию и метку в указанном образе.
Также можно доложить tarbar (архивы .tar .tar.gz .tgz), добавить тэг (удобнее чем в дефолтном докер клиенте), задать другой entrypoint и т.д.
И это ещё не всё)
Но это чем я пользую практически регулярно. + это 1 бинарь (на любимой многими GOшечке) что позволяет спокойно его использовать и в системах автосборки и упростить взаимодействие с контейнерам.
tags: #utilites #devops
—
🔔 @bashdays➡️ @gitgate/etc/sshd/) руками и просто откатываешь, то что ты там закомментировал.
Ладно, предположим у тебя есть доступ к руту и ты зашел на сервер.
Запускай команду:
tail -f /var/log/auth.log
Теперь открывай другой терминал и пробуй подключиться по ключам. После того как ты это сделал, возвращайся в терминал где запускал tail и внимательно смотри что тебе пишут.
В 100% там будет ошибка, которая элементарно гуглится. Обычно это просто проблемы с правами на файл ~/.ssh/authorized_keys или папку ~/.ssh/.
Но бывают и другие приколы, например ты используешь не тот ключ или вообще без ключа подключаешься.
Распространенные ошибки:
Invalid user
bad ownership or modes for /home/<username>/.ssh
Authentication failed
Connection closed by remote host
Permission denied
Too many authentication failures
Connection refused
PAM authentication errors
User not allowed
Host key verification failed
SSH protocol mismatch
Banner errors
Brute-force attempts
Timeout
Subsystem errors
Resource temporarily unavailable
Не ссым читать логи и находить нужное. А как только нашел что-то вменяемое — гуглим или скармливаем GPT (как ты любишь).
Кстати китайцы тут DeepSeek запустили, мол убийца GPT. Бесплатная и работает в РФ без приколов. Домашку ребенку решать милое дело.tags: #git #devops #ssh #linuxfactory — 🔔 @bashdays➡️ @gitgate
Первая часть Вторая частьКак научиться договариваться. Часть 3. ㅤ На встречах нужно постоянно быть в фокусе чувств. То есть надо обращать внимание на сколько тебе хуева и на сколько хуево твоему собеседнику. Это очень важная переменная в переговорах. Если ты или собеседник начнете примерять на себя пиджак жертвы, вся твоя охуеть важная встреча заведет прямиком коту в жопу. И ничо хорошего с этого естественно не получится. Ты пострадавший, он пострадавший, включается защитная реакция и вы оба идëте нахуй. А тот кто пострадавший, всегда будет бычить в ответ на все более-менее разумные закидоны. Ты такое сразу почувствуешь, вроде все правильно говоришь, а в ответ получаешь негативное сморкание. Поэтому и надо быть начеку, заранее просекая настроение и чувства твоего собеседника. Как ты читаешь чувства Прикинь простую ситуацию: Шараёбишься ты с женой по магазинам, проходишь мимо прилавка с пивом и такой — бля, надо пивка взять. Потом смотришь на жену и думаешь — тааааккк, полчаса назад я не купил ей сапоги, она в хуевом настроении, взять сейчас пивка без последствий будет пиздец проблематично. Чо делать? Надо купить ей сапоги, а потом взять пивка. Что важно в этом примере 1. Ты прочитал эмоции жены (жена пиздец злая без сапог) 2. Проанализировал ситуацию (если взять пиво, будет больно) 3. Нашел компромисс (купил сапоги) 4. Снял с жены пиджак жертвы (жена пиздец добрая с сапогами) 5. Добился своего без последствий (взял пива, все счастливы) Взрослые ведут себя так-же как и дети. Не купили игрушку, начинают выебываться. Вот и с тобой также, не повысили зарплату, начал хуева работать. Работодатель жертва и ты сука жертва, у всех проблемы. А что нужно было сделать? Правильно! Прочитать, проанализировать чувства и затем ёбнуть именно так, чтобы и ЗП тебе подняли и директор твой понял зачем он поднимает тебе ЗП. Не должно быть никакого негатива, гнева, злости. Каждая сторона должна остаться с мыслью, что все сделано правильно. Не должно быть сомнений! Как-то так, продолжение следует. tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate
Первая часть тут и тамКак научиться договариваться. Часть 2. 🅰️🅰️ Будь готов к встрече заранее! ㅤ Если у тебя намечается какая-то судьбоносная встреча или переговоры, то у тебя проблема! Ты довел ситуацию до края, раз эта встреча имеет место быть. Тебе важен результат. Но почему ты привязал важность этого результата именно к этой встрече? Ща на примере разберем. Короче у меня есть клиент, он от меня съябывается, я назначил ему встречу и хочу спасти наши отношения, хочу дальше подсасывать с него денежку. Вопрос — какого хера я вообще довел ситуацию до такого пиздеца? Мне надо встречаться с клиентом и очко ему облизывать. Я блядь нервничаю. Почему я раньше нихуя не сделал и дотянул до последнего? В чем моя проблема? Ну или как вариант, решил ты устроиться на новую работу, тебя трясет как сучку, майка воняет, пальцы вспотели. Ебаться сраться. Ситуация. Но в чем смысл так нервничать? Если ты за себя знаешь, знаешь пацанов на районе, хуль ссаться-то. Синдром самозванца? Да поебать, на любой товар найдется покупатель, будь ты последним гавном, тебя все равно купят. Суть то тут какая со всех этих историй — если косяков за тобой нет, любые встречи и переговоры пройдут как по маслу. Никто тебе не предъявит. Это как в хату заходить, если нормальный пацан, то в шерсть не выкинут. Проработай план Сядь и подумай, а что вообще будет на этой встрече? Сформулируй понимание. Продумай максимально больше вариантов куда могут зайти переговоры. Тогда тебе не понадобится импровизировать, ты будешь с готовыми кейсами и на любые выпады собеседника, ответишь четко и по делу. Без мычания и ЭЭ, МУУ, ХРЮЮ. Я обычно накидываю структуру разговора и варианты вопросов которые мне могут задать. На эти вопросы я сразу пишу ответы. Конечно не всегда всё идет
Халявный симулятор интернет провайдера. Обжимаем кабеля, конфигуряем циски, микротики, решаем проблемы, выслушиваем дерьмо от жильцов в свой адрес, короче полное погружение.На твоём попечении многоквартирный дом. - Собираем сетевой периметр - Конфигурируем сервера - Сканируем сетку и пингуем девайсы - Бегаем как олень по этажам - Задерживают ЗП и кормят завтраками - Подвалы и засраные голубями шкафы - Девушки которые готовы дать инженеру - Дерем деньги за услуги - Разнообразие клиентов (долбаебы присутствуют) - Вечерами выгораешь и бухаешь - Можно играть с друзьями Игруха пока что в раннем доступе, можно качнуть бесплатную демку. Но демки вполне хватает, чтобы проникнуться атмосферой профессии. Единственный минус, игруха под винду, но для тебя я думаю это не проблема, вполне реально на виртуалке погонять, не требовательная к ресурсам. ➡️ Качать тут, но нужен стим ➡️ Геймлей можно попырить тут tags: #games — 🔔 @bashdays➡️ @gitgate
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
