В LF ребята частенько впадают в ступор, пытаются запушить в мастер, а оно такое — эй дядя, иди на хуй, такой ветки нет!
Мануалы связанные с этим есть, а ветки нет?
ㅤ
В смысле блядь нет? Всю жизнь была, а теперь нет?
Это давнишняя история. Ёбнутые дядьки с загнивающего запада кукухой поехали и такие — мы потомки рабов, негоже нас оскорблядь!
А в чем оскорбление?
Обида на слово
Это можно трактовать как — «хозяин». А если ты еще и выгоревший в угли разработчик, то тебе пиздец наверное обидно.
Ты типа
Ну короче ты понял, господа ёбу дали, лишь бы не работать.
Ничо против не имею, у каждого свои загоны.
Теперь в лучшем случае гит ветка по умолчанию называется —
А какая ветка у тебя основная? У меня «master», ебал я эти качели.
Подробнее и душераздирающе можно почитать тут (на русском), особенно комменты доставляют удовольствие.
tags: #рабочиебудни #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Мануалы связанные с этим есть, а ветки нет?
ㅤ
В смысле блядь нет? Всю жизнь была, а теперь нет?
Притащу сюда, раз из 10 человек 2е обязательно поинтересуются. Буду ссылку на пост давать, оптимизация процессов.
Это давнишняя история. Ёбнутые дядьки с загнивающего запада кукухой поехали и такие — мы потомки рабов, негоже нас оскорблядь!
А в чем оскорбление?
Обида на слово
«master»Это можно трактовать как — «хозяин». А если ты еще и выгоревший в угли разработчик, то тебе пиздец наверное обидно.
Ты типа
slave (раб), а целая ветка в гите — «хозяин».Отправляйся на плантацию в IDE и ебашь больше кода, а затем приноси его «хозяину»!
Ну короче ты понял, господа ёбу дали, лишь бы не работать.
Ничо против не имею, у каждого свои загоны.
Теперь в лучшем случае гит ветка по умолчанию называется —
«main».А какая ветка у тебя основная? У меня «master», ебал я эти качели.
Подробнее и душераздирающе можно почитать тут (на русском), особенно комменты доставляют удовольствие.
tags: #рабочиебудни #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
22 49
Увидал сегодня у коллеги такое:
это кусок ансибла если чо
Что это за ебать костыль и нахуя?
ㅤ
А это оказывается регламент такой внутренний, какие-то требования, которые должны быть применены при настройке новых серверов. И это только 1% из этого плейбука, показать весь по объективным причинам не могу.
Короче суть — создается чистая переменная
Обычно это делается для повышения безопасности или для обеспечения предсказуемого поведения скриптов.
Определяются только базовые пути.
Безопасность:
- Уменьшается риск выполнения вредоносного кода из непредсказуемых каталогов.
- Снижается вероятность атаки типа Path Hijacking, когда злоумышленник подсовывает вредоносные программы в каталоги, находящиеся в начале
Предсказуемость:
- Скрипты и процессы используют конкретные версии утилит, а не случайные исполняемые файлы из пользовательских каталогов.
Чистая среда для скриптов:
- В автоматизированных сценариях, например, в CI/CD, чистая
Системное администрирование:
- При диагностике или отладке минимальный
Например:
Такой подход гарантирует, что скрипт будет использовать только проверенные исполняемые файлы из системных каталогов.
Тема конечно больше про безопасность и в обычной жизни встречается крайне редко, всем насрать на Path Hijacking.
Пусть за это специально обученные люди отвечают. У нас лапки.
tags: #linux
—
🔔 @bashdays➡️ @gitgate
- name: Установка глобального PATH для Linux
hosts: all
become: true
tasks:
- name: Создать скрипт для глобального PATH
copy:
dest: /etc/profile.d/custom_path.sh
content: |
export PATH="/usr/bin:/bin"
mode: '0644'
notify: Reload profile
handlers:
- name: Reload profile
command: source /etc/profile
это кусок ансибла если чо
Что это за ебать костыль и нахуя?
ㅤ
А это оказывается регламент такой внутренний, какие-то требования, которые должны быть применены при настройке новых серверов. И это только 1% из этого плейбука, показать весь по объективным причинам не могу.
Короче суть — создается чистая переменная
PATH, на глобальном уровне.Обычно это делается для повышения безопасности или для обеспечения предсказуемого поведения скриптов.
Определяются только базовые пути.
Безопасность:
- Уменьшается риск выполнения вредоносного кода из непредсказуемых каталогов.
- Снижается вероятность атаки типа Path Hijacking, когда злоумышленник подсовывает вредоносные программы в каталоги, находящиеся в начале
PATH.Предсказуемость:
- Скрипты и процессы используют конкретные версии утилит, а не случайные исполняемые файлы из пользовательских каталогов.
Чистая среда для скриптов:
- В автоматизированных сценариях, например, в CI/CD, чистая
PATH помогает избежать конфликтов из-за пользовательских переменных окружения.Системное администрирование:
- При диагностике или отладке минимальный
PATH позволяет исключить влияние пользовательских и нестандартных путей.Например:
#!/bin/bash
export PATH=/usr/bin:/bin
if ! command -v curl &> /dev/null; then
echo "curl не установлен или не доступен в чистом PATH"
exit 1
fi
echo "curl доступен, продолжаем..."
Такой подход гарантирует, что скрипт будет использовать только проверенные исполняемые файлы из системных каталогов.
Тема конечно больше про безопасность и в обычной жизни встречается крайне редко, всем насрать на Path Hijacking.
Пусть за это специально обученные люди отвечают. У нас лапки.
tags: #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
27 71
Так ребята, писал давненько скрипт одному упоротому безопаснику на заводе.
Задача стояла такая: Я работаю в офисе и порой хожу посрать, но кругом хакеры, ноут с собой постоянно таскать не могу, он прибит гвоздями, а терпеть не вариант.
ㅤ
Ну ты понял. Тип захотел, чтобы его ноут сфоткал ебальник коллеги, который возможно вынашивает коварный план. И однажды попытается взломать его пароль из 128 символов.
Сказано сделано, дополнительно прикрутил фичу с оправкой фотки в телегу.
Делаем скрипт исполняемым (иксим через чмод), кидаем этот скрипт например сюда:
Добавляем строчку в
Если хочешь чтобы скрипт был обязателен для выполнения, замени
Работает так:
- При неудачной аутентификации PAM вызывает скрипт ebalo_send.sh
- Скрипт делает снимок ебальника с камеры и отправляет его в телегу
Такие дела. Бери на вооружение, может где-то и пригодится.
Ну и свои варианты кидай в комменты, всяко чото интересное всплывет.
tags: #linux #security #bash
—
🔔 @bashdays➡️ @gitgate
Задача стояла такая: Я работаю в офисе и порой хожу посрать, но кругом хакеры, ноут с собой постоянно таскать не могу, он прибит гвоздями, а терпеть не вариант.
ㅤ
Ну ты понял. Тип захотел, чтобы его ноут сфоткал ебальник коллеги, который возможно вынашивает коварный план. И однажды попытается взломать его пароль из 128 символов.
Сказано сделано, дополнительно прикрутил фичу с оправкой фотки в телегу.
Публикую как есть, оптимизировать задачи не было, нужно было сделать вчера.
#!/bin/bash
# Херачим переменные
TOKEN="BOT_TOKEN"
CHAT_ID="CHAT_ID"
USER=$(whoami)
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
IMAGE_PATH="/tmp/ebalo-${USER}-${TIMESTAMP}.png"
# Делаем фотку с вебки
if ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 "$IMAGE_PATH"; then
echo "✅ Ебальник успешно захвачен: $IMAGE_PATH"
else
echo "❌ Ошибка: Не удалось захватить ебальник"
exit 1
fi
# Пулим фотку в телегу
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendPhoto" \
-F chat_id="$CHAT_ID" \
-F photo="@$IMAGE_PATH" \
-F caption="🚨 Хакер пойман, лови ебальник: $USER на $(hostname)")
# Проверяем респонс
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo "📨 Ебальник успешно отправлен в Telegram"
else
echo "❌ Ошибка: Не удалось отправить ебальник в Telegram"
echo "Ответ Telegram API: $RESPONSE"
fi
# Подчищаем за собой
rm -f "$IMAGE_PATH"
Делаем скрипт исполняемым (иксим через чмод), кидаем этот скрипт например сюда:
/usr/local/bin/Добавляем строчку в
/etc/pam.d/common-authauth optional pam_exec.so /usr/local/bin/ebalo_send.sh
optional = скрипт не блокирует аутентификацию, даже если выплюнет ошибкуЕсли хочешь чтобы скрипт был обязателен для выполнения, замени
optional на required.Работает так:
- При неудачной аутентификации PAM вызывает скрипт ebalo_send.sh
- Скрипт делает снимок ебальника с камеры и отправляет его в телегу
Да, не забудь проверить что у PAM есть разрешение на доступ к /dev/video0 и на выполнение скрипта.
Такие дела. Бери на вооружение, может где-то и пригодится.
Ну и свои варианты кидай в комменты, всяко чото интересное всплывет.
tags: #linux #security #bash
—
Please open Telegram to view this post
VIEW IN TELEGRAM
15 166
В каждом из нас живет «Топографический кретин», это такое общее понятие. Например, когда путаешь лево и право или коммит разработчика с куском гавна.
Меня это коснулось с командами
ㅤ
На помощь пришли «якоря». Это что-то из психологии или НЛП, точно уже не помню, не скажу.
Кароче когда начинаешь троить, на примере с ложкой, задаёшь себе вопрос — ты какой рукой жопу вытираешь? Вот та рука у тебя Правая. Ну а если ты левша, соответственно ревёрсим.
Аналогичный якорь получился установить с чмодами и човнами. Но уже без вопросов, а с осознания того что означают эти слова.
В первом случае ключевое слово: Owner (владелец), английский я знаю, поэтому якорюсь на английское «овнер».
Овнер значит работа с правами. (часто слышал от пиэмов — кто сука овнер у этой задачи?)
Соответственно для второго, ключевое слово: Mode (режим доступа), якорюсь конкретно на «моде».
У этого файла должны быть «модные» права доступа.
Такое вот наглядное применение «психологических» приёмчиков в айти. Теперь я эти команды никогда не путаю и даже якоря уже не нужны, довел руки до мышечной памяти.
Кстати с ключами по tar аналогично, в чатике как-то обсуждали эту тему. Илья закинул якорей типа:
Такие дела. Любой кретинизм можно забагфиксить, хоть и костылями, но работать будет.
А у тебя какой «кретинизм»? На чем троишь? Пиши в комменты, попиздим.
tags: #linux #рабочиебудни
—
🔔 @bashdays➡️ @gitgate
Меня это коснулось с командами
chmod и chown. Ну вот блядь так получилось. Как только нужно права поменять или атрибуты поставить — хуй там плавал, начинаю троить и перепроверять себя в гугле.ㅤ
На помощь пришли «якоря». Это что-то из психологии или НЛП, точно уже не помню, не скажу.
Кароче когда начинаешь троить, на примере с ложкой, задаёшь себе вопрос — ты какой рукой жопу вытираешь? Вот та рука у тебя Правая. Ну а если ты левша, соответственно ревёрсим.
Аналогичный якорь получился установить с чмодами и човнами. Но уже без вопросов, а с осознания того что означают эти слова.
chown = change owner
chmod = change mode
В первом случае ключевое слово: Owner (владелец), английский я знаю, поэтому якорюсь на английское «овнер».
Овнер значит работа с правами. (часто слышал от пиэмов — кто сука овнер у этой задачи?)
Соответственно для второго, ключевое слово: Mode (режим доступа), якорюсь конкретно на «моде».
У этого файла должны быть «модные» права доступа.
Такое вот наглядное применение «психологических» приёмчиков в айти. Теперь я эти команды никогда не путаю и даже якоря уже не нужны, довел руки до мышечной памяти.
Кстати с ключами по tar аналогично, в чатике как-то обсуждали эту тему. Илья закинул якорей типа:
czf - create ze file
xzf - eXtract ze file
Такие дела. Любой кретинизм можно забагфиксить, хоть и костылями, но работать будет.
А у тебя какой «кретинизм»? На чем троишь? Пиши в комменты, попиздим.
tags: #linux #рабочиебудни
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 75
А тебе дадут НГ премию?
Anonymous Poll
25%
конечно, это фича
39%
ага и алмазов насыпят
7%
я в дримтиме, у нас раф на кокосе
29%
а чо ваще?
10 19
Forwarded from Tagd Tagd
Что считать премией?
Anonymous Poll
29%
Любую сумму
3%
до 10% от зарплаты
14%
до 50 % от зарплаты
34%
Не менее 1 ЗП
21%
Более 1 ЗП
10 25
Просто напомню. Для получения уникальных значений файла служит программа uniq. Беда в том, что она работает только с отсортированными данными.
🔤 🔤 🔥 🔤 🔤 🔤 🔤
ㅤ
Я уже также приводил конструкцию на awk которая извлекает из файла уникальные значения, но без требования сортировки:
Она основана на использовании ассоциативных массивов, у которых ключ (текстовый индекс) всегда уникален.
Я подумал, что на bash такое тоже можно реализовать, ведь в bash тоже есть ассоциативные массивы. Да, конечно не так изящно, и уж, конечно, не быстро. Но зато чистый bash. Но может кому-то пригодится. Приведу сразу все примеры:
Напомню, что алгоритм на awk/bash держит весь массив уникальных значений в памяти, поэтому при больших файлах ее может потребоваться много. Хотя при реализации на bash, Вы скорее умрете от старости, чем закончится память :-)
tags: #bash #linux
—
🔔 @bashdays➡️ @gitgate
sort "filename"|uniq
ㅤ
Я уже также приводил конструкцию на awk которая извлекает из файла уникальные значения, но без требования сортировки:
awk '!a[$0]++' $RF
Она основана на использовании ассоциативных массивов, у которых ключ (текстовый индекс) всегда уникален.
Алгоритм описан здесь.
Я подумал, что на bash такое тоже можно реализовать, ведь в bash тоже есть ассоциативные массивы. Да, конечно не так изящно, и уж, конечно, не быстро. Но зато чистый bash. Но может кому-то пригодится. Приведу сразу все примеры:
#!/bin/bash
clear
declare RF="./rnd_file.txt"
:> $RF # создали файл 10000 значений
# в диапазоне 0-4
for i in {1..10000};do
echo $(($SRANDOM%5))>>$RF
done
echo '#results'
echo '#sort|uniq'
sort $RF|uniq
echo '#uniq on AWK'
awk '!a[$0]++' $RF
echo '#uniq on #BASH'
declare -A A=
cat $RF |
while read -e rec;do
((A["$rec"]++)) || echo "$rec"
done
#results
#sort|uniq
#0
#1
#2
#3
#4
#uniq on AWK
#1
#2
#4
#0
#3
#uniq on #BASH
#1
#2
#4
#0
#3
Напомню, что алгоритм на awk/bash держит весь массив уникальных значений в памяти, поэтому при больших файлах ее может потребоваться много. Хотя при реализации на bash, Вы скорее умрете от старости, чем закончится память :-)
tags: #bash #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
А мы с вами ребят могучие! Итоги года подводить такое себе, но скажу без хуйни — спасибо тебе что читаешь, делишься своим мнением в чатике да и вообще. Без тебя ничего бы не получилось.
Короче спасибо и с наступающим! Здоровья, тебе и твоим близким, всё остальное — хуйня!
Как сказал Дима в @gitgate — Личная благодарность всем кто участвовал и помогал! Вы все молодцы и красавчики и красавицы!
По мере возможностей в каникулы буду подгонять годноту, но ничего не обещаю, рекламных интеграций вроде нет, максимум про Linux Factory буду загонять, шоб ты акцию не просрал и не ждал майских, не обессудь.
С Наступающим ребят, всего тебе самого хорошего, искренне!🥳 ❤️ С уважением ко всем, Шубин Роман Олегович
Кстати самый топовый пост Not again за год тут
И еще мне Selectel прислал всетаки НГ коробочку, моё почтение, зря я ныл в чатике, отдельно потом напишу покажу. Спасибо!
Короче спасибо и с наступающим! Здоровья, тебе и твоим близким, всё остальное — хуйня!
Как сказал Дима в @gitgate — Личная благодарность всем кто участвовал и помогал! Вы все молодцы и красавчики и красавицы!
По мере возможностей в каникулы буду подгонять годноту, но ничего не обещаю, рекламных интеграций вроде нет, максимум про Linux Factory буду загонять, шоб ты акцию не просрал и не ждал майских, не обессудь.
С Наступающим ребят, всего тебе самого хорошего, искренне!
Кстати самый топовый пост Not again за год тут
И еще мне Selectel прислал всетаки НГ коробочку, моё почтение, зря я ныл в чатике, отдельно потом напишу покажу. Спасибо!
Please open Telegram to view this post
VIEW IN TELEGRAM
52 87
Я тут щас чет подумал — а что бы я хотел сейчас получить от Деда блядь Мороза?
ㅤ
Понятно дело — здоровье, но так нельзя, нужно что-то материальное.
Ну ладно, раньше я мечтал про блок жвачек «черепашки-ниндзя» те самые с карточками которые были, либо жвачки с вкладышами маленьких денег разных стран.
Потом я мечтал об электро-гитаре, даже самой уёбищной, палке-металки.
Потом я перестал делать ставки на Деда блядь Мороза и стал рвать жопу и закрывать свои базовые потребности. Жвачки, гитары и т.п.
Но сейчас? Если представить что ничего этого не было — чтобы я хотел получить на Новый Год?
Новую педальку с дисторшеном и квакалку? Очередной оффер на 500к в месяц? Палку-ебалку? Да нее…
Из материального я бы хотел получить на НГ от Деда блядь Мороза — НИХУЯ! Потому что, не нужно на кого-то надеяться и чего-то ждать.
Нужно самим делать вещи и закрывать свои потребности. Ты сам себе Дед блядь Мороз!
Сказка с дедом отличная, возможно работает на мажорах у которых всё уже с рождения готово и хуй во рту, но для рядовых посетителей этого мира эта сказка работает наоборот.
К чему это я, если ничо не радует — порадуй себя сам, будь сам Дедом блядь Морозом в своем 127.0.0.1 периметре. Порадуй себя тем, что у тебя есть.
Я хуй знает зачем это написал, просто реально не знаю чего бы я хотел чтобы мне насрали положи под елочку. Всёж есть, кроме здоровья.
Ну и вопрос, или нет… Короче напиши в комменты чтобы ты хотел получить материального на НГ и возможно это каким-то хреном сбудется. Квартиры и машины не в счет, это банально.
Всех обнял, с Наступающим 🎄
tags: #рабочиебудни
—
🔔 @bashdays➡️ @gitgate
ㅤ
Понятно дело — здоровье, но так нельзя, нужно что-то материальное.
Ну ладно, раньше я мечтал про блок жвачек «черепашки-ниндзя» те самые с карточками которые были, либо жвачки с вкладышами маленьких денег разных стран.
Потом я мечтал об электро-гитаре, даже самой уёбищной, палке-металки.
Потом я перестал делать ставки на Деда блядь Мороза и стал рвать жопу и закрывать свои базовые потребности. Жвачки, гитары и т.п.
Но сейчас? Если представить что ничего этого не было — чтобы я хотел получить на Новый Год?
Новую педальку с дисторшеном и квакалку? Очередной оффер на 500к в месяц? Палку-ебалку? Да нее…
Из материального я бы хотел получить на НГ от Деда блядь Мороза — НИХУЯ! Потому что, не нужно на кого-то надеяться и чего-то ждать.
Нужно самим делать вещи и закрывать свои потребности. Ты сам себе Дед блядь Мороз!
Сказка с дедом отличная, возможно работает на мажорах у которых всё уже с рождения готово и хуй во рту, но для рядовых посетителей этого мира эта сказка работает наоборот.
К чему это я, если ничо не радует — порадуй себя сам, будь сам Дедом блядь Морозом в своем 127.0.0.1 периметре. Порадуй себя тем, что у тебя есть.
Я хуй знает зачем это написал, просто реально не знаю чего бы я хотел чтобы мне насрали положи под елочку. Всёж есть, кроме здоровья.
Ну и вопрос, или нет… Короче напиши в комменты чтобы ты хотел получить материального на НГ и возможно это каким-то хреном сбудется. Квартиры и машины не в счет, это банально.
Всех обнял, с Наступающим 🎄
tags: #рабочиебудни
—
Please open Telegram to view this post
VIEW IN TELEGRAM
28 137
Нашел на просторах пиздатый генератор реверс-шелов, разнообразие способов просто зашкаливает.
ㅤ
Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить.
Забирай, пригодится: https://www.revshells.com/
🎄 Ну и еще раз с Наступающим! Нарезали салатиков?
tags: #utilites #linux #security
—
🔔 @bashdays➡️ @gitgate
ㅤ
Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить.
Забирай, пригодится: https://www.revshells.com/
По реверс-шелам у меня есть отдельный пост с подробным мануалом.
🎄 Ну и еще раз с Наступающим! Нарезали салатиков?
tags: #utilites #linux #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
11 74
Такс, пора выходить из новогодней комы и включаться в работу.
При манипуляции с логами, ты можешь столкнуться с какими-то непонятными
ㅤ
Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.
Системные логи это:
Рассмотрим пример:
Не проверял, но суть ты поймешь.
Здесь я завернул логи приложения в категорию
Например, закинуть его в эластик:
Ну или обработать локально в файл:
Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.
Практика использования
Такие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости.
Изучай!
tags: #linux #monitoring
—
🔔 @bashdays➡️ @gitgate
При манипуляции с логами, ты можешь столкнуться с какими-то непонятными
local0 – local7. Чо эт ваще такое?ㅤ
Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.
Суть этих категорий — не смешивать выхлоп пользовательских программ с системными логами.
Системные логи это:
auth, daemon, mail, kern и т.д. Эти штуки ты можешь встретить например при настройке rsyslog конфига.Рассмотрим пример:
import syslog
syslog.openlog(ident="BashDays", facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, "Привет из local0")
Не проверял, но суть ты поймешь.
Здесь я завернул логи приложения в категорию
local0. И теперь могу открыть этот local0 и обрабатывать как мне нужно.Например, закинуть его в эластик:
local0.* @log.bashdays.com:514
Ну или обработать локально в файл:
local0.* /var/log/local0.log
Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.
Практика использования
local0: логи веб-сервера
local1: для docker контейнеров
local2: логи бекапов
local3: логи крон скриптов
local4–local7: резервные
Такие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости.
Изучай!
tags: #linux #monitoring
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 64
This media is not supported in your browser
VIEW IN TELEGRAM
Последний вагон. Напоминалка короче, для тех кто упустил момент или только что вышел из НГ комы.
1. Акция на LF заканчивается 12.01 (5000р 2500р), вписаться здесь.
Если бот не отвечает — напиши ему /start
2. Бесплатный курс по Bash от Tagd стартует 11.01, вписать здесь.
3. Завтра снова пятница.
По всем вопросам можешь писать сюда: @linuxfactorybot
1. Акция на LF заканчивается 12.01 (
Если бот не отвечает — напиши ему /start
2. Бесплатный курс по Bash от Tagd стартует 11.01, вписать здесь.
3. Завтра снова пятница.
По всем вопросам можешь писать сюда: @linuxfactorybot
Вчера в посте пролетала строчка:
И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?
Магии тут нет, символ
Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.
ㅤ
Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.
По итогу получаешь:
- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.
Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.
Запоминаем:
Раз «собака» = UDP
Два «собака» = TCP
Что чаще применяют?
UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».
Такие дела.
tags: #linux #monitoring
—
🔔 @bashdays➡️ @gitgate
local0.* @log.bashdays.com:514
И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?
Магии тут нет, символ
«@» означает протокол передачи UDP.Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.
ㅤ
Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.
local0.* @@log.bashdays.com:514
По итогу получаешь:
- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.
Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.
Запоминаем:
Раз «собака» = UDP
Два «собака» = TCP
Что чаще применяют?
UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».
Такие дела.
tags: #linux #monitoring
—
Please open Telegram to view this post
VIEW IN TELEGRAM
По технической части я хуй знает чо те написать, поэтому закину свои меморисы (2021) на сон грядущий, прям из стола. Мало кто их видел.
Как научиться договариваться. Часть 1.
ㅤ
Похуй насчет чего, с клиентом, руководителем, коллегами, тетей Зиной, котом, чайником. Погнали.
Ты ебать интроверт, проще в одну харю чето сделаешь, чем привлечешь внешнюю помощь.
Тебя нахуй пугают телефонные переговоры, ты рад, что пандемия и можно носить маску на пол еблища и никто не замечает твоего страха.
К директору за повышением ты не ходишь, ссышь, сидишь и ждешь годами пока там сами решат тебе кинуть кусок.
В магазине ты быстро покупаешь продукты и моментально съебываешься в свою нору.
Если возникает какая-то коммунальная авария в твоей халупе, для тебя это конец света, так как очень некомфортно вызывать мастеров.
Тебя можно описать тремя словами — Неуверенность. Смущение. Отчаяние.
Короче я сам в такую пиздень как-то попал, ноги росли от перехода на удаленку.
Да я и до удаленки себя некомфортно чувствовал, а уж в изоляции весь этот пиздец в тысячу раз усилился.
В общем если все выше написанное про тебя, то я тебя обрадую — ни одна книга в мире тебе не поможет.
Как поступает большинство людей, когда пытаются разобраться с проблемой?
Правильно, начинают читать книжки и гуглить. Нахватавшись из книжек всяких советов по софт-скиллам и психологии, ты ебать такой идешь на переговоры, вроде и знаний до ебени матери уже получил, но чото нихуя не работает, ты снова засунул язык в жопу и мычишь.
Тебя по-прежнему трясет, ничего не изменилось. Ты прочитал кучу говна, которая тебе никак не помогла. Встань щас и выкинь нахуй все эти книги, нехуй на них тратить время и деньги. Они не помогут тебе победить страх.
А знаешь чо помогает? А вот чего — ходи регулярно на всякие встречи, выступай, комментируй, как-то проявляй себя, высказывай свое мнение, спорь.
Чем больше у тебя будет таких встреч, тем быстрее у тебя пройдет страх.
Твоя башка просто привыкнет к ситуации общения и ты уже не будешь так сильно бояться и ссаться в штанину. Сначала будет очень страшно, потом станет похуй.
Понятно, что такие встречи отнимают много времени, но это единственный способ вернутся к нормальной жизни и стать здоровым человеком.
Кстати есть еще один вариант. Можешь напиздярится в тряпки алкашкой. Но вариант такой себе. Страх пройдет, но могут быть побочки. Советовать этот вариант не буду. Тут сам решай.
Все книги по переговорам и психологии общения, дадут тебе базовые знания и стратегические скиллы. К примеру как правильно что-то попросить, как задать вопрос, как ебнуть смешной анекдот.
Грузить наукой не буду, все что ты читаешь в книгах остается у тебя в специальном разделе мозга (неокортекс). А вот боязнь попиздеть с людьми находится в зоне эмпатии.
Эта зона появилась хуй знает когда давно, в ней заложены базовые знания, как ходить, срать, жрать. Вот и переговоры входят в эту зону.
Поэтому чтобы научится разговаривать с людьми и не убегать со страху, нужно тренироваться. Тыж не сразу ходить научился, тренировался и научился, тут такой же принцип.
Прочитав книгу «Как научится играть на гитаре», ты нихуя не научишься играть на гитаре, тебе нужна гитара и практика. Без тренировки, не разовьется мышечный навык.
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Как научиться договариваться. Часть 1.
ㅤ
Похуй насчет чего, с клиентом, руководителем, коллегами, тетей Зиной, котом, чайником. Погнали.
Ты ебать интроверт, проще в одну харю чето сделаешь, чем привлечешь внешнюю помощь.
Тебя нахуй пугают телефонные переговоры, ты рад, что пандемия и можно носить маску на пол еблища и никто не замечает твоего страха.
К директору за повышением ты не ходишь, ссышь, сидишь и ждешь годами пока там сами решат тебе кинуть кусок.
В магазине ты быстро покупаешь продукты и моментально съебываешься в свою нору.
Если возникает какая-то коммунальная авария в твоей халупе, для тебя это конец света, так как очень некомфортно вызывать мастеров.
Тебя можно описать тремя словами — Неуверенность. Смущение. Отчаяние.
Короче я сам в такую пиздень как-то попал, ноги росли от перехода на удаленку.
Да я и до удаленки себя некомфортно чувствовал, а уж в изоляции весь этот пиздец в тысячу раз усилился.
В общем если все выше написанное про тебя, то я тебя обрадую — ни одна книга в мире тебе не поможет.
Как поступает большинство людей, когда пытаются разобраться с проблемой?
Правильно, начинают читать книжки и гуглить. Нахватавшись из книжек всяких советов по софт-скиллам и психологии, ты ебать такой идешь на переговоры, вроде и знаний до ебени матери уже получил, но чото нихуя не работает, ты снова засунул язык в жопу и мычишь.
Тебя по-прежнему трясет, ничего не изменилось. Ты прочитал кучу говна, которая тебе никак не помогла. Встань щас и выкинь нахуй все эти книги, нехуй на них тратить время и деньги. Они не помогут тебе победить страх.
А знаешь чо помогает? А вот чего — ходи регулярно на всякие встречи, выступай, комментируй, как-то проявляй себя, высказывай свое мнение, спорь.
Чем больше у тебя будет таких встреч, тем быстрее у тебя пройдет страх.
Твоя башка просто привыкнет к ситуации общения и ты уже не будешь так сильно бояться и ссаться в штанину. Сначала будет очень страшно, потом станет похуй.
Понятно, что такие встречи отнимают много времени, но это единственный способ вернутся к нормальной жизни и стать здоровым человеком.
Кстати есть еще один вариант. Можешь напиздярится в тряпки алкашкой. Но вариант такой себе. Страх пройдет, но могут быть побочки. Советовать этот вариант не буду. Тут сам решай.
Все книги по переговорам и психологии общения, дадут тебе базовые знания и стратегические скиллы. К примеру как правильно что-то попросить, как задать вопрос, как ебнуть смешной анекдот.
Грузить наукой не буду, все что ты читаешь в книгах остается у тебя в специальном разделе мозга (неокортекс). А вот боязнь попиздеть с людьми находится в зоне эмпатии.
Эта зона появилась хуй знает когда давно, в ней заложены базовые знания, как ходить, срать, жрать. Вот и переговоры входят в эту зону.
Поэтому чтобы научится разговаривать с людьми и не убегать со страху, нужно тренироваться. Тыж не сразу ходить научился, тренировался и научился, тут такой же принцип.
Прочитав книгу «Как научится играть на гитаре», ты нихуя не научишься играть на гитаре, тебе нужна гитара и практика. Без тренировки, не разовьется мышечный навык.
Не знаю, писал ли я вторую часть, но если найду, закину!
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 145
Тут как-то ребята интересовались как написать свою оболочку, что-то вроде своего Баш-беляш. Ну дак вот.
ㅤ
Нашел для тебя минималистичные исходники на «сиськах».
Проект называется «psh» и он сейчас реально пока очень маленький.
А это значит, тебе не составит труда просмотреть 10 сорцов и на их основе создать что-то своё. Ну конечно если ты немного шаришь за «сиськи». Хотя там и так всё на поверхности.
➡️ Исходники тут / Демка тут
ps: А есть еще такой проект: mysh
tags: #utilites
—
🔔 @bashdays➡️ @gitgate
ㅤ
Нашел для тебя минималистичные исходники на «сиськах».
Проект называется «psh» и он сейчас реально пока очень маленький.
А это значит, тебе не составит труда просмотреть 10 сорцов и на их основе создать что-то своё. Ну конечно если ты немного шаришь за «сиськи». Хотя там и так всё на поверхности.
Если ты студент, можешь хорошо выебнуться своей длинной писькой перед преподами. И может тебя по телеку покажут, как когда-то создателя «BolgenOS» или антивируса Бабушкина.
ps: А есть еще такой проект: mysh
tags: #utilites
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишу очередной урок для LF и понадобилось мне нагенерить мусорного трафика в прометеус. Чтобы ребятам показать визуально как это будет выглядеть в графане.
Тестировщикам (QA) кстати тоже эта хуйня отлично зайдет, хайлоад там устроить.
ㅤ
Для таких дел я обычно использую 2 утилиты.
Первая (Bombardier) отлично подходит для генерации паразитного http трафика.
Вторая (Stress) можно нагрузить ядра процессора и позырить чо будет. Ну или над жестким диском надругаться или памятью.
Ну а чтобы протестировать no space left on device просто генерим большой файлик удобным тебе способом.
Установка элементарная:
Эти утилиты отлично подходят для тестирования разнообразных алертилок, к примеру alertmanager. Нагнал синтетических данных, получил соплю в графане, алертилка тригернулась и накричала в чатик. Отладил, задеплоил.
Красота и удобно! Для этих дел есть еще всякие
Такие дела, бери на вооружение, мож сгодится в хозяйстве.
tags: #utilites #highload #qa
—
🔔 @bashdays➡️ @gitgate
Тестировщикам (QA) кстати тоже эта хуйня отлично зайдет, хайлоад там устроить.
ㅤ
Для таких дел я обычно использую 2 утилиты.
1. Bombardier
2. Stress
Первая (Bombardier) отлично подходит для генерации паразитного http трафика.
bombardier -c 125 -n 10000000 https://localhost:8080
Вторая (Stress) можно нагрузить ядра процессора и позырить чо будет. Ну или над жестким диском надругаться или памятью.
stress --cpu 4
stress --hdd 100
stress --cpu 4 --vm 2 --io 1 --timeout 20
Ну а чтобы протестировать no space left on device просто генерим большой файлик удобным тебе способом.
Установка элементарная:
apt install bombardier stress
Эти утилиты отлично подходят для тестирования разнообразных алертилок, к примеру alertmanager. Нагнал синтетических данных, получил соплю в графане, алертилка тригернулась и накричала в чатик. Отладил, задеплоил.
Красота и удобно! Для этих дел есть еще всякие
wrk, ab, hey и т.п. но с ними как-то у меня не сложилось.Такие дела, бери на вооружение, мож сгодится в хозяйстве.
tags: #utilites #highload #qa
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Как правильно хранить тяжелые файлы гит репах? Например, бинарники или что-то подобное.
ㅤ
Ответ очевидный и правильный — никак! В гитлабах/гитхаба/битбакетах установлены лимиты на размер отдельных файлов. Там что-то вроде 50 метров на файл дается.
В принципе можно уложиться. Но нахуй надо. Прикинь у тебя пайплайн вытягивает репу размером с 10 гигабайт. И так каждую сборку. Гит репа должна быть тощей и дрищёвой.
А всё тяжелое будь бобр-добр храни в s3 либо на других решениях.
НО если очень хочется прям в гите держать. Для этого существует
У
В gitea тоже можно
Как этим пользоваться?
Ставим к себе на машину:
Переходим в свой гит репозиторий и инициализируем:
В папке
На самом деле я хуй знает сколько он весит, это для примера.
Помечаем его:
После этого в папке files появится файл
Внутри этот файл выглядит так:
И по итогу бинарник в репе станет ссылкой на настоящий бинарник в
А еще можно вайлдкардами трекать:
Ну а дальше, как обычно:
Всё! Теперь твой большой файл аккуратно лежит в
Мне тут пришлось партнерских постов на эту неделю понабрать, реинвестируем в развитие @gitgate, так что рекомендую включить баннерную слепоту и сильно не триггериться. Спасибо за понимание!
Чтиво: про LFS можешь глянуть еще тут и тут.
tags: #git #devops
—
🔔 @bashdays➡️ @gitgate
ㅤ
Ответ очевидный и правильный — никак! В гитлабах/гитхаба/битбакетах установлены лимиты на размер отдельных файлов. Там что-то вроде 50 метров на файл дается.
В принципе можно уложиться. Но нахуй надо. Прикинь у тебя пайплайн вытягивает репу размером с 10 гигабайт. И так каждую сборку. Гит репа должна быть тощей и дрищёвой.
А всё тяжелое будь бобр-добр храни в s3 либо на других решениях.
НО если очень хочется прям в гите держать. Для этого существует
GIT LFS. Дословно — Large File Storage (дохуя большое файловой хранилище).У
LFS уже свои лимиты в отличие от нативного git репозитория. И это LFS включен из коробки в гитлабах/гитхаба/битбакетах. Там уже размер файла может быть 1 гигабайт или что-то вроде того.В gitea тоже можно
LFS через конфиг включить:[server]
LFS_START_SERVER = true
LFS_ALLOW_PURE_SSH = true
[lfs]
PATH = /home/gitea/data/lfs
Как этим пользоваться?
Ставим к себе на машину:
apt-get install git-lfs
brew install git-lfs
Переходим в свой гит репозиторий и инициализируем:
cd /home/user/linuxfactory/infra
git lfs install
В папке
/infra/roles/node_exporter/files у меня лежит бинарник node_exporter который весит 100 мегабайтНа самом деле я хуй знает сколько он весит, это для примера.
Помечаем его:
cd /infra/roles/node_exporter/files
git lfs track "node_exporter"
После этого в папке files появится файл
.gitattributes. Это правила для этого файла, которые указывают чтобы node_exporter улетал в LFS.Внутри этот файл выглядит так:
node_exporter filter=lfs diff=lfs merge=lfs -text
И по итогу бинарник в репе станет ссылкой на настоящий бинарник в
LFS.А еще можно вайлдкардами трекать:
git lfs track "*.jpg"
Ну а дальше, как обычно:
git add .
git commit -m "add lfs for node_exporter"
git push
Всё! Теперь твой большой файл аккуратно лежит в
LFS, а в самом гит репозитории осталась лишь ссылка которая на этот файл ссылается.Мне тут пришлось партнерских постов на эту неделю понабрать, реинвестируем в развитие @gitgate, так что рекомендую включить баннерную слепоту и сильно не триггериться. Спасибо за понимание!
Чтиво: про LFS можешь глянуть еще тут и тут.
tags: #git #devops
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 52
Как я понял много кто за гит не шарит, опять же судя по ОЧЕНЬ частым вопросам в LF. Хотя очевидные вещи для одного, не всегда очевидны для другого.
Поэтому давай закрывать эти боли. Будет несколько серий постов, банально, но полезно. Пройдем максимально просто и быстро. Если чо непонятно пиши в комменты, будем разбираться.
Думал в рамках закрытого интенсива сделать, но пусть будет бесплатно.
ㅤ
Ну и первая проблема:
Не устану повторять — читай то, что тебе пишут!
Эта штука появляется в момент команды
В ошибке говорится — я хуй знает кто ты такой, давай уже определись и тогда все заработает.
То есть гит не знает от чьего имени оправлять коммит в репозиторий.
Как решать?
Ну оно тебе явно уже написало какие команды нужно забить. А забить надо пару строк:
Всё, теперь коммит подпишется и ошибка уйдет. Глобальные настройки обычно лежат в файле
Ну дак оно же глобально прописалось для всех реп??
Конечно, но это можно изменять в конфиге самой репы. То есть допустим у меня есть 2 репы:
В первом случае я хочу подписывать и отправлять коммиты как Roman Shubin, а во втором как Harbor Whore.
Сейчас на глобальном уровне в обоих случаях будет Roman Shubin.
Чтобы это пофиксить. Открываем нужную нам гит репу на своей машине, пиздуем в папку
Ну и в него добавляем секцию user.
Соответственно для второй репы делаем тоже самое, только меняем мыло и имя на нужное тебе.
Если руками в падлу писать, выполняем команды:
Тут отсутствует ключик
Ну и чтобы посмотреть кем подпишется коммит, есть команда:
Находясь в папке с репой, она выведет всю необходимую информацию. Порой очень полезно предварительно проверить, перед пушем в репу.
Ну и скучная, но важная теория:
Такие дела. Видишь, не все так сложно как ты думаешь. Завтра рассмотрим еще очень важные вещи, от которых жопа обычно горит на начальных этапах.
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Поэтому давай закрывать эти боли. Будет несколько серий постов, банально, но полезно. Пройдем максимально просто и быстро. Если чо непонятно пиши в комменты, будем разбираться.
Думал в рамках закрытого интенсива сделать, но пусть будет бесплатно.
ㅤ
Ну и первая проблема:
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <user@dev.>) not allowed
Не устану повторять — читай то, что тебе пишут!
Эта штука появляется в момент команды
git commit.В ошибке говорится — я хуй знает кто ты такой, давай уже определись и тогда все заработает.
То есть гит не знает от чьего имени оправлять коммит в репозиторий.
Как решать?
Ну оно тебе явно уже написало какие команды нужно забить. А забить надо пару строк:
git config --global user.email "[email protected]"
git config --global user.name "Roman Shubin"
Всё, теперь коммит подпишется и ошибка уйдет. Глобальные настройки обычно лежат в файле
~/.gitconfigНу дак оно же глобально прописалось для всех реп??
Конечно, но это можно изменять в конфиге самой репы. То есть допустим у меня есть 2 репы:
1. BashDays
2. LinuxFactory
В первом случае я хочу подписывать и отправлять коммиты как Roman Shubin, а во втором как Harbor Whore.
Сейчас на глобальном уровне в обоих случаях будет Roman Shubin.
Чтобы это пофиксить. Открываем нужную нам гит репу на своей машине, пиздуем в папку
.git и открываем на редактирование файл config.Ну и в него добавляем секцию user.
[user]
name = Roman Shubin
email = [email protected]
Соответственно для второй репы делаем тоже самое, только меняем мыло и имя на нужное тебе.
Если руками в падлу писать, выполняем команды:
git config user.email "[email protected]"
git config user.name "Roman Shubin"
Тут отсутствует ключик
--global. Ну и чтобы посмотреть кем подпишется коммит, есть команда:
git config --list --show-origin
Находясь в папке с репой, она выведет всю необходимую информацию. Порой очень полезно предварительно проверить, перед пушем в репу.
Ну и скучная, но важная теория:
- Если вы используете GitHub, GitLab или другую платформу, и хотите, чтобы ваши коммиты были связаны с вашим аккаунтом, то email, указанный в Git, должен совпадать с email, привязанным к вашему аккаунту на этой платформе. Это нужно для того, чтобы платформа могла корректно отображать ваши коммиты в вашем профиле.
- Если email не совпадает, коммиты все равно будут отправлены, но они не будут автоматически связаны с вашим аккаунтом на платформе.
Такие дела. Видишь, не все так сложно как ты думаешь. Завтра рассмотрим еще очень важные вещи, от которых жопа обычно горит на начальных этапах.
tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Еще один частый затык с гитом — у тебя создана чистая репа в гитлабе и локально на машине лежит уже наработанный проект. Но проект еще не под гитом.
ㅤ
Как заебенить проект в репу в гитлабе?
Первый вариант
Самый беспроигрышный и лёгкий вариант — это склонировать себе эту чистую репу в какую-нибудь папку и затем просто перетащит в эту папку все файлы из твоего проекта.
Приватные репы клонируй через
Если попробуешь склонировать приватную репу через https, оно запросит у тебя логин и пароль от учетки гитлаба/гитхаба. Но такие вещи обычно делают на ssh ключах, без хуйни и паролей.
Есть еще хороший хак, если в к конце этой команды добавить символ точки «.» через пробел, то репка склонируется в текущую папку (не будет создана папка infra) НО при условии что папка на локальной машине у тебя пустая, иначе получишьпо ебалу ошибку.
Ну а дальше по классике:
Не забываем что однажды получишь сообщение:
Всё. Никаких ебучих конфликтов, тонны комманд и т.п. все прозрачно и просто. На первых этапах прям рекомендую использовать этот способ. Меньше говна хлебнешь.
Второй вариант
Как видишь тут уже дерьма побольше, сложновато запомнить неокрепшему уму. К тому же можешь словить ряд ошибок:
Придется гуглить, делать
Теперь даже если что-то локально нахуевертил в гите, просто ёбни папку
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
ㅤ
Как заебенить проект в репу в гитлабе?
Первый вариант
Самый беспроигрышный и лёгкий вариант — это склонировать себе эту чистую репу в какую-нибудь папку и затем просто перетащит в эту папку все файлы из твоего проекта.
Приватные репы клонируй через
git@, а публичные можешь и через https. Если попробуешь склонировать приватную репу через https, оно запросит у тебя логин и пароль от учетки гитлаба/гитхаба. Но такие вещи обычно делают на ssh ключах, без хуйни и паролей.
git clone [email protected]:linuxfactory/infra.git
Есть еще хороший хак, если в к конце этой команды добавить символ точки «.» через пробел, то репка склонируется в текущую папку (не будет создана папка infra) НО при условии что папка на локальной машине у тебя пустая, иначе получишь
Ну а дальше по классике:
git add .
git commit -m "initial commit"
git push
Не забываем что однажды получишь сообщение:
Author identity unknown, про этот случай я рассказывал вчера.Всё. Никаких ебучих конфликтов, тонны комманд и т.п. все прозрачно и просто. На первых этапах прям рекомендую использовать этот способ. Меньше говна хлебнешь.
Второй вариант
cd /path/to/project
git init
git add .
git commit -m "initial commit"
git remote add origin https://gitlab.com/username/reponame.git
git push -u origin master
Как видишь тут уже дерьма побольше, сложновато запомнить неокрепшему уму. К тому же можешь словить ряд ошибок:
fatal: repository not found
remote: HTTP Basic: Access denied
remote origin already exists
Updates were rejected because the tip of your current branch is behind
error: failed to push some refs
Придется гуглить, делать
rebase или вообще конфликты решать. А решать конфликты это то еще удовольствие.Теперь даже если что-то локально нахуевертил в гите, просто ёбни папку
.git в проекте. Сделай все по первому способу и всё починится. Это намного быстрее чем разгребать и дебажить неочевидные ошибки.tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
И снова здрасти, продолжаем больные темы.
А еще ребят пиздец напрягает каждый раз делать:
Если что-то напрягает, это что-то нужно оптимизировать. Тут всё как обычно банально. Делаем алиас и избавляемся от рутины.
ㅤ
Умеешь алиасы делать? Ладно, раз тут разжевываем, покажу.
Открываешь
Не забываем сделать
В описание коммита попадет текущая дата и время. В продуктовой команде тебе конечно пизды дадут за это, но если что-то пилишь для себя то вполне допустимо.
Ну или если работаешь в VSCode или т.п. там плагины для гита есть, мышкой можешь в один клик отправлять все свои изменения в репу, без всяких алиасов.
А можно еще прям в конфиге гита сделать алиас
либо командой:
Тогда команда для коммита будет такая:
Пример файла с нативными алиасами:
тыкни на блок и он раскроется (это спойлер):
Нихуя сложного, правда же?
А вообще девопс должен знать всего две основных команды:
Всё остальное лежит на плечах разработчиков. Пусть они ебуться с мерджами, конфликтами и т.п. У девопса другие задачи.
Если уж нужно что-то смержить, смержить можно мышкой через морду или просто забить хуй.
Вот так и живем! Пользуйся!
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
А еще ребят пиздец напрягает каждый раз делать:
git add .
git commit -m "ебальник убивальник"
git push
Если что-то напрягает, это что-то нужно оптимизировать. Тут всё как обычно банально. Делаем алиас и избавляемся от рутины.
ㅤ
Умеешь алиасы делать? Ладно, раз тут разжевываем, покажу.
Открываешь
~/.bashrc или чо там у тебя ~/.zshrc и пиздяришь:alias gg="git add . && git commit -m \"$(date +'%d-%m-%Y %H:%M:%S')\" && git push"
Не забываем сделать
source ~/.bashrc && ~/.zshrc. Теперь когда нужно что-то закомитить и отправить. Просто пишем «gg» и дело в шляпе.В описание коммита попадет текущая дата и время. В продуктовой команде тебе конечно пизды дадут за это, но если что-то пилишь для себя то вполне допустимо.
Ну или если работаешь в VSCode или т.п. там плагины для гита есть, мышкой можешь в один клик отправлять все свои изменения в репу, без всяких алиасов.
А можно еще прям в конфиге гита сделать алиас
[alias]
cm = "commit -m"
либо командой:
git config --global alias.cm "commit -m"
Тогда команда для коммита будет такая:
git cm "initial commit"
Пример файла с нативными алиасами:
тыкни на блок и он раскроется (это спойлер):
[alias]
a = add
aa = add .
c = commit
cm = commit -m
s = status
pl = pull
pu = push
df = diff
b = branch
bl = branch --all
bd = branch --delete
bD = branch -D
bren = branch -m
bdr = push origin --delete
fa = fetch --all
fp = fetch -p
t = tag
tf = fetch --tags
tpu = push origin --tags
tpuacq = push acquia --tags
td = tag -d
tpur = push origin --delete
tpuacq = push acquia --delete
co = checkout
cob = checkout -b
resh = reset --hard
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --graph
clear = clean -f -d
clearw = checkout -- .
Нихуя сложного, правда же?
А вообще девопс должен знать всего две основных команды:
git push и git pullВсё остальное лежит на плечах разработчиков. Пусть они ебуться с мерджами, конфликтами и т.п. У девопса другие задачи.
Если уж нужно что-то смержить, смержить можно мышкой через морду или просто забить хуй.
Вот так и живем! Пользуйся!
tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM