Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
Больше📈 Аналитический обзор Telegram-канала Bash Days | Linux | DevOps
Канал Bash Days | Linux | DevOps (@bashdays) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 23 803 подписчиков, занимая 5 708 место в категории Технологии и приложения и 28 124 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 23 803 подписчиков.
Согласно последним данным от 16 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -201, а за последние 24 часа — -10, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 20.40%. В первые 24 часа после публикации контент обычно набирает 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) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
Sf1nk5 подготовил внушительную статью про CrowdSec. За что ему объявлена благодарность.
CrowdSec — это система защиты от кибератак, которая использует анализ поведения и коллективную защиту. Она похожа на Fail2Ban, но более мощная и современная.ㅤ Сюда она естественно не влезла, да и с форматированием тут беда, поэтому пришлось поднять сопроводительный блог для таких целей. Так что запасаемся кофеём/пивком и камон 👇 ➡️ Всё что нужно знать про CrowdSec tags: #security — 🔔 @bashdays➡️ @gitgate
предыдущие посты о том, что это такое ищи по тегу #badpracticesВ прошлом посте мы рассмотрели файлы, которые начинаются с дефиса и то, что команда
cp их может воспринимать как флаг. Ну дак вот.
Как это победить мы с тобой уже знаем, завернуть в кавычки и кинуть два дефиса:
cp -- "$file" "$target"
Что означают 2 дефиса опять же смотри предыдущие посты по тэгу #badpracticesОк. Минус этого метода — его нужно сука запомнить и не забывать использовать каждый раз при передачах файлов. Вообще не интуитивно. Второй способ разруливания этой ситуации — указать путь к файлу. Смотри. Если перед именем файла добавить
./ (означает текущую папку), то даже если файл называется -bashdays.txt он будет передан в команду правильно.
for i in ./*.txt; do
cp "$i" /tmp
done
В этом случае cp не затроит и выполнит задуманное.
Ну и еще вариант на закуску.
Можно просто ебануть ./ перед именем файла при передачах в команду:
for i in *.txt; do
cp "./$i" /tmp
done
Этот варик немного сэкономит ресурсы, тут не требуется дополнительных вычислений для обработки имен файлов. Но при условии, что у тебя немного файлов. Если их будет дохуя, то увы, будет тормозить.
Выводы
Лучший вариант — всегда указывать путь к файлу (относительный ./ или полный /home/user/...). Это избавит тебя от большинства проблем с файлами которые начинаются с дефиса.
tags: #bash #badpractices #bestpractices
—
🔔 @bashdays➡️ @gitgateЕстественно будет серебряная пуля — как сделать правильно.Ну чё, готов? Тогда поехали! Почему при копировании файлов, необходимо использовать кавычки? Допустим, у тебя есть переменная
$file, в которой как ни странно хранится имя файла. И есть $target, в ней мы указываем путь куда скопировать файл.
Если мы пишем:
cp $file $target
То возникает проблема, Если имя файла содержит пробелы, то Bash ясен хуй разобьет эту строку на пробелы:
file="You can suck my dick.avi"
Команда превращается в такое:
cp You can suck my dick.avi /tmp
И это воспримется интерпретатором как копирование нескольких файлов:
You
can
suck
my
dick.avi
Дальше. Если в имени файла ($file) будут символы *, ?, [ ], то это интерпретируется как шаблон для поиска файла.
Так называемое — Pathname Expansion.Ага. Теперь если в имени файла содержится символ
-, к примеру твой файл называется: -bashdays.txt, то команда cp расценит, что ты указал флаг и выебет тебя в глаз.
cp -bashdays.txt /tmp
cp: ну ты ебать инвалид -- 'h'
Try 'cp --help' for more information.
Как правильно?
Вот так:
cp -- "$file" "$target"
Кавычки в данном контексте предотвратят разделение на пробелы и ошибочное расширение подстановок.
Но если сделать так:
cp "-bashdays.txt" "/tmp"
cp: еще и баран -- 'h'
Try 'cp --help' for more information.
Чтобы не быть «инвалидом и бараном» нужно после cp вхерачить --.
Эти два тире напомнят cp что дальше идут только файлы, а никакие-то флаги.
Каков итог?
Думаю ты и сам выводы сделал. Всегда пиздярь кавычки вокруг переменных в Bash.
Даже если работает без кавычек это ничего не значит, не ровен час получишь по ебалу.
Например твой скрипт будет выполняться в другом окружении, где $IFS (разделитель слов) изменён или файлы содержат пробелы и спецсимволы.В общем сразу мотай на ус эту тему, подстели соломку и пиши скрипты как профи. tags: #bash #badpractices #bestpractices — 🔔 @bashdays➡️ @gitgate
xxx yy "zz zz zz zz"Видно, что однословные поля разделены пробелом, а многословные заключены в кавычки. Распарсить такой файл на awk можно, но не быстро. Нужно писать код. А на bash - вроде просто:
set -- xxx yy "zz zz zz zz"
echo $# $1 $2 $3
# 3 xxx yy zz zz zz zz
Проверил — вроде работает. Классно, пишу цикл, проверяю на файле — не работает. Упрощаю код до минимума.
REC='xxx yy "zz zz zz zz"'
set -- $REC
echo $# $1 $2 $3
# 6 xxx yy "zz
Очевидно, разбились по пробелам. Перепробовал кавычки — не выходит. Не придумал ничего лучшего, как использовать конструкцию:
REC='xxx yy "zz zz zz zz"'
eval "set -- $REC"
echo $# $1 $2 $3
# 3 xxx yy zz zz zz zz
Все работает как надо.
После этого я решил распарсить реальный лог apache.
Все работало прекрасно, но на определенной строчке все зависало на несколько секунд, а потом продолжалось. Начал разбираться, и когда понял, что происходит — чуть не поседел.
Там была инъекция:
$(ping${IFS}-c${IFS}6${IFS}aa.bb.cc.dd)
Переменная IFS использовалась вместо пробела. Короче, команда выглядела так:
ping -c 6 aa.bb.cc.dd
Ничего страшного. Просто пинг 6 раз на адрес. И этот пинг ИСПОЛНЯЕТСЯ, вызывая задержку. Но команда могла быть и другой. Спасибо дядям за доброту.
Проблема возникла из-за того, что оператор eval разворачивал не только мою переменную, а все переменные, в том числе и из лога, попутно выполняя команды.
В общем, если я раньше считал оператор eval — бесполезным, то теперь я считаю его вредным.
Вот такой опыт.
tags: #bash #рабочиебудни
—
🔔 @bashdays➡️ @gitgate192.168.1.0/24)
2) LAN (Внутренняя сеть на сервере) (vlan 100) (172.16.1.0/26)
3) Mgmt (сеть управления + сеть передачи служебной информации для серверов) (vlan 200) (172.16.1.64/26)
4) Сеть внутренняя недоверенная (wifi, printer, умные колонки, современные TV и другие недоверенные устройства) (vlan 300)(172.16.2.0/25)
5) Телефония (если есть) (172.16.2.128/25)
На каждую сеть создается свой пул ip-адресов.
Теперь можно приступать написанию схемы сети.
Примерную схему сети смотри на Картинке 1 👆
➡️ Теперь остановимся поподробнее на проектировании сети на гипервизорах:
Смотрим Картинку 2 👆
При настройке делаем бриджи на всех сетевых картах.
Но только на 1 интерфейсе создаем ip адрес (тот интерфейс, который будет находиться в vlan 200 (mgmt vlan).
Соответственно при создании виртуальных машин на самих серверах создаем интерфейсы и на этих вм добавляем ip.
При работе между серверами для работы используется mgmt интерфейсы.
Доступ к серверам будет осуществляться только с компьютера jump-client.
Все остальные сервера будут размещаться в соответствующих сетях.
В результате создается меньше коллизий на сети и сеть становится более защищенной.
Я бы эту статью бы не написал, если бы были нормальные статьи про разделения сетей и для чего это надо.
tags: #networks
—
🔔 @bashdays➡️ @gitgateПривет, меня зовут Олег, мне 22 года, представь что ты технический директор, я пришел к тебе на собеседование на вакансию «переворачиватель пингвинов», проведи мне техническое собеседование по этим требованиям. Ты будешь задавать мне вопросы, а я буду на них отвечать.Ну и копипастишь требования с ХеХеру. Всё блядь! В ответ получаешь вопросы, отвечаешь на них, получаешь оценку, при необходимости запрашиваешь правильные ответы и ссылки на литературу и источники. Примеры вопросов из вакансии на девопс-джуна: - Какие типы плейбуков вы создавали? - В чем разница между
git rebase и git merge
- Какие лучшие практики по оптимизации Docker-образов?
- Чем отличается контейнер от виртуальной машины?
- Что такое GitLab Runner и как он работает?
Можешь сразу в нескольких нейронках это замутить либо запросить дополнительные вопросы. + Можешь запросить тестовые задания и спокойно их порешать.
Ну и самое главное в конце не забудь запросить у него — рекомендации, по тому как сделать это лучше.
После таких тренировок, можно кидать отклик и получать 100500 офферов в секунду. Но при условии если ты реально проникся.
В общем еби эти нейронки в хвост и гриву, хоть что-то полезное они для тебя сделают.
С пятницей, береги себя, ну и хороших тебе предстоящих выходных!
tags: #рабочиебудни
—
🔔 @bashdays➡️ @gitgateBASHDAYS дает скидку 15%.
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446В общем пепякой доволен, подкинул на него еще 4 терабайта винтов по USB и вообще сказка.Чё я на нём кручу: Qbittorrent - та самая качалка-кончалка, в основном киношки и сериалы на ночь, а больше от нее ничего и не нужно. Jellyfin - морда для просмотра киношек, подключил нативный DLNA и вообще сказка, смотрим мультики по всей квартире да и для родственников удаленный доступ расшарил (заебался правда с микротиком, не моё железо). Сами добавляют в кончалку свои сериалы и потом спокойно наслаждаются прокрастинацией. Sonarr - сервис для автоматической загрузки сериалов, дада, сам отслеживает выход новых серий и скармливает их в Qbittorrent. Прям конфета! Radarr - сервис для автоматической загрузки фильмов, аналогично Sonarr, само там всё шуршит и наполняем медиатеку. Jacket - индексер/интегратор торрентов для Sonarr и Radarr, хуй знает зачем, прикручивал по мануалам, видимо нужная штука.
Существует еще Lidarr для музыки, но мне подписки яндекса хватает с головой. Ну и еще куча всяких типа Animarr'ов, Hahuyar'ов.И да, чтобы заработал Sonarr и Radarr пришлось пустить lxc контейнеры через определенные трехбуквенные сервисы (сделал через wireguard). Но можно и через проксю, там есть для этого все необходимые настройки. Чтобы настроить всю эту связку нужно просто погуглить, мануалов дохуя. Syncthing - сервис синхронизации файлов, делаю бекапы с виндовых машин (документы, фотки и т.п.) на те самые USB жесткие диски которые подключены к коробочке с Озона.
Но чет при синке 400 гигов оно раком встает (на винде ребутится падла), буду позже с этим разбираться. Ебучий оупенсорц!Pi-Hole - рекламорезка, поставил, потыкал, хуй с ним, пусть болтается. В основном использую как локальный DNS сервер. Сделал домены вида:
torrents.local, sonnar.local и т.п.
Nginx manager - точка входа на все сервисы, забил локальные домены из Pi-Hole, а дальше все само проксируется куда нужно. Ушел от айпишников, как-то поудобнее стало.
Samba - подключены шары с USB винтов, раздаю на винду, хуй знает зачем, видимо остатки легаси с малины переехали.
Runners - это просто lxc контейнер с раннерами, гитлаб, гитеа и т.п. Ничего лишнего, само что-то там делает и в ус не дует.
Dev - контейнер для разработки, пишу в нем скрипты, гоняю Большая часть контейнеров поднята одной командой с сайта Helper ScriptsТакие дела… А что у тебя на proxmox крутится? Пиши уже в комменты! tags: #рабочиебудни #proxmox — 🔔 @bashdays➡️ @gitgate
aria2.
ㅤ
Короче это консольная мильти-кончалка, поддерживает протоколы HTTP(S), FTP, SFTP, BitTorrent и Metalink. Реализована многопоточность и работает с чанками.
Видал да!
Авторы софтины обещают x10 к скорости скачивания даже если у тебя интернет работает как гавно и теряются пакеты.
Ну хуй знает, у меня и так интернет быстрый, попробую потом на 3g потестить.Можно алиас сделать типа:
alias wget="aria2 -x 10 $1"
И заменить вегетину на эту вертихвостку c 10тью потоками.
Помимо скачивания, с помощью ключей можно чёрта накрутить, всякое сжатие, проксирование и т.п.
Больше инфы тут:
➡️ Официальный сайт
➡️ Репка на гитхабе
Потыкай, с виду штука годная, почти 40к звезд на гитхабе.
tags: #utilites #linux
—
🔔 @bashdays➡️ @gitgate
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
