ch
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

前往频道在 Telegram

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

显示更多

📈 Telegram 频道 Bash Days | Linux | DevOps 的分析概览

频道 Bash Days | Linux | DevOps (@bashdays) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 23 738 名订阅者,在 技术与应用 类别中位列第 5 559,并在 俄罗斯 地区排名第 27 925

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 23 738 名订阅者。

根据 01 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 2,过去 24 小时变化为 -5,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 21.76%。内容发布后 24 小时内通常能获得 12.80% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 5 165 次浏览,首日通常累积 3 037 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 23
  • 主题关注点: 内容集中在 bashdays, linux, bash, docker, скрипт 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

凭借高频更新(最新数据采集于 02 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

23 738
订阅者
-524 小时
-87
+230
帖子存档
Освойте Linux с Selectel Вы начинающий DevOps-инженер, системный администратор или разработчик? Или только думаете над тем, ч
Освойте Linux с Selectel   Вы начинающий DevOps-инженер, системный администратор или разработчик? Или только думаете над тем, чтобы начать освоение Linux?   Selectel запускает бесплатный курс «Администрирование Linux с нуля». Проходите в комфортном для себя темпе и проверяйте полученные знания на реальных задачах.   Чему вы научитесь:   – Управлять пакетами и обновлениями программного обеспечения – Настраивать сети, SSH-соединения и мониторинг системы – Управлять пользователями, файлами и правами доступа – Работать с командной строкой Linux и основными утилитами – Анализировать логи и устранять инциденты   Зарегистрируйтесь на курс «Администрирование Linux с нуля» по ссылке   Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqwgy3ek

Здрасти мои хорошие! Рассмотрим ситуацию — злодеи устроили нагрузочное тестирование и натравили на твой ламповый стартап какой-нибудь «яндекс-танк». 😲 Подключить DDosGuard или Кратор! Эт я пеню, ценник на такие услуги — моё почтение, да и по функционалу там очень даже всё урезано. А cloudflare по регламенту компании запрещен. Замкнутый круг. Ну так что делать то? Да блядь nginx затюнить и отбить всю эту хуйню-муйню. Понятно дело оно особо при дидосах не спасет, но со сканерами и «танками» заебись справится. В nginx есть параметр limit_req_zone, он то нам и пригодится. Этот параметр ограничивает количество одновременных запросов с одного айпишника. Поехали настраивать. Создаем файл /etc/nginx/conf.d/assholes.conf
geo $limited {  
    default 1;  
    192.168.1.1 0;  # Этот IP не лимитируется
    10.0.0.0/24 0;  # 10.0.0.0/24 тоже без ограничений  
}
  
map $limited $limit {  
    1 $binary_remote_addr;  
    0 "";  
}  

limit_req_zone $limit zone=bashdays:20m rate=200r/s; 
limit_req_zone - ключ для отслеживания запросов. $binary_remote_addr - системная переменная nginx, внутри хранит ip адрес клиента. zone=bashdays:20m - произвольное имя зоны, 20m это объём памяти в мегабайтах для хранения данных. В этой зоне хранятся данные о количестве запросов от каждого уникального клиента. rate=200r/s - ограничение равное 200 запросов в секунды с одного ip клиента. Для рейта есть такая табличка:
Сценарий                    rate      burst
-------------------------------------------
API с высокой нагрузкой     100r/s    200
Средний веб-сайт            50r/s     100
Анти-DDoS защита            10r/s     20
CDN или кеширующий прокси   500r/s    1000
тестируем так:
ab -n 1000 -c 50 http://bashdays.ru/
wrk -t4 -c100 -d10s http://bashdays.ru/
И смотрим нет ли ошибок 503 Слишком дохуя запросов и корректно ли отрабатывает лимит. 🅰️🅰️ Сука! А как рассчитать эту 20m памяти? Щаа…
Максимальное количество клиентов = размер зоны в байтах / размерзаписинаклиента
Пардон, хуйню сморозил, давай на котиках:
Пример расчёта для 20m (20 мегабайт = 20 × 1024 × 1024 = 20 971 520 байт): 20 971 520 / 128 = 163 840
То есть, зона 20m может хранить лимиты примерно для 163 тысяч уникальных клиентов одновременно. А откуда взялось 128? Как я написал выше nginx хранит каждого уникального клиента (ключ $binary_remote_addr или другое значение) в зоне, используя примерно 128 байт на запись. Есть такая табличка:
< 20 000 = 4m ~80 000 = 10m ~160 000 = 20m 500 000+ = 64m
Да, еще можно настроить burst для резких пиков. burst позволяет временно превышать rate, прежде чем включится жёсткий лимит. Например:
limit_req zone=bashdays burst=400 nodelay;
Клиенту разрешается до 400 мгновенных запросов, а затем он попадает в ограничение 200r/s. nodelay означает, что первые 400 запросов проходят сразу, а потом начинается строгий лимит. Теперь по мапингам и гео хуйне. В первом блоке про гео: 1. Все пользователи получат $limited = 1 (по умолчанию). 2. Те, кто с 192.168.1.1 или из 10.0.0.0/24, получат $limited = 0 и не будут ограничены. Во втором блоке про мапинг: 1. Если $limited = 1, то $limit = $binary_remote_addr (IP-адрес клиента). 2. Если $limited = 0, то $limit = "", и клиент не попадает в limit_req_zone. Короче делаем что-то вроде белого списка и кто в него не входит — идёт нахуй! Надеюсь понятно объяснил. Теперь чтобы вся эта поебота заработала, нужно прописать в нужный локейшен:
location / {  
  limit_req zone=bashdays burst=10 nodelay;  
  try_files $uri $uri/ /index.php?$args;  
}  
Про burst и nodelay выше уже рассказывал.
Ну а чтобы отдавать нужный статус при достижении лимита, делаем:
location / {  
    limit_req_status 429;
    limit_req zone=bashdays burst=10 nodelay;  
    try_files $uri $uri/ /index.php?$args;  
}
Возвращаем 429 Слишком дохуя запросов, вместо стандартного 503. Бездумно это настраивать не советую, могут пострадать обычные пользователи, а вот если всё вдумчиво сделать — спасешь свой стартап от злых писек. ➡️ Ну и сыпь в комменты свои варианты! tags: #nginx #devops #security — 🔔 @bashdays➡️ @gitgate

Связываем облачные и необлачные ресурсы ⚡️ Делимся вебинаром для тех просвещенных, кто хранит данные на отдельных виртуальных
Связываем облачные и необлачные ресурсы ⚡️ Делимся вебинаром для тех просвещенных, кто хранит данные на отдельных виртуальных машинах или распределяет ресурсы между облаком и физическим сервером. 13 февраля облачный провайдер Cloud.ru расскажет, как организовать сетевую связность между виртуальными машинами разных VPC, а еще между облаком и on-premise инфраструктурой. Что круто: это не лекция, а демо, где покажут, как работают разные сервисы сетевой связанности и объяснят, когда их применять. А после — ответят на ваши вопросы. ➡️ Зарегистрироваться можно здесь

А у нас тут это — ssh_commander Эта штука позволяет запускать команды по ssh на нескольких серверах одновременно.
Что прикольно — можно выполнять команды из файлов. Нахуячил инструкций в файл, скормил этой тулзе, запустил. Вуаля!
Ни циклов тебе, ни ансиблов, для быстрых манипуляций — сгодится. Написан на змеях. В коробке много еще всяких фишек, посмотри на досуге ради интереса, авось в хозяйстве сгодится. ➡️ Проект на гитхабе Заявлена поддержка винды, маков, хуяков. tags: #linux #utils — 🔔 @bashdays➡️ @gitgate

❓ Хотите научиться запускать сайты на Linux с нуля? На открытом уроке «Запускаем CMS Wordpress на Ubuntu 24.04» вы освоите на
❓ Хотите научиться запускать сайты на Linux с нуля? На открытом уроке «Запускаем CMS Wordpress на Ubuntu 24.04» вы освоите настройку полного окружения для работы сайта. 💪 Что вы узнаете: — Как установить и настроить веб-сервер Angie, PHP-FPM и MySQL. — Как развернуть WordPress на чистой системе Ubuntu 24.04. — Как создать полнофункциональный сайт с минимальными ресурсами. ⭐️ Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель. ⏰ Встречаемся 12 февраля в 19:00 мск. Урок проходит в преддверии старта курса «Administrator Linux. Basic», а участники получат скидку на обучение. 👉 Сделайте первый шаг к профессии администратора Linux или запустите свой веб-проект: https://vk.cc/cIoj0b Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Как проверить tar.gz без распаковки? Да все просто, для начала создаем архив:
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

❔ Ваши релизы застревают на старте? Пора ускорить их до сверхзвука с Kubernetes! CI/CD и GitOps — ваша формула успеха: автома
Ваши релизы застревают на старте? Пора ускорить их до сверхзвука с Kubernetes! CI/CD и GitOps — ваша формула успеха: автоматизация, стабильность, контроль. Все прямо в кластере! Узнайте, как развернуть приложения без боли и сделать управление инфраструктурой лёгким, как настройка плейлиста в любимом стриминге. Спикер Михаил Чугунов — ведущий DevOps-инженер. ⏺️Встречаемся 13 февраля в 20:00 мск. Участники получат скидку на большое обучение «Инфраструктурная платформа на основе Kubernetes». 👍 Регистрация открыта: https://vk.cc/cIfz0I Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Хотите пиздатого девопса? Отдаю вам в хантинг проверенного девопс-специалиста. Хантим на удалёнку, офис — мимо! Если твой бюджет ниже 150к можешь даже не писать, а если ты деловой человек, то милости просим.
Макс, 35 лет, ищет работу, в меру упитанный мужчина, обладатель сокровенных знаний, закрыл ящик Пандоры, забрал душу у Шанг Тсунга, прыгал из самолета без парашюта, горел, делал сам себе искусственное дыхание. Опыт ёпта! - Девопс ин де хаус - Программист на yaml - Широчайшие познания в aws - Пайпы, ансиблы, докеры и вся байда - Сети, роутинг, фаерволы - Опыт работы в иностранных компаниях - Часовой пояс? Наверное похуй! - Linux, мониторинг, golang, java, bash…
Можно бесконечно это описывать, короче уверенный стек и скиллы выживания в айти за спиной. Макс прошел LF и по его скиллам скажу так — моё почтение, снимаю шляпу! Работа на максимальный результат. Было бы у меня 150к я бы без раздумий забрал его кубы котам крутить. А вы говорите кадровый голод. Собеседуйте, делитесь с HRами, личная рекомендация. Полное резюме скинет сам. 👇 Контакт с Максом: @neva_eva tags: #HR #хантим — 🔔 @bashdays➡️ @gitgate

Админы делятся на три категории: 1. Те, кто не делает архивы, 2. Те, кто уже делает архивы, 3. Те, делает и уже проверяет. 🔤🔤🔥🔤🔤🔤🔤 Сейчас многие архиваторы и компрессоры умеют делать архивы в несколько потоков. А, проверяют, почему-то в один. У меня на СХД валится куча разных архивов и их приходится проверять, чтобы ускорить процесс можно использовать gnu parallel. Мне так не удобно, потому что архивы шифрованные, причем пароли у них разные, удобнее проверять скриптом. Вот тут Роман набросал рыбу, для использования многопоточности. Я немного упростил. (до 7 необходимыx строк)
#/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 wait
tags: #linux #bash — 🔔 @bashdays➡️ @gitgate

Еще один частый вопрос с LF — а нужно ли менять дефолтный ssh (22) порт на какой-то другой? Нет! Ну а нахуя? Сократить в логах количество записей про неудачные попытки подломить твой девственный сервак? В логи ты ходишь — практически никогда! Тем более там logrotate работает и место диске сильно не забьется. Предположим ты поменял 22 на 2222. Количество записей в логах «сократилось» и теперь ты ебешься с указанием порта.
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

😎 Инженеры, отзовитесь! Авито в поиске специалистов сразу в две команды: 1️⃣ Data Engineer в команду Clickstream (Flink) Вы
😎 Инженеры, отзовитесь! Авито в поиске специалистов сразу в две команды: 1️⃣ Data Engineer в команду Clickstream (Flink) Вы присоединитесь к команде, которая разрабатывает Flink Jobs для аналитиков и инженеров Авито, обеспечивает оперативные разборы инцидентов, разборы стактрейсов, исследует новые инструменты и сетапы для кластера. 2️⃣ Data Engineer в команду Datamart Вы будете в команде инженеров, которые помогают аналитикам выполнять свои задачи быстро и качественно, используя принятые в компании решения, инструменты и стандарты. А ещё у вас будут: – возможность приносить пользу миллионам пользователей, реализуя решения, основанные на данных – интересные и важные задачи на очень большом проекте – прозрачная система премий и достойная зарплата, размер которой обсуждается на собеседовании – опытные и заинтересованные коллеги, готовые оказать поддержку – мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы – передовые технологии и подходы, возможность пробовать новое – личный бюджет на обучение, который можно тратить на книги, курсы и конференции – забота о сотрудниках и их здоровье: с первого дня работы вы получите ДМС со стоматологией и компенсацию питания – комфортный офис в двух минутах от метро «Белорусская», где ведут приём терапевт и массажист, а также абонемент на занятия йогой в студии-партнёре. Откликайтесь по ссылкам!

Еще немного про отладку ssh ключей, но уже в контексте интеграции со всякими гитлабами/гитхабами. ㅤ Чтобы работать с приватны
Еще немного про отладку ssh ключей, но уже в контексте интеграции со всякими гитлабами/гитхабами. Чтобы работать с приватными репами ты добавляешь в настройки гитлаба/гитхаба свою публичную часть ключа. Хорошо если такой ключ один, запутаться особо негде. Но что если добавлено 20-100 ключей?
Порой возникает ситуация, когда какой-нибудь раннер отказывается клонировать репу и начинает орать на доступы.
Ты проверяешь, видишь в табличке «Заголовок» — 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

📊 Идеальные графики и отчёты часто скрывают реальные проблемы компании. Как внедрить метрики, которые действительно помогают
📊 Идеальные графики и отчёты часто скрывают реальные проблемы компании. Как внедрить метрики, которые действительно помогают улучшить процессы, а не создают новые сложности? В канале HR-ов Яндекса решили обсудить Span of Control — показатель, который может помочь найти перегруженных руководителей и устранить узкие места. Рекомендуем подписаться

Приветcвую вас, комрады! 🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤 Есть довольно редкоземельная но полезная утилитка, обзывается она - Crane Примеры использования: Копирование образа между реестрами (без необходимости их пулить себе). Бывало у вас такое, что нужно перенести образ из одного реестра в другой? С crane это делается на раз-два:
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

Такс, теперь в тему как отлаживать ssh подключения к серверу. К примеру ты все прописал и сделал как тут #linuxfactory, а оно все равно тебя не пускает по ключам. Тут хочешь не хочешь нужен доступ к логам сервера к которому подключаешься. Так что заранее об этом побеспокойся, прежде чем перезапускать sshd службу. Если рута нет, загружайся в рекавери и откатывайся по конфигам на сход по паролю. В рекавери я думаю ты знаешь как заходить, да и облачных провайдеров обычно это есть из коробки. Маунтишь корневой раздел и откатываешь конфиги. Заходишь в конфиги (/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

Привет всем пользователям и администраторам Linux! Специально для вас я создал канал @/usr/bin, в котором регулярно делюсь св
Привет всем пользователям и администраторам Linux! Специально для вас я создал канал @/usr/bin, в котором регулярно делюсь своим опытом и опытом других людей по администрированию ОС и приложений на ней. Каждый день в канале публикуется новая интересная статья. В планах собрать интересную базу знаний, которой потом можно будет постоянно пользоваться. Топ последних постов, опубликованных на канале: 🚀 Подстроки в Bash: извлечение и обработка 🚀 Как устроен кэш Linux: руководство для начинающих 🚀 Статья о том, как стать grep-ниндзей 🚀 Буферный кэш PostgreSQL: автоматизация анализа с помощью bash-скрипта 🚀 Как проверить, используется ли папка службами в Linux Подписывайтесь на канал /usr/bin, чтобы не пропустить новые интересные статьи. Есть и другие каналы, которыми тоже занимаюсь: 🚀 @monitorim_it — всё о мониторинге 🚀 @zabbix_ru — лайфхаки в Zabbix 🚀 @elasticstack_ru — лайфхаки ElasticSearch/OpenSearch Реклама. ООО "ГАЛС СОФТВЭР". ИНН:5047195298. Erid:2VtzqwickTE

Пока я борюсь за выживание, скидываю тебе третью часть чтива. Не всё технически посты пилить.
Первая часть Вторая часть
Как научиться договариваться. Часть 3. На встречах нужно постоянно быть в фокусе чувств. То есть надо обращать внимание на сколько тебе хуева и на сколько хуево твоему собеседнику. Это очень важная переменная в переговорах. Если ты или собеседник начнете примерять на себя пиджак жертвы, вся твоя охуеть важная встреча заведет прямиком коту в жопу. И ничо хорошего с этого естественно не получится. Ты пострадавший, он пострадавший, включается защитная реакция и вы оба идëте нахуй. А тот кто пострадавший, всегда будет бычить в ответ на все более-менее разумные закидоны. Ты такое сразу почувствуешь, вроде все правильно говоришь, а в ответ получаешь негативное сморкание. Поэтому и надо быть начеку, заранее просекая настроение и чувства твоего собеседника. Как ты читаешь чувства Прикинь простую ситуацию: Шараёбишься ты с женой по магазинам, проходишь мимо прилавка с пивом и такой — бля, надо пивка взять. Потом смотришь на жену и думаешь — тааааккк, полчаса назад я не купил ей сапоги, она в хуевом настроении, взять сейчас пивка без последствий будет пиздец проблематично. Чо делать? Надо купить ей сапоги, а потом взять пивка. Что важно в этом примере 1. Ты прочитал эмоции жены (жена пиздец злая без сапог) 2. Проанализировал ситуацию (если взять пиво, будет больно) 3. Нашел компромисс (купил сапоги) 4. Снял с жены пиджак жертвы (жена пиздец добрая с сапогами) 5. Добился своего без последствий (взял пива, все счастливы) Взрослые ведут себя так-же как и дети. Не купили игрушку, начинают выебываться. Вот и с тобой также, не повысили зарплату, начал хуева работать. Работодатель жертва и ты сука жертва, у всех проблемы. А что нужно было сделать? Правильно! Прочитать, проанализировать чувства и затем ёбнуть именно так, чтобы и ЗП тебе подняли и директор твой понял зачем он поднимает тебе ЗП. Не должно быть никакого негатива, гнева, злости. Каждая сторона должна остаться с мыслью, что все сделано правильно. Не должно быть сомнений! Как-то так, продолжение следует. tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate

Нетворкинг, живые кейсы и облачные технологии — всё на K2 Cloud Conf. Ребята из K2 Cloud сделали свою конференцию, где поделя
Нетворкинг, живые кейсы и облачные технологии — всё на K2 Cloud Conf. Ребята из K2 Cloud сделали свою конференцию, где поделятся всем про облака: как подключаться к ним без компромиссов в безопасности, автоматизировать процессы с помощью PaaS, а также расскажут о новом типе сетевых дисков – всё это и не только! Встречаемся 4-го марта. Подробности и регистрация по ссылке. erid: 2VtzqwJTkuJ

Привет, сегодня без излишеств, организм решил что хватит с него и повысил температуру до некомфортных значений. Домашки проверю как отпустит. На связи! Не болейте!