Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
Mostrar más📈 Análisis del canal de Telegram Bash Days | Linux | DevOps
El canal Bash Days | Linux | DevOps (@bashdays) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 23 803 suscriptores, ocupando la posición 5 708 en la categoría Tecnologías y Aplicaciones y el puesto 28 124 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 23 803 suscriptores.
Según los últimos datos del 16 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -201, y en las últimas 24 horas de -10, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 20.40%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 11.53% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 4 855 visualizaciones. En el primer día suele acumular 2 744 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 17.
- Intereses temáticos: El contenido se centra en temas clave como bashdays, linux, bash, docker, скрипт.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.r...”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 17 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
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
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
