fa
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، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -202 و در ۲۴ ساعت گذشته برابر -5 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 21.91% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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, не забудь продлить членство, в боте есть кнопочка — Продлить подписку. Хороших тебе предстоящих выходных и береги себя!