ar
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

الذهاب إلى القناة على Telegram

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

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Bash Days | Linux | DevOps

تُعد قناة Bash Days | Linux | DevOps (@bashdays) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 23 792 مشتركاً، محتلاً المرتبة 5 701 في فئة التكنولوجيات والتطبيقات والمرتبة 28 128 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 23 792 مشتركاً.

بحسب آخر البيانات بتاريخ 17 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -202، وفي آخر 24 ساعة بمقدار -5، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 21.91‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 12.48‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 5 213 مشاهدة. وخلال اليوم الأول يجمع عادةً 2 971 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 21.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل bashdays, linux, bash, docker, скрипт.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 18 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

23 792
المشتركون
-524 ساعات
-277 أيام
-20230 أيام
أرشيف المشاركات
Хелоу мая диа френдз! Я повидал дохуя bash скриптов по зачистки старых бекапов, какие-то работают заебись, какие-то создают лишь видимость. Заебись когда бекапы у тебя лежат на той же машине где ты их делаешь. Запускаешь по крону команду rm и паре с find и зачищаешь ненужное гавно которое старше определенного времени. А чо делать когда бекапы «правильно» заливаются в облако s3 по протоколу swift? Там find с rm уже не прокатит. Можно конечно изгаляться, но я в рот ебал изобретать очередной велосипед. Для этих целей отлично подходит rclone, кто бы блядь мог подумать. Работает так:
/usr/bin/rclone --config ~/.config/rclone/rclone.conf \
--log-file /var/log/rclone-trasher.log \
-v delete selectel:backups/1c/ --min-age 3d --rmdirs
Показываем где лежит конфиг, конфиг представляет нечто такое:
[selectel]
type = swift
env_auth = false
user = bashdays
key = fuckyou
auth = https://auth.selcdn.ru/
endpoint_type = internal
Пишем непотребства в лог файл, чтобы потом посмотреть что там в кроне навыполнялось. Указываем где чистим бекапы, задаем сколько бекапов нам оставить, в примере я оставляю за 3 последних дня. Бекапы у меня в каталогах по датам, добавляю ключик rmdirs. Вешаем на крон и идем дальше работать пинать хуи. По моему отличное решение, и даже думать не пришлось. Пользуйтесь на здоровье! tags: #devops — 🔔 @bashdays➡️ @gitgate

Selectel Tech Day — конференция для айтишников и бизнеса 10 октября Selectel проведет флагманскую конференцию — самую масштаб
Selectel Tech Day — конференция для айтишников и бизнеса   10 октября Selectel проведет флагманскую конференцию — самую масштабную в своей истории. В этом году будут обсуждать главные тренды в сфере железа, облачных сервисов, информационной безопасности и ML — каждое направление связали с определенной цифровой стихией и обыграли в докладах.   В программе: ✔️ эксклюзивная презентация ✔️ экспертные доклады ✔️ нетворкинг ✔️ активности на стендах ✔️ бесплатный мерч ✔️ афтепати   Где? Онлайн и офлайн в Центре событий РБК, Москва   Регистрируйтесь, чтобы не пропустить одно из главных IT-событий года: https://slc.tl/s5q3v Реклама АО «Селектел». ИНН: 7810962785 Erid: 2VtzqvwgbiF

Я тут решил поделиться впечатлениями. И хорошими и не очень. Вобщем, все в дом BashDays. Недавно мне дали премию за написание статей для BashDays. Сразу скажу, что на нее я не рассчитывал, поэтому охренел обрадовался и решил потратить ее на что-нибудь бесполезное, но приятно-интересное. В общем, прикупил себе Безвентиляторный ПК Intel Celeron N2840 @ 2.16GHz 8Gb 128Gb 2 Lan 1Gb wi-fi Intel® Centrino® Advanced-N 6205. (далее писюк) Проц выбрал именно такой из-за TDP 7W. На машине стояла Win10. Ну, я ее включил, залез на youtube. Измерил потребляемую мощность 12-15 Вт. Ну, короче, работать можно, если без претензий Корпус грелся, но я долго не работал. Снес. Поставил pfsense. Установилась легко. Работает шустро. Но я не смог поднять точку доступа WI-FI. Интерфейс поднимается, но режим точки доступа не доступен. Немного погуглил, народ пишет, что pfsense и wi-fi AP не очень дружат, и рекомендуют просто купить дрочку доступа. Ой, как забавно опечатался. Даже исправлять не буду. Снес. Поставил debian 12. Затем hostapd, dnsmasq, iptables. В общем, точка доступа поднялась с танцами и бубном, но, проверка скорости с помощью iperf3 показала, что ноут с этой точкой доступа работает на скорости около 35-37 Мбит/с. Между тем, мой старичек keenetic 4G (KN-1210) RU выдает 80-90 Мбит/с. И это включая интернет канал до Нидерландов. В общем, полное разочарование. Да, это на 2.4 ГГц. На 5 мне попробовать было нечем. Снес. После этого решил на пробу установить ipfire. Дистрибутив, специально заточен для периметрового маршрутизатора, но по функционалу, который можно доставить очень напоминает openwrt. (C самой openwrt я знаком чисто теоретически). Про ipfire раньше никогда не слышал, прям сегодня почитал, и решил попробовать. Знаете, впечатление очень даже ничего. Ставится просто, web-интерфейс довольно удобный. (За исключением правил firewall. Но это я после pfsense такой привередливый:-) Порадовала документация на сайте. Все очень простым английским языком. Да, один косяк. При установке, вначале указал язык русский и после перезагрузки в инсталляторе все тексты были квадратиками. Что-то парни со шрифтами намудрили.) Пришлось переставлять. Поставил, поднял точку доступа с пол-оборота, замерил скорость - 35-37Мбит/с. Грешу на wi-fi адаптер. Заменить полноценно Keenetic не получилось. Да, из самого неприятного, писюк греется. Я пробовал поставить частоты по минимуму, производительности хватает, но все равно греется, хотя и значительно меньше. Для проца температура совсем ерундовая, но для ссд и материнки условия не очень комфортные. Видимо придется колхозить вентилятор, тем более отверстия под 60мм есть. Буду рад послушать о вашем опыте использования подобных игрушек. О проблемах и путях решения. Пишите в комментах, кто для чего использует и какой софт. tags: #рабочиебудни © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

Хотите узнать, как автоматизировать процессы CI/CD и снизить порог входа в DevOps? Тогда присоединяйтесь к вебинару «Как эффе
Хотите узнать, как автоматизировать процессы CI/CD и снизить порог входа в DevOps? Тогда присоединяйтесь к вебинару «Как эффективно построить конвейер DevOps». Когда: 12 сентября в 11:00. Виталий Астраханцев, руководитель разработки инструментов DevSecOps в СберТехе, расскажет об инструменте Orchestra R, который позволяет настраивать конвейеры в режиме low-code. Поговорим о том, почему шаблонизация этапов так эффективна, и сколько DevOps-инженеров понадобится для создания конвейера с сотней шагов. Кому будет полезен вебинар: · PO/CPO, CTO · руководителям ИТ-отделов · руководителям разработки · Delivery Lead · DevOps-инженерам Регистрируйтесь сейчас, чтобы не потерять событие. До встречи на вебинаре!

Оказывается не все знают как в гитлабе сделать приватную репу публичной. ➡️ На примере облачного гитлаба: Пиздуем в ПроектSettingsGeneralVisibility, project features, permissionsProject visibility Выбираем из выпадающего списка: private, public, internal Если у тебя облачный гитлаб с группами, читай дальше. ➡️ На примере Self-Hosted: В отличии от облачного гитлаба, здесь недоступны варианты public, internal. Это многих смущает и вводит в ступор. Если коротко — сгорают жопы! Открываем проект c репозиторием, вверху слева будет название группы, у меня оно linuxfactory и следом название проекта. Тыкаем на название группы, попадаем примерно на такой урл: https://git.bashdays.ru/linuxfactor Нажимает три точки справа сверху появляется всплывашка, выбираем → Group Settings. Находим: Visibility level и выставляем видимость группы public. Пиздуем опять на страницу проекта с репозиторием → SettingsGeneralVisibility, project features, permissionsProject visibility И о чудо! Активируются пункты public и internal. Если чо-то забыл, добавляй в комменты, тема реально муторная и многие на эти грабли частенько наступают. Да чо греха таить я сам прихуел от таких пиздостраданий. Пользуйтесь! tags: #devops — 🔔 @bashdays➡️ @gitgate

Хотите улучшить свои карьерные возможности в администрировании Linux? Приходите на вебинар «Основы балансировки нагрузки в An
Хотите улучшить свои карьерные возможности в администрировании Linux? Приходите на вебинар «Основы балансировки нагрузки в Angie и Nginx». Вы будете знать: 1️⃣ архитектуру балансировки нагрузки в веб-приложениях; 2️⃣ различные методы балансировки нагрузки в Nginx и Angie, а также различия в этих продуктах; 3️⃣ отказоустойчивость. Информация очень полезна для администраторов Linux, веб-разработчиков и всех, кто использует Nginx в проектах. БОНУС: Регулярные выражения для системного администратора 👉 https://otus.pw/ufEA/ Курс Администрирование Nginx/Angie научит: 1️⃣ Настраивать Angie и Nginx как фронт веб-серверы для любых приложений. 2️⃣ Оптимизировать серверную и клиентскую производительность. 3️⃣ Конфигурировать балансировщики нагрузки L4 (TCP, UDP) и L7 (HTTP/HTTPS). 4️⃣Управлять логированием и оптимизировать HTTPS-соединения. И другое! 🦸‍♂️Спикер Николай Лавлинский - опытный разработчик, руководитель, преподаватель и автор каналов «Ускорение сайтов» и «Поддержка сайтов». Встречаемся 16 сентября: https://otus.pw/ufEA/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Здрасти. Еще один частый вопрос с проекта Linux Factory:
Я собрал докер имейдж, а контейнер вечно в ребуте либо вообще не запускается, чо делать и как отлаживать?
Давай симулируем ситуацию и попробуем что-то с этим сделать. Для начала соберем имейдж, это будет простой nginx + свой конфиг, который будет копироваться с локальной машины в имейдж. Создаем на хостовой машине пару файлов: Dockerfile:
FROM nginx:latest
WORKDIR /etc/nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            return 200 'Hello, Docker!'
            add_header Content-Type text/plain;
        }
    }
}
Собираем имейдж:
docker build -t my-nginx .
Ждем, на экране бежит куча всякого непотребства. Это нормально. Ждем… Проверяем:
docker images
Ага, все ок, выплюнуло что-то вроде:
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
my-nginx     latest    b844ef77daa3   33 seconds ago   188MB
Запускаем:
docker run -d -p 80:80 my-nginx
Проверяем:
docker ps
Хуй там плавал. Ничо не стартануло… ошибок нет, куда смотреть? Если контейнер вообще не запускается, то для начала смотрим логи: 1. Узнаем состояние контейнера:
docker ps -a
Видим хуй с маслом: Exited (1) 4 minutes ago 2. Смотрим логи:
docker logs --follow <id or name>
В <id or name> подставляем айдишник либо имя контейнера: В логах видим ошибку:
 invalid number of arguments in "return" directive in /etc/nginx/nginx.conf:15
Вот! С ней уже можно работать. Получается мы посмотрели логи, даже для незапущенного контейнера. Пиздуем в nginx конфиг и видим, что в 14й строке проебали точку с запятой. Дополнительно можно посмотреть коды выхода:
docker inspect <id or name>
Например, если код выхода ExitCode = 137, значит не хватило ресурсов, подкинь памяти и все взлетит. Наверное… Это основные моменты отладки. Ну а если контейнер все же запустился, но что-то не работает, сначала повторяем все вышенаписанное. Ну и дополнительно можешь подключиться к нему в интерактивном режиме:
docker exec -it <id or name> bash/sh
Подставляешь id/name контейнера и выбираешь шелл, частенько bash и коробки не установлен, поэтому как вариант запускаешь sh. А для визуализации слоев используем утилиту dive Установка dive:
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
Открываем имейдж на анализ:
dive <id or imagename>
Подставляем id или имя — ИМЕЙДЖА (не контейнера) Смотрим, охуеваем, закрываем. Еще можно глянуть конкретный файл в контейнере:
docker exec -it <id or name> cat /etc/nginx/nginx.conf
Либо скопировать его себе на локальную машину:
docker cp <id or name>:/etc/nginx/nginx.conf /tmp
Поправить и скопировать обратно в контейнер:
docker cp /tmp/nginx.conf <id or name>:/etc/nginx/nginx.conf
Перезапускаем контейнер с новым конфигом:
Прикол в том, что тебе не нужно билдить новый имейдж, ты делаешь правки прям в контейнере.
docker exec <id or name> nginx -s reload
Такие дела! Если знаешь еще хаки и способы отладки контейнеров/имеджей, пиши в комменты, будет полезно! tags: #devops #debug #docker@bashdays@gitgate

🖥Для многих ИТ-компаний, которые занимаются разработкой софта, одним из важнейших элементов является лицензирование ПО. Оно
🖥Для многих ИТ-компаний, которые занимаются разработкой софта, одним из важнейших элементов является лицензирование ПО. Оно выполняет не только функцию защиты от пиратства, но и является хорошим средством заработка. Гибкое лицензирование помогает продавать ПО эффективно и соответствовать меняющимся требованиям рынка. 🐪20 сентября в Москве и 4 октября в Санкт-Петербурге состоится конференция Guardant Day – мероприятие для обмена практическим опытом по вопросам обеспечения технической защиты, выбора бизнес-модели лицензирования и определения стратегии развития продукта. Что мы подготовили для участников: 🔘Круглый стол, посвященный мерам государственной поддержки вендоров ПО. 🔘Кейсы по работе с системой защиты и лицензирования от разработчиков ПО: практические рекомендации. 🔘 Экспертные доклады о технологиях, инструментах и продуктах. 🔘Презентация новой версии Guardant SLK 4.0 и планы по развитию. 🔘Сессия для ИТ/ИБ-маркетологов с экспертными докладами и обменом опытом. 🔘Технические стенды с возможностью увидеть продукты в действии. В этом году мероприятие пройдет: 🌆20 сентября в Москве. Регистрация тут 🌉4 октября в Санкт-Петербурге. Регистрация тут В обоих городах начало деловой части в 14:00. Участие в мероприятии бесплатное по предварительной регистрации. Подробнее о мероприятии в ТГ-канале Guardant TechClub erid LjN8K93Eg

Обычно bash используется для неинтерактивного выполнения скриптов. А что делать, если хочется чего-то интерактивного? Можно использовать оператор read. По умолчанию он читает ту херню, которую пользователь пишет на клавиатуре. Ну, не всю херню. В общем, тут возникают проблемы. Даже не так. ТУТ ВОЗНИКАЮТ ПРОБЛЕМЫ. Проблем несколько, и они нихрена не решаются простыми способами: 1. Только простые клавиши генерят одиночные коды типа буквы, цифры, печатные символы. 2. Стрелки, HOME, END... и особенно функциональные клавиши (F1-F12) генерят многобайтные коды. 3. Клавиши TAB ENTER SPACE вообще нихрена не выдают. 4. Коды нажатых клавиш зависят от терминала, который у вас эмулируется. 5. Очень много клавиш используется в качестве "горячих", поэтому их обработка производится раньше, чем их обработает bash. В общем - если вы умный человек - не используйте bash для обработки функциональных клавиш. А если похожи на меня - приведу функцию, которая помогает минимизировать проблемы. Поскольку не все клавиши генерят печатные коды, я не придумал ничего более умного, чем конвертнуть коды в hex-последовательность. Поверьте, работать со строкой в 10 символов проще, чем с управляющими символами. Понятней. Программа более-менее обрабатывает совместное нажатие CTRL+, ALT+. Не обрабатывает нажатия нескольких клавиш.

#!/bin/bash

function GET_KEY(){
  declare K1 K2 K=
  declare -i i
  read -rsn1 K1;read -rsn4 -t 0.001 K2
  if [[ "$K1" != $'\x1b' ]];then
    K2=
  fi
  K1="${K1}${K2}"
  i=${#K1}
  while ((i--));do
    printf -v K2 "%02X" \"${K1:$i:1}\"
    K=${K2}${K} 
  done
  printf "%s" $K
}
clear
echo "TERMINAL="$TERM
KEY=1
while [ "$KEY" != "" ];do
  KEY=$(GET_KEY)
  echo $KEY
#  echo -e "\x$KEY"
done
сохраните в файл key2hex.sh
chmod +x ./key2hex.sh
./key2hex.sh
Под закрытым текстом объяснения для начинающих. Поскольку программа простая - сильно комментировать не буду. read -rsn1 K1;read -rsn4 -t 0.001 K2 считывает 1 символ, потом возможно еще 4, но с малым временем ожидания. Если символ многобайтный - в буфере он уже есть. Если символ начинается не с кода 1b (ESC) он должен быть однобайтным. ${#K1} -число символов в строке. Далее в цикле while ((i--));do посимвольно преобразуем строку в hex, накапливая в переменной K echo -e "\x$KEY" команда перевода hex в char привожу для примера. Для прикола попробуйте выполнить программу в разных терминалах (LxTerminal и tty1) и посмотреть на F5. Поясню, в tty1 можно перейти из GUI CTRL+ALT+F1, а вернуться обратно обычно ALT+F7 Ну, или не F7. посмотреть, куда возвращаться можно командой w . Даже маленькие разберутся. В общем, терминал(ы) - штука сложная. И тот только теперь я начал немного понимать, нахрена нужна библиотека ncurses. help read printf man w printf tags: #bash © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

25 сентября в Москве пройдёт одно из самых крупных мероприятий по облачным технологиям – Yandex Scale На конференции выступят
25 сентября в Москве пройдёт одно из самых крупных мероприятий по облачным технологиям – Yandex Scale На конференции выступят эксперты Yandex Cloud, а также приглашённые специалисты из Mindbox, Lamoda, Райффайзен банка и других компаний — всего более 50 спикеров. Генеративные нейросети, речевые технологии, новинки сервисов инфраструктуры, решения по работе с данными и безопасности, AI‑инструменты и serverless‑подход — в каждом треке ожидаются технологические анонсы и разбор кейсов. Мероприятие будет интересно как руководителям и менеджерам, так и разработчикам, тестировщикам, архитекторам, инженерам SIEM и другим ИТ-специалистам. Присоединиться можно офлайн и онлайн, очных участников ждёт afterparty. Участие бесплатное, регистрация открыта.

Еще раз привет. В последнее время многие столкнулись с проблемой при запуске пайплайнов в гитлабе. ㅤ Требуется какая-то ебуча
Еще раз привет. В последнее время многие столкнулись с проблемой при запуске пайплайнов в гитлабе. Требуется какая-то ебучая Verify my account, квест который не так просто пройти. Но есть способ это обойти, спасибо за наводку Akhmed Gvashev. Пиздуем в Settings → CI/CD → Runners → Instance runners и отключаем Enable instance runners for this project. Всё, дело в шляпе. А дальше регистрируешь свои локальные раннеры и запускаешь пайплайны хоть до посинения. Пользуйтесь! tags: #devops — 🔔 @bashdays➡️ @gitgate

При создании продукта разработчикам часто приходится выполнять непрофильные задачи. К примеру, разрабатывать и настраивать се
+4
При создании продукта разработчикам часто приходится выполнять непрофильные задачи. К примеру, разрабатывать и настраивать сервисы для нотификаций: уведомления об изменении статуса заказа, о входе в аккаунт и многое другое. Чтобы разработчикам не приходилось делать это самостоятельно, Yandex Cloud предоставляет готовые решения: Yandex Cloud Postbox — для отправки email-сообщений и Yandex Cloud Notification Service — для мобильных push-уведомлений. В карточках рассказываем почему стоит воспользоваться готовым решением 👉

Здрасти приехали, пятница! Частый вопрос который задают ребята с проекта Linux Factory:
Как в gitlab registry чистить докер имейджы, а то там такая пиздец блядь каша после экспериментов.
В gitlab есть встроенная херня, которая находится в Settings → Packages & Registries → Container Registry. Заранее не забудь выбрать нужный проект. Там есть раздел: Cleanup Policies, в нём нажимаешь кнопку Set cleanup rules иии видишь еще кучу какого-то гавна. Короче: Run cleanup — выбираешь как часто запускать зачистку Keep these tags — теги которые не нужно зачищать Remove these tags — теги которые будем удалять Remove tags older than — ну тут ежу понятно В этих штуках работают регулярные выражения, примеры этих регулярок можешь глянуть тут. Еще момент, если заполнить Keep these tags, то это даст протекцию тегам и даже если их прописать в Remove these tags имейджы не будут удалены. Заполняешь, сохраняешь и оно автоматически будет тебе все подчищать. ✔ Дополнительные варианты зачистки: - удаляешь мышкой в UI самого гитлаба - удаляешь через API самого гитлаба (например баш скриптом) - используешь утилиты типа regclient или docker-gc Такие дела, надеюсь было полезно. Давай, хороших тебе предстоящих выходных и береги себя! UPD: от Малахитовая Штукатурка а еще можно так зачистить:
sudo gitlab-ctl registry-garbage-collect -m
tags: #devops — 🔔 @bashdays➡️ @gitgate

Привет. В дополнение к предыдущему посту про свистоперделки. Чтобы каждый раз не вводить такую дичь:
ssh -i ~/.ssh/id_rsa user@xxx.xxx.xxx.xxx
Ключик можно автоматически добавлять в ssh-agent и тогда подключение будет выглядеть так:
ssh user@xxx.xxx.xxx.xxx
Чтобы это провернуть, прописываем в ~/.profile
if [ -z "$SSH_AUTH_SOCK" ]; then
  eval $(ssh-agent -s) > ~/.ssh/ssh-agent
fi

ssh-add ~/.ssh/gitlab_rsa
ssh-add ~/.ssh/production_rsa
ssh-add ~/.ssh/home_rsa
Первый блок проверяет запущен ли SSH агент, а если нет — запускает его. Второй блок добавляет нужные ключи в агент. Посмотреть все ключи в агенте можешь командой ssh-add -L, а удалить всё из агента можно командой ssh-add -D. Вот и вся наука. Ну а теперь интерактивная часть. Ну а чтоб тебе не скучно было, можешь написать башник и скинуть в комменты, который автоматически пробегается по всем ключам в папке ~/.ssh и добавляет их в агент. Но учти что в этой папке могут быть косячные ключи, ключи с неправильными правами, да и всякие файлы вида config, known_hosts. Короче потребуется работа с эксепшенами. Чей коммент с решением соберет больше всех реакций и будет заебись работать, закину приятный бонус. Поехали! tags: #utilites #рабочиебудни #bash — 🔔 @bashdays➡️ @gitgate

🔵 Инженер техподдержки? Получи оффер в YADRO всего за неделю! У тебя есть возможность поучаствовать в One Week Offer от круп
🔵 Инженер техподдержки? Получи оффер в YADRO всего за неделю! У тебя есть возможность поучаствовать в One Week Offer от крупнейшей технологической компании России - лидера инженерной индустрии. Если ты хорошо знаешь принципы серверной архитектуры и СХД и хочешь стать частью масштабных проектов: • Пришли своё резюме и заполни форму участия до 22 сентября. • Пройди техническое интервью. • Получи оффер после успешного собеседования. Скорее переходи по ссылке и стань частью команды.

После того как я проверил на себе Suicide Linux, я всё проебал. Пришлось с нуля настраивать всё окружение. В процессе настрой
После того как я проверил на себе Suicide Linux, я всё проебал. Пришлось с нуля настраивать всё окружение. В процессе настройки решил отказаться от zsh + oh-my-zsh и жить на чистом bin/bash. Через пару дней понял, что мне не хватает «авто-подсказок». В zsh я использовал плагин zsh-autosuggestions, но а как быть с чистым башем? Там плагин через .bashrc хуй поставишь. И нашел я BLE.sh (Bash Line Editor). Звучит же? Софтина полностью меня устроила, даж красненьким подсвечивает команды когда я хуйню пытаюсь ввести. Устанавливается просто, клонируешь себе из гит репки файлы, компилируешь и в ~/.profile подключаешь. Выглядит это так:
git clone --recursive https://github.com/akinomyoga/ble.sh.git
make -C ble.sh
echo "source ble.sh/out/ble.sh" >> ~/.profile
Перезапускаешь сессию и получаешь подсказки по командам, которые ты ранее вводил. Бле так Бле! В репе есть мануал, там чет через курл-хуюрл ставится и всякие другие способы описаны. Выбирай какой тебе ближе. Но как быть со сфистоперделками и новогодними ёлками? Там оформление добавить, нерд-фонты и т.п. Ха, на этот случай есть штука oh-my-posh. Ставится так:
curl -s https://ohmyposh.dev/install.sh | bash -s

mkdir ~/.poshthemes
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip
unzip ~/.poshthemes/themes.zip -d ~/.poshthemes
chmod u+rw ~/.poshthemes/*.omp.*
rm ~/.poshthemes/themes.zip
Дополнительно ставишь темы оформления. Ну и потом не забываем всё это дело подключить в ~/.profile
eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/capr4n.omp.json)"
В ключик --config вставляем название понравившейся темы. Ну и оболочку указываем, я естественно захуярил туда bash. Темы визуально позырить тут. Итог ты можешь посмотреть на скриншоте к посту. А завтра покажу как для всего этого дела ещё одну очень полезную штуку прикрутить. tags: #utilites #рабочиебудни #bash — 🔔 @bashdays➡️ @gitgate

Когда собирался писать об этом операторе на ум пришла считалочка, которой меня научили в пионерском лагере. А поскольку я сейчас не матерюсь, чтоб никто не догадался, перейду на старославянский алфавит. Итак: Шёл Хер по херу, встретил Хера на херу, взял Хер Хера за хер, и к херам закинул нахер. Вот, а сейчас говорят, что пионеров ничему хорошему не учили... exec. Есть два варианта использования: 1. exec command — билет в один конец. Для чего это нужно я так и не понял, может умные в комментах напишут. Перед выполнением команды, bash фактически завершается, управление передаётся команде. И все... пример: exec echo 123 — результат очень красочный. Такой же, как и с любой другой командой. 2. Перенаправление. Это штука крайне нужная и очень понятная. В других, нормальных ЯП она называлась бы open. В Basic open "filename.txt" for input as #3 В bash exec 3<fileneme.txt В Basic open "filename.txt" for output as #4 В bash exec 4>filename.txt В Basic open "filename.txt" for append as #5 В bash exec 5>>filename.txt В Basic open "filename.txt" for random as #6 В bash exec 6<>filename.txt Приведу несколько полезных примеров exec 2>/dev/null — все сообщения об ошибках отправить по пути, указанному в считалочке. На код ошибки (типа errorlevel) это не влияет. exec 1>filename.txt все сообщения, кроме ошибок отправить в файл. exec 1>filename.txt 2>&1 все сообщения, включая ошибки отправить в файл. Стоп-стоп. Откуда взялся &? Легко запомнить. Это костыль. Если вы не укажите &, сообщения попадут в файл с именем "1". Все помнят, что 0=/dev/stdin 1=/dev/stdout 2=/dev/stderr. Остальные 3-9 можем использовать по собственному усмотрению. Пример:
#!/bin/bash
seq 1 3|tee 1.txt > 2.txt
exec 3<1.txt
while read -u3 L1;do
  exec 4<2.txt
  while read -u4 L2;do
    echo $L1 $L2
  done
done
seq — создаем два файла, по три строки в каждом exec 3<1.txt - открываем файл для чтения с дескриптором 3 read -u3 L1 читаем из файла с дескриптором 3. Дальше все аналогично. Если нужно закрыть 4, например, дескриптор за ненадобностью exec 4>&-
man tee seq help while read exec
tags: #bash © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

❓Как использовать запросы и СКД в 1С без кода? Ждем вас на открытом вебинаре 4 сентября в 19:00 мск, где мы разберем: - Язык
❓Как использовать запросы и СКД в 1С без кода? Ждем вас на открытом вебинаре 4 сентября в 19:00 мск, где мы разберем: - Язык запросов 1С; - Обработку консоль запросов; - Создание отчета на СКД. Урок подходит для IT-специалистов, переходящих в сферу 1С, сотрудников IT-отделов, которые занимаются поддержкой и сопровождением программных продуктов 1С, начинающих программистов и студентов последних курсов. Спикер Харочкина Юлия — опытный программист 1С, специализирующийся на регламентированном учете. Встречаемся в преддверии старта курса «Разработчик 1С. Basic». Все участники вебинара получат специальную цену на обучение! 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/AAZt/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Ну вот и отгуляли лето, впереди новый учебный год, подъемы в 6 утра и ожидание выходных. Но есть и плюсы, хотя… Ладно, сегодн
Ну вот и отгуляли лето, впереди новый учебный год, подъемы в 6 утра и ожидание выходных. Но есть и плюсы, хотя… Ладно, сегодня я тебе принес WatchYourLAN. Эта хуёвина представляет собой лёгкий сетевой сканер с веб-мордой. На днях выкатили вторую версию. Основные фишки: - Если в твоей сети появился пидор, она тебе сообщит - Отправляет данные в графану через InfluxDB2 Ради прикола взгромоздил я на малинку WatchYourLAN. Завязал на графану и alertmanager и теперь получаю в телегу алерты, если в сети зарегистрировалось новое устройство. Охуенно! Чем бы дитя не тешилось. Запускается прям с докера одной командой:
docker run --name wyl \
  -e "IFACES=$YOURIFACE" \
  -e "TZ=$YOURTIMEZONE" \
  --network="host" \
  -v $DOCKERDATAPATH/wyl:/data/WatchYourLAN \
    aceberg/watchyourlan:v2
Не забываем забить свои переменные. На вебморду можно попасть так:
< IP >:8844
В общем рекомендую потыкать, может кому пригодится для каких-то своих целей. Официальная репка на гитхабе тут tags: #utilites — 🔔 @bashdays➡️ @gitgate

Всех с пятницей! Проект Linux Factory большинству прям зашёл! 😲 На этом хорошие новости заканчиваются. Потому что через несколько дней перестают действовать летние скидки и ценник для новеньких улетает в космос (в 2 раза). Но ты еще можешь успеть запрыгнуть в последний вагон. Делать ничо не надо, запускаешь бота, жмакаешь кнопочки и ты в пантеоне. Познаешь бест-практики и решаешь интересные задачки. Короче просто напоминалка. А кто уже в LF, не забудь продлить членство, в боте есть кнопочка — Продлить подписку. Хороших тебе предстоящих выходных и береги себя!