bashdays | Unsorted

Telegram-канал bashdays - Bash Days | Linux | DevOps

22119

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

Subscribe to a channel

Bash Days | Linux | DevOps

Екатеринбург, готовы узнать о последних трендах Ops и DevOps? Тогда 12 декабря в 18:30 встречаемся на IT Talk by Sber 🚀

Эксперты Сбера расскажут о правилах надёжности, покажут инструменты автоматизации и мониторинга, а также обсудят необходимость валидации конфигураций с помощью LLM.

Локация: Технохаб Сбера, ул. Розы Люксембург 56а

Спикеры и темы:
✅ «Чему нас научили инциденты: правила надежности в сопровождении» – Анастасия Мезенина, главный инженер по сопровождению.
✅ «Валидация конфигураций с помощью LLM – а нужно ли?» – Игнатий Кононов, старший инженер по разработке.
✅ «Автоматизация и поддержка ITSM-процессов» – Вячеслав Матющенко, Лидер направления процессов юнита Core.Banking, Александр Зайков, главный инженер по сопровождению.

Регистрируйтесь на IT Talk by Sber 💚

Читать полностью…

Bash Days | Linux | DevOps

Важность внедрения SDL в процессы создания программных продуктов для обеспечения безопасной разработки уже ни у кого не вызывает сомнений.

На практике же внедрение SDL по-прежнему сопряжено с серьезными трудностями и сопротивлением со стороны команды. И во многом это связано с серьезным усложнением процессов и дополнительной работой, которая ложится на плечи ребят в части документирования и дополнительных проверок, особенно на первых этапах внедрения.

Поэтому важно знать и использовать существующие практики, которые позволят значительно упростить работу.

Например, OWASP – один из значительных проектов, который содержит в себе множество готовых инструментов.

Инструменты полезны не только разработчикам:
OWASP Application Security Verification Standard - является источником требований к безопасности веб-приложений для аналитиков и архитекторов;
OWASP Cheat Sheet - содержит готовые куски кода с примерами реализации и различные функции безопасности;
OWASP TESTING GUIDELINEs – лучший помощник тестировщиков, содержащий список конкретных тестов для различных объектов, будь то сессии или JWT токен.

Обо всем этом, а еще о практическом опыте внедрения SDL в «Лаборатории Касперского», рассказывают его эксперты в новом курсе «Безопасная разработка ПО».

Присоединяйтесь и вы!

Читать полностью…

Bash Days | Linux | DevOps

Приглашаем на ЮMoneyDay — бесплатную онлайн-конференцию про IT в финтехе 🔥

Проведём два дня с разработчиками, аналитиками, тестировщиками, продактами и другими специалистами ЮMoney. Они поделятся опытом работы над финансовыми продуктами для миллионов пользователей.

В программе 13 направлений:

🟣 Бэкенд
🟣 Фронтенд
🟣 Тестирование
🟣 Процессинг
🟣 SQL
🟣 Python
🟣 Менеджмент проектов
🟣 Системный анализ
🟣 Архитектура
🟣 Инфраструктура
🟣 Менеджмент продуктов
🟣 UX
🟣 О компании

Встречаемся онлайн 6 и 7 декабря в 11:00 по Москве. Приглашайте друзей и коллег

Зарегистрироваться и узнать подробности можно здесь

Читать полностью…

Bash Days | Linux | DevOps

🚀 МТС Web Services продолжает рассказывать о создании облака в режиме реального времени.
Во втором выпуске проекта Building the Cloud поговорим о сервисе Identity and Access Management (IAM).

🔑 Что обсудим:
— Как IAM помогает защитить облачные ресурсы и эффективно управлять доступами
— Виды субъектов доступа в облако и способы их аутентификации
— Как сузить радиус атак c помощью IAM и минимизировать риски прав суперадмина

💡 Для тех, кто пропустил первый выпуск: мы рассказали о создании сервиса Compute. Запись доступна по ссылке.

Регистрируйтесь и задайте свой вопрос техлиду команды IAM нового облака в прямом эфире.

📅 Дата: 13 декабря 2024, 11:00
🌐 Регистрация: по ссылке

Читать полностью…

Bash Days | Linux | DevOps

когда скинули ssh ключ скриншотом

сегодня большая пицца, GPT не поможет

#pizza

Читать полностью…

Bash Days | Linux | DevOps

🐳 Docker: начните с основ и станьте экспертом контейнеров

Введение в Docker — открытый урок 2 декабря в 19:00 мск!

Контейнеры — это не будущее, это настоящее. Узнайте, как Docker помогает создавать, разворачивать и управлять приложениями быстрее и проще.

👉 На уроке разберем:
- Что такое контейнеры и зачем они нужны.
- Основы работы с Docker: файлы, тома, сети.
- Как собрать и запустить приложение в контейнере с нуля.

Вы научитесь работать с Docker, запустите свой первый контейнер и получите знания, которые пригодятся на практике.

⭐️ Спикер Николай Лавлинский — PhD Economic Sciences, опытный разработчик, автор курсов по администрированию и оптимизации веб-приложений, ведущий каналов «Ускорение сайтов» и «Поддержка сайтов».

🎁 Участники получат скидку на обучение в рамках курса «Administrator Linux. Professional».

👉 Для участия зарегистрируйтесь: https://vk.cc/cFqcrt

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

Приглашаем Java- и Kotlin-разработчиков на митап от команды МТС Web Services. Приготовили для вас микс из топовых технических докладов и неформального общения за барбекю.

Когда: 6 декабря, 18:00

Где: площадка «Бетон», Кальварийская ул., 17, г. Минск

Программа вечера:

— Расскажем, как строим новое облако в 2024-м
— Поговорим о разработке IAM в облаке
— Обсудим, как создать Development Platform
— Разберёмся, что такое реконсиляция и почему она важна для облачной инфраструктуры

После официальной части — барбекю и нетворкинг!

Регистрация здесь.

Читать полностью…

Bash Days | Linux | DevOps

Как-то мы с тобой познакомились с etckeeper, ну дак вот, есть еще такая штука — ChezMoi.

Это херня для управления dotfiles (конфигурационными файлами, которые обычно начинаются с точки, например, .bashrc, .vimrc, .gitconfig) на нескольких устройствах.

Я сейчас такие файлы просто в гит руками херачу. Из основного у меня это конфиг для вима и zshrc со всякими алиасами и настройками.

ChezMoi как раз всю эту рутину берет на себя. Из коробки есть синхронизация между устройствами, поддержка git, создание набора конфигураций для разных ОС, шаблоны и куча еще всякого.

На убунту ставится так: snap install chezmoi --classic

Для других операционок мануальчик здесь.

Ну поставили и чо дальше? А дальше запускаем:

chezmoi init


Добавляем например .bashrc

chezmoi add ~/.bashrc


Эта команда скопирует bashrc в ~/.local/share/chezmoi/dot_bashrc

Теперь отредактируй файл:

chezmoi edit ~/.bashrc


И посмотрим изменения:

chezmoi diff


То есть началась вестись история изменений, что довольно удобно. Теперь например ты запортачил свой .bashrc в следствии экспериментов, как откатиться?

Запускаем:

chezmoi -v apply


Нажимаешь к пример «o» = overwrite.

Хоба! И bashrc успешно восстанавливается. Прекрасно!

Теперь как с гитом работать:

chezmoi cd
git add .
git commit -m "Initial commit"


git remote add origin git@github.com:$GITHUB_USERNAME/dotfiles.git
git branch -M main
git push -u origin main


В принципе стандартная практика, первой командой переходим в каталог ~/.local/share/chezmoi ну а дальше база гита.

Затем на другой машине делаем:

chezmoi init https://github.com/$GITHUB_USERNAME/dotfiles.git


Конфиги успешно подтягиваются. Если репа приватная, то на офф сайте есть чтиво как это настроить.

Я этим пользоваться не буду, мне привычнее свои поделки запускать. Но ты имей в виду что существует такая пепяка. Возможно где-то прикрутишь и оно тебе облегчит трудовые будни.

Сайт проекта: https://www.chezmoi.io/
На гитхабе: https://github.com/twpayne/chezmoi

tags: #utilites #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Добрый вечер, здрасти. За чо купил, за то и продаю.

На повестке — direnv.

Эт полезная хуёвина для расширения оболочки. И она достаточно известна среди населения в загнивающем западе.

Позволяет загружать и выгружать переменные среды в зависимости от каталога.

Грубо говоря — позволяет не засирать .profile всяким дерьмом.

Работает так: перед каждым запуском оно проверяет наличие файла (.envrc или .env) в текущем или родительском каталоге.

Если такой файл существует, то он загружается в подоболочку bash. И все экспортируемые переменные становятся доступны для текущей оболочки.

Работает с большой четверкой: bash, zsh, fish, tcsh

Суть — используем переменные среды для конкретного проекта, не трогая при этом ~/.profile.


Что интересно, direnv это бинарник на golang, что уже подразумевает скорость и все плюхи связанные с этим.

Для убунты ставится так: apt install direnv

Как воткнуть это в другое место, подробно написано тут ну или спроси у медведя.


Подключаем так, добавляем в ~/.bashrc:

eval "$(direnv hook bash)"


Для других шелов смотрим тут.


Не забываем перечитать файл ~/.bashrc чтобы изменения вступили в силу.

Так, поставили, молодцы! Проверяем чо получилось:

cd /tmp
mkdir my-project

echo ${FOO-bashdays}


На экран выдалось: bashdays

Переменная среды FOO не вывелась, логично, дальше:

echo export FOO=foo > .envrc


Ёпта, ошибка direnv: error /tmp/my-project/.envrc is blocked. Run `direnv allow` to approve its content.

Сработала защита от дурака, которая запретила нам использовать .envrc. Хе, ща пофиксим!

direnv allow .


Во! Лепота!

direnv: loading /tmp/my-project/.envrc
direnv: export +FOO


Повторяем первую команду:

echo ${FOO-bashdays}


Хуяк и получаем: foo

Что и требовалось доказать, direnv отлично справилась с поставленной задачей.

Теперь выходим из проекта и смотрим:

cd ..

direnv: unloading

echo ${FOO-bashdays}


Ииии барабанная дробь, у нас вывелось — bashdays!

Какая же красота и любовь с первого взгляда!

Рекомендую! Однозначно забираем себе в копилку и внедряем в свой воркфлоу, по крайней мере для всяких лабораторных испытаний эта штука подходит идеально.

➡️ Проект на гитхабе: https://github.com/direnv/direnv

⭐️ Star 12.6k

tags: #bash #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Привет, давай напишем очередной велосипед на Bash.

А напишем мы своё подобие команды cat, но с потоками.

Конечно можно воспользоваться дополнительной утилитой parallel, но мы лёгких путей не ищем. Глаза боятся, да руки веселятся.

Вот что у меня получилось:

#!/bin/bash

file=$1

threads=4

process_line() {
line="$1"
echo $line
}

export -f process_line

fifo="/tmp/fifo"
mkfifo "$fifo"
exec 3<>"$fifo"
rm "$fifo"

for ((i = 0; i < threads; i++)); do
echo >&3
done

while IFS= read -r line; do
read -u 3
{
process_line "$line"
echo >&3
} &
done < "$file"

wait
exec 3>&-


Не забываем chmod +x pcat

Запускать так: ./pcat.sh input.txt

➡️ Теперь разбираемся:

threads указываем количество потоков для чтения текстового файла.

process_line = функция, которая будет обрабатывать строку, у меня это простое echo, но можно накручивать любую логику.

export -f = экспортируем функцию, чтобы функция была доступна в subprocess (этот момент ранее в постах мы с тобой уже разбирали, ссылку не дам, по поиску найдешь если интересно).

fifo = задействуем FIFO для контроля потоков (чуть ниже объясню что это такое за хуйня).

mkfifo = создаём именованный канал /tmp/fifo для контроля количества одновременно запущенных потоков.

for ((i = 0; = заполняем каналы «семафора» чтобы ограничить потоки.

while IFS = читаем файл построчно и обрабатываем строки.

read -u 3 = ждем свободный слот «семафора», каждый поток блокируется до тех пор, пока не освободится место в «семафоре».

wait exec 3>&- = ждем завершение всех потоков

Что такое FIFO?

FIFO = «первым пришёл — первым ушёл».


Представляем ебейшую очередь в магазине:

1. Бабки встают в очередь
2. Первым обслуживают ту бабку, что пришла первой
3. Никто не может сказать — мне только спросить и пройти первым

Ну или на примере стопки книг:

Если ты складываешь книги в стопку и потом начинаешь снимать их, то ты будешь использовать LIFO (Last In, First Out).

Но если ты встал в очередь к кассе — это FIFO.

Думаю ты ты понял, тут все просто.

Единственное отличие от cat, у нас получилось, что строчки выводятся в порядке завершения потока. Какой поток быстрее завершился тот и папа.

строка4
строка1
строка2
строка3
строка5
строка6


С другой стороны эту поделку можно применить для каких-то задач, где порядок строк в файле неважен, ну или еще для чего-то.

Ну и домашка тебе: сделай так, чтобы строчки выводились по порядку (также, как и в файле), но использовалась многопоточность.

Пользуйтесь, чо!

tags: #bash #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

В рот мне логи! suqo

Здрасти короче.

Все знают команду cat, но не все знают про tac.

Так, так, так… Чо это?

Этот тот же cat только из Австралии наоборот. Оно выводит содержимое файла или стандартного ввода — в обратном порядке по строкам.

Команда tac входит в состав пакета GNU coreutils, и, как правило, она предустановлена на большинстве Linux-дистрибутивов.


Ща покажу. Есть у нас злой файл:

ножка на ножку и залупа в ладошку
eбутся утки вторые сутки
хуй сосали на вокзале


Запускаем:

tac file.txt

хуй сосали на вокзале
eбутся утки вторые сутки
ножка на ножку и залупа в ладошку


Поняли? Ну либо так:

echo -e "строка 1\nстрока 2\nстрока 3" | tac

строка 3
строка 2
строка 1


А можно прям разделитель указать:

echo "слово1:слово2:слово3" | tac -s ":"

слово3
слово2
слово1


Где применить?

Да где хочешь, можешь логи смотреть, можешь в bash скрипты пихать, можешь из csv бигдату собирать и т.п.

Такие дела, изучай!

tags: #utilites #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Прочитал статью про сигналы Медведя и захотелось немного разобраться в теме. Немного переписал проги, чтобы можно было от клиента к серверу передавать любые сообщения в виде текста.

Алгоритм простой. Используем 10 сигналов (SIGRTMIN+0 - SIGRTMIN+7 для передачи битов, SIGRTMIN+8 - признак окончания символа, SIGRTMIN+9 признак окончания сообщения).

Передаются только "единичные биты". SEND_CHAR - "разбирает символ по битам и передает" SEND_MESSAGE - разбирает сообщение по символам и отдает SEND_CHAR.

Сохраняем скрипты, chmod +x serv.sh cli.sh

В одном терминале ./serv.sh (он выдаст что-то вроде Listener process 340527).

В другом терминале ./cli.sh 340527 (нужно подставить ваш номер процесса).

При старте клиент сразу передает серверу сообщение "BashBays" А потом можете передать привет медведю. Пустое сообщение завершает клиента. Сервер останавливается через CTRL-C.

#/bin/bash

#serv.sh

declare -i ASC=0
declare MSG=
declare DELAY=0.01
handle_signal() {
case "$1" in
W) MSG=${MSG}$(printf "\x$(printf %x $ASC)")
ASC=0 ;;
M) echo $MSG;MSG=;;
*) ((ASC+=$1));;
esac
}
#RTMIN=34
trap 'handle_signal 1' RTMIN+0
trap 'handle_signal 2' RTMIN+1
trap 'handle_signal 4' RTMIN+2
trap 'handle_signal 8' RTMIN+3
trap 'handle_signal 16' RTMIN+4
trap 'handle_signal 32' RTMIN+5
trap 'handle_signal 64' RTMIN+6
trap 'handle_signal 128' RTMIN+7
trap 'handle_signal W' RTMIN+8
trap 'handle_signal M' RTMIN+9
echo Listener process $$
while :;do
sleep $DELAY
done


#!/bin/bash

#cli.sh

if [[ -z $1 ]];then
echo Need server PID
exit
fi
declare -ir SERV_PID=$1
declare MESSAGE=BashBays
declare -ir RTM=34

function DELAY(){ sleep 0.02;}

function SEND_CHAR(){
local -i i ASC
CUR_CHAR=${1:-" "}
printf -v ASC "%d" "'$CUR_CHAR"
for i in {0..7};do
if [[ $(($ASC%2)) -eq 1 ]];then
# echo kill '-'$(($i+$RTM)) $SERV_PID
kill '-'$(($i+$RTM)) $SERV_PID
DELAY
fi
((ASC/=2))
done
# echo kill '-'$((8+$RTM)) $SERV_PID
kill '-'$((8+$RTM)) $SERV_PID
DELAY
}
function SEND_MESSAGE(){
local CUR_CHAR
local MESSAGE=${1:-BashDays}
local i
echo Send message \"$MESSAGE\" to Server PID=$SERV_PID
for ((i = 0 ; i < ${#MESSAGE} ; i++));do
SEND_CHAR ${MESSAGE:$i:1}
done
# echo kill '-'$((9+$RTM)) $SERV_PID
kill '-'$((9+$RTM)) $SERV_PID
DELAY
}

while [[ $MESSAGE ]];do
SEND_MESSAGE "$MESSAGE"
read -p "Input new message:" MESSAGE
done


Для чего может пригодиться эта фигня я не знаю, Но при написании программы выяснил некоторые вещи:

1. Обработка сигналов (по крайней мере SIGRTMIN не прерывает выполнение команд bash). Т.е если выполняется sleep 10m. То обработки можно ждать долго.

2. Обратите внимания на задержки в программах. На сервере ввел задержку, чтобы не сильно грузить процессор, на клиенте задержка больше, чем на сервере, иначе сигналы могут теряться. Кому интересно - можете поиграться.

tags: #linux © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

🔴 Разработка в 1С может быть удобной. А может быть идеальной.

Хотите перейти с Конфигуратора на современный инструмент разработки? Познакомьтесь с 1С:EDT! Эта система выводит удобство и качество работы на принципиально новый уровень.

На открытом уроке мы разберём:

- Чем EDT отличается от привычного Конфигуратора.
- Какие преимущества этот инструмент даёт разработчикам.
- Как начать использовать все его возможности уже сейчас.

Спикер Юрий Пасхин — программист-разработчик в компании ЕАЕ-Консалт, опытный руководитель команд, архитектор и наставник.

Присоединяйтесь 25 ноября в 20:00 мск.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/bHBU/

🟢 Все участники открытого урока получат скидку 15% на курс "Профессиональная разработка в 1С:EDT + Git" до конца ноября

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

Пост ищем в этом канале, а не в гугле. В комментах пишем время и ссылку на сам пост. Макс к вам придет и отдаст монету.

Погнали чо! #pizza

кому интересно: предыдущие пиццы (1, 2, 3)

Читать полностью…

Bash Days | Linux | DevOps

Вчерашний медведь прям в тренды залетел, издеваться над ним больше не будем, пусть ковыляет своей дорогой.

Сегодня рассмотрим утилиту vlock.

Устанавливается так: apt install vlock

Vlock блокирует виртуальную консоль/ли и требует ввода пароля.

Короче сидишь ты такой, на ascii картинки рукоблудишь в терминале, заходит мамка и ты такой — vlock бля!

Консоль моментально превращается в сообщение — This TTY is now locked. Please press [ENTER] to unlock.

Вот и всё! Это типа WIN+L или как там на маках CMD+CTRL+Q, но только для консоли. Локскрин! На случай если у тебя иксов нет, или ты в серверной живешь.

А чем отличается консоль от терминала я писал в этом посте и да, это не одно и тоже!


Чо там этот vlock умеет?

Основное:

-c lock only this virtual console, allowing user to switch to other virtual consoles.

-a lock all virtual consoles by preventing other users from switching virtual consoles.

-n allocate a new virtual console before locking,implies --all.

-s disable SysRq while consoles are locked to prevent killing vlock with SAK

-t run screen saver plugins after the given amount of time.


🅰️🅰️
Из сочного тут -s отключает сочетания клавиш SysRq, лично не проверял, но будем верить что если на заборе написано — хуй, значит он там есть.
🅰️🅰️

Про Magic SysRq писал тут, обязательно почитай, тема довольно пиздата.


А еще прикол обнаружил в vlock, что если у тебя авторизация (аутентификация) по ключам, то пароль от юзера или рута ты никогда не вспомнишь. Аксиома!

Ну и получается разблокировать сеанс уже никак не сможешь. Поэтому с этим поаккуратнее, сначала вспоминай пароли и лишь только потом запускай этот скринлокер.

ХЗ кто этой байдой пользуется, но она существует и о ней порой говорят в англоязычном сегменте.

Короче я показал, ты почитал. На этом и закончим. Мож где-то пригодится. Давай краба!

tags: #utilites #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Как я изучал кубер или хуёвой пизде — хуёво везде.

Короче взбрело как-то нашему техдиру засунуть бложек компании в кубер. Бложек на вордпрессе, вся хуйня.

На вопрос — чтобы что? Он же и так нормально крутится, не падает, работает и не трогай!

Ответ очевиден — бизнес приказал, денег нет, но вы держитесь, новогодних премий не будет. Шаблонный набор доширака.

В общем владелец компании где-то с корешами посидел за чаркой сакэ и они ему в уши нассали.

Мол у каждой уважающей себя компании должен быть кубер. Если у тебя нет куба, значит ты лох и компания твоя — гавно!


Кубера у нас как ты понял не было. И мне предстояло его внедрять.

О кубере естественно я знал словом — нихуя! Но задача есть, надо делать, ипотека сама себя не оплатит.

Иду на ютуб, смотрю взахлеб все что попадается на эту тему, за сутки сложилось представление что это такое и как его готовить.

Тогда еще было интересно познавать новое, сейчас такого уже нет.

Старым добрым методом «тыка» всё поднял, написал пайплайны, собрал контейнеры, задеплоил. Базу кстати тоже в кубер перетащил, просили же всё туда перенести.

Вся эта поделка была похожа на какой-то обдристанный шалаш подпертый рыхложопными костылями, но всё работало.

Задачу в done, все довольны. Я молодец. Теперь я знаю кубер!

А спустя сутки начались качели. Пользователи начали регулярно получать 500ки, иногда ПОД с базой ПОДъебывал и каким-то образом просто выпадал в осадок. Ну и еще вагон и тележка факапов.

Фиксилось это естественно гуглежом. За неделю более менее все было отлажено, базу по итогу пришлось вытащить из этого комбайна и поселить на отдельном серваке. Опыт!

Но раз в неделю стабильно что-то вылазило новое. Блядь… меня трясти уже начинало когда там что-то ломалось. А еще за каждый инцидент жестко ебали, как медведя. Одним словом — айти.

Любят люди всё усложнять, ну работало оно раньше, нахуй было это трогать. Тем более тащить вордпресс в кубер.

Чуть позже я увидел битрикс в кубе, это отдельный пиздец.

💬💬💬

Эт я к чему. Изучив базово технологию по ютубу, я добавил себе в резюме строчку — знания k8s, покидал отклики на ХХру и через пару дней получил оффер. А через 2 недели забыл про этот вордпресс как страшный сон.

Как потом оказалось в новой компании кубер был, но его обслуживали другие дядьки, а в вакансии HRы просто так это написали. Попытались побольше технологий воткнуть видимо.

Если видишь вакансию и какую-то неизвестную тебе технологию — не ссы, кидай отклик, во всем можно разобраться прям по ходу дела. Было бы желание. А возможно там этой технологии вообще нет.

Тем более в новой компании тебя первое время хуй допустят до таких вещей, сначала будешь всё под присмотром делать. Хотя бывают случаи когда в компании один девопс.

Приходишь такой и ты сам себе тимлид и команда в одно рыло. Потом два месяца пытаешься понять, как все устроено и не сломать, то что работает. А из документации .bash_history.

А если на собесе что-то спросили, а ты не знаешь, так и скажи — я хуй знает, слышал, но не тыкал, разберусь короче, не проблема!

Прозрачность в этих делах очень важна, соискатели очень любят когда ты с ними откровенен и тебе похуй.

Сразу ходи с настроением — Не они тебе нужны, а ты им.

Ну и про кубер. Не нужно его поднимать где только можно, он используется точечно, для проектов которые в нём нуждаются. А не потому что это — модно блядь!

А хочешь его изучить, поставь себе под локальные проекты, задеплой туда своего кота, выстави жопой в интернет и ковыряй, правь баги и обслуживай. Чем больше ты его ковыряешь, тем больше он ковыряет тебя.

Но это справедливо для всех технологий.

Если нет желания — хуй ты чему научишься.

Такие дела, мотай на ус и не ссы, всё у тебя получится!

tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Привет, друзья, вопрос из зала от коллеги. Кто что думает? Велком в комменты!

Вопрос:

Сейчас занимаюсь задачей по миграции/синхронизации файлового сервера предприятия.

Суть проблемы в следующем: Вся информация сейчас распределена по разным серверам, которые начинают выходить из строя.

Используется Windows Server с DFS, права настроены через Active Directory.

Новый файловый сервер нужно реализовать на базе РЕД ОС.

На этапе планирования столкнулся с рядом вопросов — как лучше организовать процесс миграции, чтобы структура и права доступа остались удобными и управляемыми?

Если у вас будут предложения или потребуется дополнительная информация, с радостью предоставлю! Заранее спасибо за помощь!


tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

👀 Один рубит - семеро в хуй трýбят!

Попросил сегодня на собесе кандидата зачистить nginx логи. Кандидат на роль девопс (мидл) на вилку 200-250к.

Зачистил rm /var/log/nginx/access.log

Мде блядь… это будет интересно!

Задаю следующий вопрос — Серёжа, а почему файл access.log пропал и больше не появляется? Nginx то в данный момент работает, запросы на него идут.

Где карта Билли? Нам нужна карта!

Внятного ответа не получил, что-то на уровне — он появится спустя сутки, когда logrotate отработает. Дада… будем сутки без логов сидеть. А если нет logrotate?

Короче, если хочешь зачистить файл, есть несколько безопасных способов.

Первый способ:

sudo > /var/log/nginx/access.log


Тут мы перезаписываем лог-файл с помощью оператора редиректа «>».

Это безопасно для процесса, который продолжает записывать в лог, поскольку процесс будет продолжать писать в тот же файл, а его дескриптор не изменится.

Ключевая фраза — дескриптор не изменится. А когда ты этот файл через rm ёбнул само собой дескриптор потерялся и nginx охуевает.

Второй способ:

sudo truncate -s 0 /var/log/nginx/access.log


-s 0 = обрезать файл до нулевого размера. В этом случае дескриптор также не будет потерян и nginx продолжит писать непотребности.

Третий способ:

Некоторые сервисы, например, apache или nginx, позволяют отправить сигнал процессу для того, чтобы он закрыл текущий лог-файл и открыл новый (сигнал USR1). В этом случае процесс продолжит работать, но логи будут записываться в новый файл.

sudo kill -USR1 <pid>


Где <pid> = PID процесса. После выполнения этой команды файл с логов превратится в access.log.1 и откроется новый access.log.

Четвертый вариант — тот самый logrotate, но его рассматривать не будем.

Я пользуюсь первым вариантом с символом перенаправления «>». Стильно, модно, молодежно!

Короче сначала думаем головой, а потом уже пользуемся тяжелой артиллерией вроде rm и т.п.

А какие способы обнуления знаешь ты? Про аклкашку не пишите, этот способ знают все.

tags: #рабочиебудни #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

переиграем и завершим эту прекрасную рубрику #pizza хоть квантовый компьютер подключайте, щас без правил и ограничений

Читать полностью…

Bash Days | Linux | DevOps

Бас мазафака фактор! Ща жопы сгорят...

Где бы я ни работал, я стараюсь завязать какой-то кусок именно на себя. В идеале полностью подмять и пустить корни во все процессы связанные с той деятельностью, которой я занимаюсь.

Если на пальцах, к примеру в компании изначально доминирует terraform и golden image через packer. Я прихожу, вижу этот пиздец. Почему пиздец? Да потому, что это пиздец. Но совладать с процессами на начальном этапе я не могу, потому, что я новенький и не мне диктовать условия. К моим предложениям перейти на ansible и сделать динамические inventory для теры, относятся скептически. Хули? Смириться? Нет уж.

Я запиливаю в свое свободное время всю эту связку, делаю пайплайны, кнопку, тесты, короче делаю универсальное решение, которое работает. А не то, что существует у них сейчас. Презентую его CTO в личной беседе. В 99.9999% CTO дает мне зеленый свет на внедрение. А старье с golden image выбрасываем на парашу.

Продавил. Молодец. Но остается хуита, когда коллеги из отдела просто в недоумении, типа хуй с горы пришел, чото новое интегрировал, CTO поддержал, да как так-то? Мы тут сидели баблишко, получали, а теперь надо чему-то новому учиться. Да блядь, ребята! Придется играть по моим правилам, либо идите на хуй!

Дальше ситуация развивается стремительно, коллеги разбираться в этом не хотят и я все больше и больше подминаю инфраструктуру под себя, становлюсь единственным человеком, который во всем этом шарит и умеет управлять. Да, я предлагаю показать как все это работает. У меня есть написанная документация, она доступна для всех желающих. Но желающих обычно нет. Иииии. Возникает тот самый бас фактор.

Грубо говоря, если я хуй забью, то инфраструктуру поддерживать никто не сможет какое-то время, а возможно совсем не сможет.

Я не прав? Хуй там, я прав. Я всегда иду на встречу и делюсь знаниями, при условии, что люди хотят эти знания получить. Но обычно никто не хочет покидать зону комфорта. Соответственно имеем, то что имеем.

Сидеть в говне я не люблю, по этому, всегда, ВСЕГДА выпиливаю гавно и ввожу новые процессы. Хоть это новая робота, хоть старая. Да я уверен, что продавил бы даже яндекс с гуглом, хотя у них надеюсь и без меня все заебись.

Завязав все на себя, легко можно манипулировать своим повышением до начальника отдела, поднятием ЗП и прочее. Главное подходить к этому с умом, а не жопой.

Сейчас со мной работает человек и он действительно вникает в то, что я внедрил. Я спокойно сходил в отпуск на месяц и нихуя не уебалось. Он умеет управлять моим заводом. Я отдал ему поле под цех, он построил себе небольшой заводик и успешно им владеет. Я в него не лезу, он создал свой бас фактор и завязал его на себя. Молодец. А не лезу я, потому, что мне неинтересно. А то что мне неинтересно идет нахуй.

Да я могу сходить на заводик коллеги, чото там посмотреть, потыкать, но как все это устроено я знать не хочу. Даже когда он уйдет в отпуск и заводик наебнется медным тазом, я за час разберусь и починю все что нужно, потому, что коллега ведет документацию и частенько рассказывает на синках, что и как у него происходит.

Короче хуй пойми, бизнес не любит бас фактора, а мы любим бас фактор.

Любим по причине — этим можно манипулировать и выбивать себе хорошие должности и ЗП.

А как ты считаешь?

tags: #рабочиебудни #memories

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

🤩 Пятница — это продакшн, который уже не твоя проблема.

Частенько для установки какого-то софта в линукс, предлагают использовать какой-то snap.

snap install chezmoi


Когда snap появился я как-то скептически к нему отнесся. Мол, чо за хуйня, есть же apt и еже подобные коробочные варианты. Больше наверное меня беспокоило что засрётся система какой-то неведомой шляпой.

Время шло и snap появился в коробке. Всё больше вкусных репок стало инсталиться именно через эту штуковину. Пришлось лезть в нору и знакомиться.

Короче snap это пакетный менеджер, кто бы мог подумать.

Фишка snap — пакеты работают на любом дистрибутиве Ubuntu, Fedora, Arch, Debian и др. без необходимости адаптации под конкретный дистрибутив.

То есть создается один пакет с софтиной и он подходит под все дистрибутивы. Красота!

Получается что-то вроде докер контейнера, который заработает на любой машине.

А еще такой софт запускается в песочнице. Тут безопасники сразу ставят плюсик.

А еще установленные пакеты автоматически обновляются в фоне и они всегда актуальны.

А еще snap пакет содержит все зависимости и библиотеки, которые требуются для запуска софтины.

То есть твой линукс не будет загажен файлами, библиотеками, доп-софтом и т.п. Всё это уже есть в рамках пакета. Никаких конфликтов, никаких танцев с бубном. Да, танцы порой случаются, но редко.

Ну ты понял… а когда применять apt, а когда snap?

➡️ snap хорошо подходит для:

— для приложений, которые часто обновляются (камень в гитлаб).
— упрощённого развёртывания на разных дистрибутивах.
— обеспечения безопасности через контейнеризацию.

➡️ apt предпочтительнее для:

— системных компонентов и пакетов, тесно интегрированных с операционной системой.
— софта, требующего максимальной производительности.

Вот и всё! Не такой snap и страшный. Вечерком еще покажу кое-что интересное (не письку).

tags: #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

🔥 Мой первый секс за деньги

Давно у нас про игрульки ничо не было. Пару штук принёс.

Картинки не стал добавлять, сам сходишь по ссылкам, посмотришь если интересно.

Нашел на просторах SysAdmin Odyssey: Back to the office, официально еще не вышла, но есть бесплатная демка.

Игруля для сисадминов, у которых задачи в бэклоге закончились, ну либо для тех кто хочет познать все прелести этой профессии до того, как выебут в жопу.

Каждый день новые таски, недовольный отдел бухгалтерии, мерзкий директор и низкая ЗП. Всё как ты любишь. Типа жиза.

Что понравилось — можно спиздить оперативку из системника.


➡️ Потыкай, затягивает: лежит тут

🅰️🅰️

Вторая: hack_me

Тут примеряешь чёрную шляпу и хуячишь сервера крупных компаний. Всё как по настоящему, sql инъекции, эксплоиты, логи и т.п. Игра вдохновлена сериалом «Мистер Робот»

Написал русскоговорящий чел, по отзывам прям конфета. Лично не тыкал, но коллеги порекомендовали взамен Animal Crossing. Единственный минус, игра жадная, но не дорогая, регулярно под скидками.

Надо бы её заревёрсить и крякме написать. Если найдешь бесплатно, кидай ссылку в комменты, потыкаем дружно и в пряник тебе дадим.


➡️ Забираем тут

tags: #games

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Проект переехал на кубы? Поможем разобраться с новыми задачами 🔥

🔸Научим разворачивать инфраструктуру k8s, обслуживать кластер и его сервисы
🔸Подготовим к работе в DevOps-проектах
🔸Расскажем, как поддерживать k8s, находить неисправности и решать проблемы
🔸Покажем, как внедрить CI/CD, настраивать мониторинг и управлять контейнеризированными приложениями

16 декабря Слёрм запускает новый поток курса «Kubernetes: База» для инженеров и администраторов.

Программа курса обновлена в июле 2024 года. Внутри:

👉 6 недель обучения
👉 73% практики и работы со стендами
👉 5 онлайн-встреч со спикерами
👉 итоговая сертификация

Узнать подробности и занять место на потоке — по ссылке ⬅️

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Bash Days | Linux | DevOps

Selectel Admin MeetUp
 
5 декабря в 19:00 Selectel проведет Admin MeetUp.
 
На митапе участники и спикеры рассмотрят практики безопасной разработки и способы их внедрения, обсудят, как автоматизировать эти проверки, а также познакомятся поближе с Docker Buildx.
 
В программе мероприятия три доклада:
- «Как защититься от внешних атак с помощью Crowdsec? Обзор альтернативных WAF/IPS/IDS/NGFW решений» Спикер — Андрей Ефремов, инженер по информационной безопасности, Selectel
- «Автоматизация DevSecOps: запускаем конвейер». Спикер — Артем Бердашкевич, руководитель отдела обеспечения безопасности в разработке, Positive Technologies
- «Мультистейдж-сборка проекта на Docker Buildx: миф или реальность?». Спикер — Верис Евгений, программист отдела разработки Группы управляющих приложений, ИнфоТеКС
 
Приходите офлайн в офис Selectel в Санкт-Петербурге или подключайтесь онлайн.
 
Мероприятие бесплатное. Посмотреть программу митапа и зарегистрироваться: https://slc.tl/7llg5

Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwMnDzX

Читать полностью…

Bash Days | Linux | DevOps

В сложных распределённых IT-системах разные компоненты постоянно обмениваются сообщениями. Брокеры сообщений нужны, чтобы контролировать этот обмен, — и Apache Kafka один из них.

Apache Kafka — это распределённая система, предназначенная для обработки потоков данных в режиме реального времени. Её можно сравнить с почтой — одни сервисы передают туда сообщения-письма, а другие — получают.

На курсе «Apache Kafka для разработки и архитектуры» от Яндекс Практикума за 3 месяца вы освоите навыки, которые помогут работать с более сложными продуктами и сможете повысить свой уровень, как специалист. Наш курс не про базу работы с Apache Kafka, а про комплексное погружение в инструмент.

Cамое главное никаких давно снятых видео и длинных лекций. Теория и практика проходят в интерактивном учебнике в удобном темпе без жёстких дедлайнов! А воркшопы с опытными разработчиками, рассказывающих о лучших практиках и разбирающих сложные кейсы, можно смотреть в записи, если вы не успеваете их посетить.

Начните учиться уже сейчас!
Пройдите бесплатный тест и поймите, подходит ли вам курс.

Читать полностью…

Bash Days | Linux | DevOps

Не упустите шанс посетить бесплатный вебинар по настройке кластера Elasticsearch 8 от OTUS!

🌟 Спикер Андрей Буранов, опытный системный администратор, расскажет о том, как настроить кластер из 3-х нод, определить статус кластера и индексов, а также многое другое.

На вебинаре вы узнаете:

- 📊 Что такое шарды и реплики
- ⚙️ Как настроить кластер Elasticsearch 8
- 🔍 Как определить статус кластера и индексов
- 🗺 Как выяснить местоположение шарда и количество его реплик
- ➕ Как добавить новую ноду в существующий кластер

Присоединяйтесь к нам 26 ноября в 20:00 и получите 10% скидку на курс "Administrator Linux. Professional" при регистрации! 🎉

📚 Программа курса:

- Архитектура Linux
- Управление, безопасность и мониторинг
- Linux и сеть
- Сервисы Linux
- Проектная работа

Вебинар будет полезен системным администраторам и девопсам. Не упустите возможность повысить свою квалификацию! 🚀

👉 Зарегистрироваться на вебинар: https://vk.cc/cFcQaB

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

🍋 Кому то лимонов ящик, а кому то от хуя хрящик

В выходные нужно отдыхать ребят, выходные заебись!

Читать полностью…

Bash Days | Linux | DevOps

А давай я научу тебя девопсу. За 5 дней. Результат до/после гарантирую.

Почитал умные книжки, посмотрел ютубчик и научился кубы ворочать? Ага-ага.

Только тебя палкой не били, а я буду.

🙃 Короче кто не успел запрыгнуть в августе в последний вагон Linux Factory, сейчас самое время, по летнему движу 5000р 2500р

Внутри почти 2 сезона:

1. Ansible
2. Gitlab CI/CD YML + Docker + Hashi Vault
3. Traefik
4. Prometheus + Consul + VM + Grafana
5. Terraform (Selectel/Yandex)
6. и многое другое…

будут кубы, охуенные циркули и база без воды

После интенсива ты охуеешь от бест-практик и научишься делать ха-ра-шо.

Киллер фича — ты со мной на связи, решаем вопросы 1x1.

Более подробно про интенсив можешь почитать тут и тут.

➡️ Залетай и жми кнопочки: @tormozilla_bot

В номере заказа ничего писать не нужно.

По всем вопросам можешь писать сюда: @linuxfactorybot

Читать полностью…

Bash Days | Linux | DevOps

⚡️Всероссийский Хакатон ФИЦ 2024

🚀Попробуйте себя в одном из предложенных кейсов:
1. Семантический делитель текстов: Разработать алгоритм, который сможет обеспечить точное разделение текста на блоки в рамках произвольно заданных ограничений размера блока.

2. Контекстный перевод названий научных работ: Разработать и реализовать переводчик, который будет переводить названия научных работ с русского на английский.

3. Прогнозирование бизнес драйверов: Разработать решение для задачи прогнозирования временных рядов бизнес-драйверов и произвести прогноз на следующий календарный месяц.

4. Система контроля и управления доступом: Разработка системы контроля и управления доступом в реальном времени. Система будет включать API для управления сотрудниками, точками доступа и интеграцию с системой видеонаблюдения.

И другие 16 кейсов смотрите на сайте: https://фиц2024.рф/hackathon

Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.

🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря

Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon

Реклама. ООО "Акселератор возможностей". ИНН: 9704005146, erid:2Vtzqx7uLUP

Читать полностью…

Bash Days | Linux | DevOps

⚡Как получить миллион на перенос IT-инфраструктуры?
 
Ищите ответ в официальном канале Selectel. Там регулярно публикуются новости об акциях и полезные материалы об IT.

Читать полностью…
Subscribe to a channel