Кот насрал в макбук
Причем не «На», а конкретно «Вв». Сегодня снова про гавно и котов, которые выставляют айтишников на 200к рублей.
Сторис
С утра настраивал примитивный kubernetes кластер для клиента, пилил таску с ноута, сидя на унитазе. Ну а как, удалёнка, могу себе позволить. Жил бы один, вообщеб обратно в обезьяну эволюционировал.
Короче время дейлика с другим клиентом, бросаю открытый ноут в сортире на коврик, бегу к стационарному компу где установлен zoom. 15 минут слушаю очередную хуиту от лосей, проблема не у нас, а на серверах. Классика. По привычке — выгораю, шлю нахуй, реву.
Ну и вот!
Вся эта поебень заканчивается, закидываю в кружку кофея, беру вонючий айкос и направляюсь в обсерваторию. А в кабинете меня ждет картина маслом. Ну как маслом…
Ноут который я бросил на коврик… Ему был произведен основательный апгрейд + 100500 к бренду.
Подробности описывать смысла не вижу. Все предельно просто: кот решил, что посрать на теплоё и закрыть крышку будет нативнее, чем в свой тазик.
А новое и тёплое всегда безумно манит. Тем более присутствует интерактив — закрыть крышку. Зона комфорта. Ну ты и сам это прекрасно понимаешь.
Я даже не стал визжать как сучка, мой косяк, спровоцировал животное. И так ему яйца уже заскейлили за заслуги. Уличные коты себе такого не позволяли, как этот голубых сука кровей, сеньор блядь помидор.
Напомнил знакомого, который, любил гадить в лифтах. Сейчас кстати работает JAVA разработчиком. Тоже сеньор, лифты заменил на GIT репозитории. Забавно, но ситуация страшная.
Сначала комбик за 50к, потом стена и диван в зале, а сегодня макбук за 200к. Хотя сам кот стоил всего 5к. Сомнительно конечно вложение было. Что дальше, хуй знает. Снова выгорел, поревел…
Проанализировав произошедшее, в очередной раз убедился, что от apple и кубернейтсов одно зло. Linux / Windows / Android / Bash / Ctypes наше всё.
Таску в джире пометил как кот - Blocked, а ноут выставил на авито. Так что будь аккуратнее если решишь купить б/у железяку, возможно ранее в её красивонасрали проапгрейдили.
В комментах фото этого диверсанта. Результат апгрейда выкладывать не буду, у меня психологическая травма. Но если есть любители прекрасного, пишите Максу, он скинет.
И всегда помни — даже если кот кастрирован, с его жопой ты ничего не сделаешь. Максимум сможешь провести ретроспективу по методологии «Scrum».
Говорят в айти охуенно весело. Справедливо!
tags: #рабочиебудни
—
Причем не «На», а конкретно «Вв». Сегодня снова про гавно и котов, которые выставляют айтишников на 200к рублей.
Сторис
С утра настраивал примитивный kubernetes кластер для клиента, пилил таску с ноута, сидя на унитазе. Ну а как, удалёнка, могу себе позволить. Жил бы один, вообщеб обратно в обезьяну эволюционировал.
Короче время дейлика с другим клиентом, бросаю открытый ноут в сортире на коврик, бегу к стационарному компу где установлен zoom. 15 минут слушаю очередную хуиту от лосей, проблема не у нас, а на серверах. Классика. По привычке — выгораю, шлю нахуй, реву.
Ну и вот!
Вся эта поебень заканчивается, закидываю в кружку кофея, беру вонючий айкос и направляюсь в обсерваторию. А в кабинете меня ждет картина маслом. Ну как маслом…
Ноут который я бросил на коврик… Ему был произведен основательный апгрейд + 100500 к бренду.
Подробности описывать смысла не вижу. Все предельно просто: кот решил, что посрать на теплоё и закрыть крышку будет нативнее, чем в свой тазик.
А новое и тёплое всегда безумно манит. Тем более присутствует интерактив — закрыть крышку. Зона комфорта. Ну ты и сам это прекрасно понимаешь.
Я даже не стал визжать как сучка, мой косяк, спровоцировал животное. И так ему яйца уже заскейлили за заслуги. Уличные коты себе такого не позволяли, как этот голубых сука кровей, сеньор блядь помидор.
Напомнил знакомого, который, любил гадить в лифтах. Сейчас кстати работает JAVA разработчиком. Тоже сеньор, лифты заменил на GIT репозитории. Забавно, но ситуация страшная.
Сначала комбик за 50к, потом стена и диван в зале, а сегодня макбук за 200к. Хотя сам кот стоил всего 5к. Сомнительно конечно вложение было. Что дальше, хуй знает. Снова выгорел, поревел…
Такое происходит только в фильмах, но увы, порой я думаю, что живу в каком-то сценарии Тарантино.
Проанализировав произошедшее, в очередной раз убедился, что от apple и кубернейтсов одно зло. Linux / Windows / Android / Bash / Ctypes наше всё.
Таску в джире пометил как кот - Blocked, а ноут выставил на авито. Так что будь аккуратнее если решишь купить б/у железяку, возможно ранее в её красиво
В комментах фото этого диверсанта. Результат апгрейда выкладывать не буду, у меня психологическая травма. Но если есть любители прекрасного, пишите Максу, он скинет.
И всегда помни — даже если кот кастрирован, с его жопой ты ничего не сделаешь. Максимум сможешь провести ретроспективу по методологии «Scrum».
Говорят в айти охуенно весело. Справедливо!
tags: #рабочиебудни
—
Выделенные серверы Vscale от 1490 ₽/месяц
Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в простой панели Vscale.
Ты найдешь выделенные и облачные серверы в РФ с бесплатной защитой от DDoS-атак на базовом уровне (L3-L4), с 1 Гбит/с безлимитного Интернета, с GPU или без. Плати за час или за месяц, как удобно.
В скором будущем планируется запуск облачных баз данных и управляемых кластеров Kubernetes. А пока можешь заглянуть в наш уютный чатик, где быстро можно что-то спросить или поделиться опытом.
Посмотри все доступные конфиги в панели Vscale: https://slc.tl/m4t0j
Реклама ООО «Селектел» erid 2VtzqukMxRi
Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в простой панели Vscale.
Ты найдешь выделенные и облачные серверы в РФ с бесплатной защитой от DDoS-атак на базовом уровне (L3-L4), с 1 Гбит/с безлимитного Интернета, с GPU или без. Плати за час или за месяц, как удобно.
В скором будущем планируется запуск облачных баз данных и управляемых кластеров Kubernetes. А пока можешь заглянуть в наш уютный чатик, где быстро можно что-то спросить или поделиться опытом.
Посмотри все доступные конфиги в панели Vscale: https://slc.tl/m4t0j
Реклама ООО «Селектел» erid 2VtzqukMxRi
Есть такие команды, они выведут справку по утилите printf:
НО. Каждая команда выведет свою версию справки (почти). То есть результат вывода будет отличаться в разных случаях. Не веришь? Попробуй сам.
В первом пункте с help printf всё понятно. Получишь некий огрызок, который трудно назвать страницей помощи. Да и во втором тоже самое.
В 1-2 вызывается именно встроенная утилита printf в оболочку Bash. А вот в третьем пункте, выведется достаточно внушительный хелп.
И этот внушительный хелп будет от схожей, внешней утилиты printf, которая располагается тут: /usr/bin/printf.
Посмотреть все варианты printf можно так:
На экран выведется список:
Ну и везде советуют пользоваться встроенной в Bash командой help, она нативнее и поддерживает почти весь синтаксис оболочки. Тут уже решать тебе.
Я очень редко читаю документацию таким способом, предпочитаю сразу загуглить. Ладно. Изучай.
tags: #bash
—
1. help printf
2. printf --help
3. env printf --help
НО. Каждая команда выведет свою версию справки (почти). То есть результат вывода будет отличаться в разных случаях. Не веришь? Попробуй сам.
В первом пункте с help printf всё понятно. Получишь некий огрызок, который трудно назвать страницей помощи. Да и во втором тоже самое.
В 1-2 вызывается именно встроенная утилита printf в оболочку Bash. А вот в третьем пункте, выведется достаточно внушительный хелп.
И этот внушительный хелп будет от схожей, внешней утилиты printf, которая располагается тут: /usr/bin/printf.
Посмотреть все варианты printf можно так:
type -a printf
На экран выведется список:
printf is a shell builtin
printf is /usr/bin/printf
printf is /bin/printf
Ну и везде советуют пользоваться встроенной в Bash командой help, она нативнее и поддерживает почти весь синтаксис оболочки. Тут уже решать тебе.
Я очень редко читаю документацию таким способом, предпочитаю сразу загуглить. Ладно. Изучай.
tags: #bash
—
Научитесь разрабатывать безопасные приложения на курсе Positive Technologies
19 марта стартует обучение на курсе AppSec: Разработка безопасного программного обеспечения.
Курс разработан совместно с ведущими экспертами в области безопасной разработки и проводится на базе МФТИ.
Вы узнаете основные принципы и методологии разработки безопасных приложений, научитесь работать с угрозами, рисками и обеспечивать безопасность на разных уровнях: от контейнерной инфраструктуры до облачной безопасности.
Курс будет для вас полезен, если вы являетесь практикующим разработчиком, DevOps-инженером, системным администратором или тестировщиком.
О чём ещё важно знать:
- Вас ждёт 4,5 месяца обучения.
- Лекции и семинары будут проходить 2-3 раза в неделю в 19:00.
- В ходе обучения закрепите практику на 3-х практических проектах.
Новый поток стартует 19 марта – успейте оставить заявку!
19 марта стартует обучение на курсе AppSec: Разработка безопасного программного обеспечения.
Курс разработан совместно с ведущими экспертами в области безопасной разработки и проводится на базе МФТИ.
Вы узнаете основные принципы и методологии разработки безопасных приложений, научитесь работать с угрозами, рисками и обеспечивать безопасность на разных уровнях: от контейнерной инфраструктуры до облачной безопасности.
Курс будет для вас полезен, если вы являетесь практикующим разработчиком, DevOps-инженером, системным администратором или тестировщиком.
О чём ещё важно знать:
- Вас ждёт 4,5 месяца обучения.
- Лекции и семинары будут проходить 2-3 раза в неделю в 19:00.
- В ходе обучения закрепите практику на 3-х практических проектах.
Новый поток стартует 19 марта – успейте оставить заявку!
🚀 Хотите узнать, как отслеживать стабильность развертывания в вашем проекте?
✅Тогда вам обязательно стоит посетить бесплатный урок по теме «KPI и метрики непрерывной доставки — отслеживаем стабильность развертывания на примере ArgoCD» от OTUS! Спикер Михаил Чугунов — ведущий DevOps-инженер.
⚡️На вебинаре:
- рассмотрим, какие метрики и ключевые показатели нужны для успешного мониторинга и оценивания качества конвейера доставки;
- поговорим об инструментах;
- на примере ArgoCD разберем несколько кейсов, которые могут пригодиться на «боевых» стендах.
⏰ Занятие пройдёт 26 марта в 20:00 мск в рамках курса «SRE практики и инструменты». Доступна рассрочка на обучение!
➡️Пройдите короткий тест прямо сейчас и получите спец. цену на курс, а также запись урока!
✅Тогда вам обязательно стоит посетить бесплатный урок по теме «KPI и метрики непрерывной доставки — отслеживаем стабильность развертывания на примере ArgoCD» от OTUS! Спикер Михаил Чугунов — ведущий DevOps-инженер.
⚡️На вебинаре:
- рассмотрим, какие метрики и ключевые показатели нужны для успешного мониторинга и оценивания качества конвейера доставки;
- поговорим об инструментах;
- на примере ArgoCD разберем несколько кейсов, которые могут пригодиться на «боевых» стендах.
⏰ Занятие пройдёт 26 марта в 20:00 мск в рамках курса «SRE практики и инструменты». Доступна рассрочка на обучение!
➡️Пройдите короткий тест прямо сейчас и получите спец. цену на курс, а также запись урока!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Не бей себя ушами по щекам!
Вопрос который я задаю на собесах, возможно с подвохом. Частенько ставит в ступор соискателей. Короче.
Есть два бесконечных bash цикла:
И тут начинается… у людей включается javascript мышление и они начинают троить. Раз есть задача, значит есть и разница в поведении, значит будут какие-то разные ожидаемые результаты.
Рисуют мне какие-то формулы, строят гипотезы, даже пытаются доказать свою правоту и послать меня на хуй.
Ведь как происходит, пишешь ты годами bash скрипты и даже не задумываешься, а схренали я использую «:» а не «true»? Да потому что оно нахер не всралось про это думать, работает и ок.
На самом деле эти циклы делаю одно и тоже. Объяснение простое:
Команда «:» всегда возвращает 0. Да «:» это команда, попробуй её запустить, а следом выполнить
Эта пустая команда, которая ничего не делает и всегда завершается успехом. Ее используют, там где в синтаксисе скрипта требуется какая-либо команда.
Для while справедливо требуется продолжение, вот мы и продолжаем с помощью «:» чтобы интерпретатор не засыпал ошибками. Этакая заглушка, для синтаксической корректности.
Ну а так как true тоже команда и всегда возвращает статус 0, получается что «:» и true = идентичны. Просто написать двоеточие намного быстрее.
Ноги растут из древних Bourne Shell, где не было встроенных команд ни true ни false. Использовали именно «:».
Получается «:» легаси? Ну можно и так сказать. Если хочешь чтобы твои скрипты работали в древних оболочках, используй «:». А если похер, то делай true.
Вот что лучше читается?
Мне очевиднее первый вариант, если не знать за «:», то словишь ступор. Такие дела. Изучай.
tags: #linux #bash
—
Вопрос который я задаю на собесах, возможно с подвохом. Частенько ставит в ступор соискателей. Короче.
Есть два бесконечных bash цикла:
while :
do
done
while true
do
done
Вопрос: почему в первом случае используется «:», а во втором «true»?
И тут начинается… у людей включается javascript мышление и они начинают троить. Раз есть задача, значит есть и разница в поведении, значит будут какие-то разные ожидаемые результаты.
Рисуют мне какие-то формулы, строят гипотезы, даже пытаются доказать свою правоту и послать меня на хуй.
Ведь как происходит, пишешь ты годами bash скрипты и даже не задумываешься, а схренали я использую «:» а не «true»? Да потому что оно нахер не всралось про это думать, работает и ок.
На самом деле эти циклы делаю одно и тоже. Объяснение простое:
Команда «:» всегда возвращает 0. Да «:» это команда, попробуй её запустить, а следом выполнить
echo $?
и получишь 0.Эта пустая команда, которая ничего не делает и всегда завершается успехом. Ее используют, там где в синтаксисе скрипта требуется какая-либо команда.
Для while справедливо требуется продолжение, вот мы и продолжаем с помощью «:» чтобы интерпретатор не засыпал ошибками. Этакая заглушка, для синтаксической корректности.
Ну а так как true тоже команда и всегда возвращает статус 0, получается что «:» и true = идентичны. Просто написать двоеточие намного быстрее.
Хотя с другой стороны, если писать true, то код становится более читаемым.
Ноги растут из древних Bourne Shell, где не было встроенных команд ни true ни false. Использовали именно «:».
Получается «:» легаси? Ну можно и так сказать. Если хочешь чтобы твои скрипты работали в древних оболочках, используй «:». А если похер, то делай true.
Вот что лучше читается?
if true; then
echo "hello bashdays"
fi
if :; then
echo "hello bashdays"
fi
Мне очевиднее первый вариант, если не знать за «:», то словишь ступор. Такие дела. Изучай.
tags: #linux #bash
—
Java используют Сбербанк, «Яндекс Маркет», «Госуслуги». На нём создают приложения для банков, IT-корпораций и стриминговых сервисов, разрабатывают интернет-магазины, игры и облачные решения. Попробуйте себя в роли Java-разработчика, напишите несколько программ и решите, нравится ли вам эта профессия, на бесплатном мини-курсе Skillbox.
Сразу после регистрации дарим гайд по профессии Java-разработчика: 👉 https://epic.st/EzTyS?erid=2VtzqwrrieA
Мини-курс подойдёт новичкам разного возраста, а также:
📌 Тем, кто хочет оценить сферу IT
📌 Тем, кто стремится зарабатывать на удалёнке
📌 Разработчикам с небольшим опытом
В программе:
— Основы профессии и языка Java
— Telegram-бот на Java. Запускаем готового бота
— Программа для обработки файлов
— Живой эфир с экспертом по Java
Успейте записаться бесплатно!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Сразу после регистрации дарим гайд по профессии Java-разработчика: 👉 https://epic.st/EzTyS?erid=2VtzqwrrieA
Мини-курс подойдёт новичкам разного возраста, а также:
📌 Тем, кто хочет оценить сферу IT
📌 Тем, кто стремится зарабатывать на удалёнке
📌 Разработчикам с небольшим опытом
В программе:
— Основы профессии и языка Java
— Telegram-бот на Java. Запускаем готового бота
— Программа для обработки файлов
— Живой эфир с экспертом по Java
Успейте записаться бесплатно!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
У самурая нет тестов, только прод
Здрасти. Есть куча способов как определить, в каком окружении запущен Bash скрипт. На хостовой машине или внутри docker контейнера. Я предпочитаю самый простой.
Банально проверяем наличие файла
И да файл
А если требуется высший пилотаж, прям УНИВЕРСАЛЬНО, прочекать docker и lxc, идем таким путём:
Тут суть такая, во всех хост-системах
Запускаем на хостовой машине:
Запускаем в контейнере:
✔️ Может зафакапить, так как не установлен пакет procps.
Да, кто не знал, как сохранять изменения в docker контейнерах, применяется commit. То есть ставишь софт в контейнере, настраиваешь его там под себя. А потом делаешь:
<ID> - ID того контейнера, в котором все ставил
<name> - да похуй, можешь указать тот же самый
После перезапуска контейнера все твои настройки сохранятся. Но лучше этим не частить, а собирать контейнеры сразу с нужной тебе хуйнёй.
Ладно, погнали дальше спасать этот прекрасный мир.
tags: #linux #bash
АSHDАYS | BАSHDАYS.CОM
Здрасти. Есть куча способов как определить, в каком окружении запущен Bash скрипт. На хостовой машине или внутри docker контейнера. Я предпочитаю самый простой.
if [ -f /.dockerenv ]; then
echo "I'm inside docker";
else
echo "I'm living in real world!";
fi
Банально проверяем наличие файла
.dockerenv
и всё! Да, так просто. Способ самый универсальный и используется разработчиками в 99% случаев.И да файл
.dockerenv
можно удалить и тогда скрипт сломается. Удобно, если хочешь помешать скриптам определять где они выполняются. НО после перезапуска контейнера файл .dockerenv
снова появится.А если требуется высший пилотаж, прям УНИВЕРСАЛЬНО, прочекать docker и lxc, идем таким путём:
if [ -n "$(grep 'kthreadd' /proc/2/status 2>/dev/null)" ]; then
echo "I'm living in real world!"
else
echo "I'm inside container";
fi
Тут суть такая, во всех хост-системах
PID(2) == kthreadd
. Запускаем на хостовой машине:
ps -p 2
PID TTY TIME CMD
2 ? 00:00:00 kthreadd
Запускаем в контейнере:
ps -p 2
PID TTY TIME CMD
хуй с маслом
✔️ Может зафакапить, так как не установлен пакет procps.
Да, кто не знал, как сохранять изменения в docker контейнерах, применяется commit. То есть ставишь софт в контейнере, настраиваешь его там под себя. А потом делаешь:
docker commit <ID> <name>
<ID> - ID того контейнера, в котором все ставил
<name> - да похуй, можешь указать тот же самый
После перезапуска контейнера все твои настройки сохранятся. Но лучше этим не частить, а собирать контейнеры сразу с нужной тебе хуйнёй.
Ладно, погнали дальше спасать этот прекрасный мир.
tags: #linux #bash
АSHDАYS | BАSHDАYS.CОM
🏹 Предупреждён о современных киберугрозах – значит вооружён
«Лаборатория Касперского» приглашает вас на бесплатный вебинар «Сезон киберохоты: аналитика инцидентов за 2023 год», который состоится 11 апреля в 11:00 (МСК).
Знаете ли вы, что сегодня киберхищники берут не качеством, а количеством? В 2023 году произошло перераспределение в разбивке уровней критичности инцидентов, сделав этот период рекордным по количеству инцидентов низкой критичности, но в чем причина? А известно ли вам, какие отрасли наиболее привлекательны для кибермонстров?
На вебинаре эксперты «Лаборатории Касперского» представят новые аналитические отчеты Kaspersky MDR и Kaspersky Incident Response, расскажут об актуальных уловках атакующих, а также дадут рекомендации по их эффективному обнаружению и реагированию.
Каждый участник получит полные отчетов. И это еще не всё – на вебинаре состоится розыгрыш нескольких памятных подарков!
👉🏻 Зарегистрироваться
Реклама АО "Лаборатория Касперского". ИНН 7713140469
«Лаборатория Касперского» приглашает вас на бесплатный вебинар «Сезон киберохоты: аналитика инцидентов за 2023 год», который состоится 11 апреля в 11:00 (МСК).
Знаете ли вы, что сегодня киберхищники берут не качеством, а количеством? В 2023 году произошло перераспределение в разбивке уровней критичности инцидентов, сделав этот период рекордным по количеству инцидентов низкой критичности, но в чем причина? А известно ли вам, какие отрасли наиболее привлекательны для кибермонстров?
На вебинаре эксперты «Лаборатории Касперского» представят новые аналитические отчеты Kaspersky MDR и Kaspersky Incident Response, расскажут об актуальных уловках атакующих, а также дадут рекомендации по их эффективному обнаружению и реагированию.
Каждый участник получит полные отчетов. И это еще не всё – на вебинаре состоится розыгрыш нескольких памятных подарков!
👉🏻 Зарегистрироваться
Реклама АО "Лаборатория Касперского". ИНН 7713140469
Без скрипта не выловишь и рыбку из пруда
你好! Познакомился вчера на созвоне с китайцем, зовут его что-то вроде АнХуй. Смешной персонаж. Что-то мне 40 минут втирал на сломанном английском. Я ни слова не понял, но уверено махал головой как обезьяна на бананы. 🅰️
По итогу встречи я выучил слова «Нихао» и «Херанука», а он всяко выучил — «ты, заебал» и «пиздец». Вот так и работаем. Айти объединяет.
Ну чо, поехали двигать пингвинов
Сегодня изучаем —
Эта такая штука… короче с помощью нее можно запускать команды и скрипты в новых сеансах и группах процессов. Скрипт запущенный через
Это гарантирует, что если родительский процесс получит сигнал SIGHUP, то запущенный скрипт через
Пишем башник
✔️ Скрипт будет нихуя не делать 200 секунд.
Запускаем:
Сразу видим, что оболочка продолжила работать в интерактивном режиме. Можно вводить команды и продолжать работу. А что со скриптом
Это скрипт запущен через
Видишь, он не является частью процессов bash, а работает самостоятельно, в общем дереве процессов. Запущенный скрипт не привязан к текущему терминалу.
А это скрипт
Видим цепочку, скрипт работает в текущей оболочке bash. Если закрыть оболочку, то и скрипт прекратит свою работу.
Давай сравним setsid и nohup
Если запустить так:
Наблюдаем такую картину:
Пишем
Процесс отделился от закрытой оболочки и попал в корень всех процессов. В данный момент он продолжает работу.
Теперь запускаем
А тут сразу процесс отделился от оболочки и стал корневым. Даже если написать
Хм. Не велика разница. Но она все же есть. Команда
Изучай.
tags: #bash #linux
АSHDАYS | BАSHDАYS.CОM
你好! Познакомился вчера на созвоне с китайцем, зовут его что-то вроде АнХуй. Смешной персонаж. Что-то мне 40 минут втирал на сломанном английском. Я ни слова не понял, но уверено махал головой как обезьяна на бананы. 🅰️
По итогу встречи я выучил слова «Нихао» и «Херанука», а он всяко выучил — «ты, заебал» и «пиздец». Вот так и работаем. Айти объединяет.
Ну чо, поехали двигать пингвинов
Сегодня изучаем —
setsid
Эта такая штука… короче с помощью нее можно запускать команды и скрипты в новых сеансах и группах процессов. Скрипт запущенный через
setsid
будет независим от родительского процесса.Это гарантирует, что если родительский процесс получит сигнал SIGHUP, то запущенный скрипт через
setsid
продолжит работу. Nohup? Почти.. Поехали в практику.Пишем башник
bashdays.sh
#!/bin/bash
echo "Starting..."
sleep 200
echo "Finished..."
✔️ Скрипт будет нихуя не делать 200 секунд.
Запускаем:
setsid ./bashdays.sh
Сразу видим, что оболочка продолжила работать в интерактивном режиме. Можно вводить команды и продолжать работу. А что со скриптом
bashdays.sh
? Давай запустим pstree и визуально глянем.Это скрипт запущен через
setsid
├─sshd─bash
├─sshd─bash─pstree
└─sshd─sshd
├─bashdays.sh─sleep
Видишь, он не является частью процессов bash, а работает самостоятельно, в общем дереве процессов. Запущенный скрипт не привязан к текущему терминалу.
А это скрипт
bashdays.sh
запущен напрямую, без setsid
├─sshd─bash
├─sshd─bash─bashdays.sh─sleep
Видим цепочку, скрипт работает в текущей оболочке bash. Если закрыть оболочку, то и скрипт прекратит свою работу.
Давай сравним setsid и nohup
Если запустить так:
nohup ./bashdays.sh &
Наблюдаем такую картину:
├─sshd─┬─sshd─bash─pstree
├─sshd─bash─bashdays.sh─sleep
Пишем
exit
и видим уже такое:├─sshd─sshd─bash─pstree
├─bashdays.sh─sleep
Процесс отделился от закрытой оболочки и попал в корень всех процессов. В данный момент он продолжает работу.
Теперь запускаем
setsid ./bashdays.sh
├─sshd─┬─sshd───bash───pstree
└─sshd───bash
├─bashdays.sh─sleep
А тут сразу процесс отделился от оболочки и стал корневым. Даже если написать
exit
и закрыть терминал, sleep
продолжит работу.Хм. Не велика разница. Но она все же есть. Команда
setsid
более прямой способ создания нового сеанса, тогда как nohup
просто игнорирует сигнал SIGHUP.Изучай.
tags: #bash #linux
АSHDАYS | BАSHDАYS.CОM
Как величать сервера
Мне часто задают этот вопрос, всем одно и тоже отвечать заёбисто. Поэтому вот вам пост, буду ссылку потом на него всем скидывать.
Короче нет бест-практик. Нет серебряной пули. Есть не стандартизированная самодеятельность. Если по-простому, то как хочешь, так и называй, лишь бы тебе было удобно.
Помню когда начинал играть на гитаре, не знал что аккорды имеют название. Поэтому сам придумывал эти названия (mt-1/sl-4/sep-7). Производные от Metallica, Slayer, Sepultura и т.п.
Но спустя год оказалось, что все стандартизировано и пришлось мучительно переучиваться. Да, в те времена мы еще на ZX спектрумах кодили, про интернет и не знали. А спросить за музыку было не у кого. Все методом тыка, всё на слух. Эх, это было прекрасное время.
Короче все зависит от твоего облачного провайдера, твоей инфры и вообще всё индивидуально. У меня инфра в основном вся в Selectel. Там есть разграничение по проектам. В каждом проекте можешь заводить любое количество инстансов. Ну я думаю везде что-то похожее, в яндексе по крайней мере также. В aws уже не помню, в DO тоже есть.
✔️ Моя схема как давать погоняла железякам.
По итогу имею примерно такое:
Проект bashdays, а дальше инстансы с префиксом. Цифровой индекс полезен, когда горизонтально скейлишь. Регионы и т.п. хуиту не добавляю, нет необходимости.
Если уж и надо глянуть регион, лезу в панельку селектела и смотрю в каком ДЦ у меня все это лежит. Но обычно это требуется когда пишешь тикет в саппорт. А так нахер надо. Учись упрощать!
Про балансировщик нагрузки писал в этом посте, как заебись его организовать и полезный пост по заголовкам и проксипасам. Мастрид.
Ну а так инфы по неймингу в интернете полно, я лишь показал как делаю сам. Потому что у каждого свои задачи и хотелки.
Хоть «ебанутый-носорог-1» назови, главное чтобы тебе комфортно было.
Знаешь же поговорку — Никого не слушай, НО прислушивайся! Хороших выходных тебе, увидимся.
Кстати расскажи в комментах как ты называешь свои сервера, очень интересно послушать. Всё, теперь точно до завтра!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Мне часто задают этот вопрос, всем одно и тоже отвечать заёбисто. Поэтому вот вам пост, буду ссылку потом на него всем скидывать.
Короче нет бест-практик. Нет серебряной пули. Есть не стандартизированная самодеятельность. Если по-простому, то как хочешь, так и называй, лишь бы тебе было удобно.
Помню когда начинал играть на гитаре, не знал что аккорды имеют название. Поэтому сам придумывал эти названия (mt-1/sl-4/sep-7). Производные от Metallica, Slayer, Sepultura и т.п.
Но спустя год оказалось, что все стандартизировано и пришлось мучительно переучиваться. Да, в те времена мы еще на ZX спектрумах кодили, про интернет и не знали. А спросить за музыку было не у кого. Все методом тыка, всё на слух. Эх, это было прекрасное время.
Короче все зависит от твоего облачного провайдера, твоей инфры и вообще всё индивидуально. У меня инфра в основном вся в Selectel. Там есть разграничение по проектам. В каждом проекте можешь заводить любое количество инстансов. Ну я думаю везде что-то похожее, в яндексе по крайней мере также. В aws уже не помню, в DO тоже есть.
✔️ Моя схема как давать погоняла железякам.
База данных = db1
Редиска = rd1
Вебнода (nginx + php) = w1
Админки (nginx + php) = a1
Реплика БД = r1
Микросервисы = d1 (daemons)
Стораджи = st1
Балансировщик = b1
По итогу имею примерно такое:
bashdays-b1 (балансировщик)
bashdays-w1 (вебнода 1)
bashdays-w2 (вебнода 2)
bashdays-w3 (вебнода 3)
bashdays-a1 (админки 1)
bashdays-r1 (реплика БД)
bashdays-st1 (могильник файлов)
bashdays-st2 (реплика могильника)
bashdays-db1 (база данных)
bashdays-r1 (редиска)
bashdays-d1 (микросервисы, демоны)
Проект bashdays, а дальше инстансы с префиксом. Цифровой индекс полезен, когда горизонтально скейлишь. Регионы и т.п. хуиту не добавляю, нет необходимости.
Если уж и надо глянуть регион, лезу в панельку селектела и смотрю в каком ДЦ у меня все это лежит. Но обычно это требуется когда пишешь тикет в саппорт. А так нахер надо. Учись упрощать!
Про балансировщик нагрузки писал в этом посте, как заебись его организовать и полезный пост по заголовкам и проксипасам. Мастрид.
Ну а так инфы по неймингу в интернете полно, я лишь показал как делаю сам. Потому что у каждого свои задачи и хотелки.
Хоть «ебанутый-носорог-1» назови, главное чтобы тебе комфортно было.
Знаешь же поговорку — Никого не слушай, НО прислушивайся! Хороших выходных тебе, увидимся.
Кстати расскажи в комментах как ты называешь свои сервера, очень интересно послушать. Всё, теперь точно до завтра!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Мы запустили профессиональную сертификацию по облачным технологиям!
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
This media is not supported in your browser
VIEW IN TELEGRAM
Атаки через почту. Как защититься?
По данным Positive technologies, 92% фишинговых атак начинаются с электронного письма. Важно постоянно тестировать почту на уязвимости, чтобы устранить основной вектор атак.
Positive Technologies представляет сервис для проверки безопасности почты – PT Knockin. Теперь вы можете за 2 минуты узнать, хорошо ли ваш ящик защищен от вредоносного ПО, а также получить рекомендации по улучшению работы средств защиты.
Симулятор атак на почту PT Knockin абсолютно безопасен для устройства и корпоративной сети. Бесплатно проверить защищенность корпоративной почты можно прямо сейчас – переходи на сайт!
[Проверить безопасность почты]
По данным Positive technologies, 92% фишинговых атак начинаются с электронного письма. Важно постоянно тестировать почту на уязвимости, чтобы устранить основной вектор атак.
Positive Technologies представляет сервис для проверки безопасности почты – PT Knockin. Теперь вы можете за 2 минуты узнать, хорошо ли ваш ящик защищен от вредоносного ПО, а также получить рекомендации по улучшению работы средств защиты.
Симулятор атак на почту PT Knockin абсолютно безопасен для устройства и корпоративной сети. Бесплатно проверить защищенность корпоративной почты можно прямо сейчас – переходи на сайт!
[Проверить безопасность почты]
🙂 Мухаха, наебнёмка SSH
Вводные: У клиента есть сервак с авторизацией по ssh ключам. С виду все настроено верно. Катают ансиблом.
Проблема: При подключении к серверу, продолжает запрашиваться пароль. Хотя явно указан ключ для подключения, а на сервере прописан публичный ключ клиента в
Проблема на самом деле распространенная. Для отладки открываем логи авторизаций и смотрим что происходит. И да, никто блядь не читает логи, а сразу начинают искать суслика, которого нет. ЧИТАЙ ЛОГИ!
Понятно дело, в логах видим ошибку:
С этой ошибкой ты всяко бодался. Смотрим права. И действительно, на файле
✔️ \033[1m Но сейчас про другое \033[0m
Как сказать пингвину, чтобы он забил хуй на проверку прав для этих ключей?
А вот так, добавляем в
Ну и рестартим демона
Всё. Теперь можешь играться с правами ключей. Хоть 000 выстави. Права проверяться не будут и тебя успешно пропустят без пароля.
Короче для дебага фишка мастхев, если в логах хуй с маслом, включаем эту опцию и проверяем, действительно ли дело в правах на ключи или дело в кривых руках.
Финк диферент!
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
Вводные: У клиента есть сервак с авторизацией по ssh ключам. С виду все настроено верно. Катают ансиблом.
Проблема: При подключении к серверу, продолжает запрашиваться пароль. Хотя явно указан ключ для подключения, а на сервере прописан публичный ключ клиента в
authorized_keys
.Проблема на самом деле распространенная. Для отладки открываем логи авторизаций и смотрим что происходит. И да, никто блядь не читает логи, а сразу начинают искать суслика, которого нет. ЧИТАЙ ЛОГИ!
Понятно дело, в логах видим ошибку:
message repeated 4 times: Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys
С этой ошибкой ты всяко бодался. Смотрим права. И действительно, на файле
authorized_keys
стоят 3 топора (777). А должно быть 600. Как фиксить, ежу понятно.✔️ \033[1m Но сейчас про другое \033[0m
Как сказать пингвину, чтобы он забил хуй на проверку прав для этих ключей?
А вот так, добавляем в
/etc/ssh/sshd_config
строчку:StrictModes no
Ну и рестартим демона
systemctl restart sshd
Всё. Теперь можешь играться с правами ключей. Хоть 000 выстави. Права проверяться не будут и тебя успешно пропустят без пароля.
Когда StrictModes установлено в no, SSH сервер не будет так строго проверять права доступа к этим файлам и каталогам. Это означает, что, например, если домашний каталог пользователя имеет права доступа, которые обычно не допускаются (например, другие пользователи могут читать каталог), SSH сервер все равно будет работать.
Установка StrictModes no уменьшает уровень безопасности, так как позволяет некоторым нежелательным правам доступа с точки зрения безопасности, но это может быть полезно в некоторых сценариях, например, при развертывании на тестовых серверах или в средах, где безопасность не является приоритетом.
Короче для дебага фишка мастхев, если в логах хуй с маслом, включаем эту опцию и проверяем, действительно ли дело в правах на ключи или дело в кривых руках.
Финк диферент!
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
❓ Как освоить Linux на профессиональном уровне быстро и эффективно?
🎁 Начните с бесплатного практического урока «Работа с IPTables. Фильтрация пакетов» от OTUS, где вы вместе с опытным экспертом:
- разберёте основные возможности сетевого фильтра IPTables на примере системы Ubuntu 22.04;
- изучите архитектуру подсистемы Netfilter и основные команды утилита iptables;
- научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера.
⏰ Занятие пройдёт 11 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/TEe2/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🎁 Начните с бесплатного практического урока «Работа с IPTables. Фильтрация пакетов» от OTUS, где вы вместе с опытным экспертом:
- разберёте основные возможности сетевого фильтра IPTables на примере системы Ubuntu 22.04;
- изучите архитектуру подсистемы Netfilter и основные команды утилита iptables;
- научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера.
⏰ Занятие пройдёт 11 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/TEe2/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🧠 Вебинар "Как работают программы в Linux?"
На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме.
👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/9Qi3/
🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак»
⏰ Занятие пройдёт 16 апреля в 20:00 мск
📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме.
👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/9Qi3/
🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак»
⏰ Занятие пройдёт 16 апреля в 20:00 мск
📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
✔️ Сделаем за час в течение недели
Все из вас знают про канализационные люки и т.п. кринжовые задачи на собесах. Когда я работал в региональной веб-студии, директор этого цирка абсурда придумал свою кринжату.
Тестирование проводилось на кандидатах, которые претендовали на роль бэкенд разработчика. Ща будет жара!
Короче всем кандидатам назначалось одно время для собеса. Собиралось 5-10 человек. Всем вручали кубик-рубика. Включали таймер на 15 минут и понеслась пизда по кочкам.
Как ты понял, нужно было за 15 минут собрать эту шайтан игрушку. В лучшем случае из 10 человек, успешно собирали двое. Всех остальных вышвыривали обратно на мороз с фразой — мы вам перезвоним.
А дальше была битва на ножах? Неа! Брали на испытательный сразу двух человек и выживал только один (как в фильме Горец), самый скилловый, который за 3 месяца меньше всего нафакапил и принес больше денег фирме.
Вот такие вот эксперименты над людьми. Думаю они до сих пор это практикуют, так как, там напрочь отбитое начальство. Не удивлюсь если девопсов начали проверять на детекторе лжи.
Я проработал там 5 лет и ни разу у меня не было root доступа. Как я работал без рута? Шеф вводил пароль и сидел рядом пока я пилил таски. Пиздец…
Зачем кубик то собирать? Да всё просто! Если бэкендер смог собрать кубик, значит у него с алгоритмами заебись и в голове порядок. Значит он это уже делал раньше, значит нейронные связи установлены правильно.
Есть тут доля правды, ради интереса поспрашивал своих бэкендеров, сука, все как один сказали — да, мы можем собрать кубик, похуй хоть 3x3 хоть 13x13. Демоны какие-то )))
Задал этот же вопрос фронтэндерам, в ответ получил — Рома, ты ёбнутый, мы кнопочки двигаем, а не в кубики играем.
Вот и выводы. Если ты не умеешь собирать кубик-рубика, то ты не можешь быть бэкендером. Можешь конечно, но недостаточно хорошим.
Подумай, возможно как раз кубик поможет тебе решить вопросы с карьерной лестницей и разблокирует темные участки мозга.
А ты умеешь собирать кубик? Я вот нет, да и в бэкендеры не особо хочу. Но один раз по мануалу собрал, удовольствия особого не испытал.
tags: #рабочиебудни
@ВАSНDАYS | BАSHDАYS.CОM
Все из вас знают про канализационные люки и т.п. кринжовые задачи на собесах. Когда я работал в региональной веб-студии, директор этого цирка абсурда придумал свою кринжату.
Тестирование проводилось на кандидатах, которые претендовали на роль бэкенд разработчика. Ща будет жара!
Короче всем кандидатам назначалось одно время для собеса. Собиралось 5-10 человек. Всем вручали кубик-рубика. Включали таймер на 15 минут и понеслась пизда по кочкам.
Как ты понял, нужно было за 15 минут собрать эту шайтан игрушку. В лучшем случае из 10 человек, успешно собирали двое. Всех остальных вышвыривали обратно на мороз с фразой — мы вам перезвоним.
А дальше была битва на ножах? Неа! Брали на испытательный сразу двух человек и выживал только один (как в фильме Горец), самый скилловый, который за 3 месяца меньше всего нафакапил и принес больше денег фирме.
Вот такие вот эксперименты над людьми. Думаю они до сих пор это практикуют, так как, там напрочь отбитое начальство. Не удивлюсь если девопсов начали проверять на детекторе лжи.
Я проработал там 5 лет и ни разу у меня не было root доступа. Как я работал без рута? Шеф вводил пароль и сидел рядом пока я пилил таски. Пиздец…
Зачем кубик то собирать? Да всё просто! Если бэкендер смог собрать кубик, значит у него с алгоритмами заебись и в голове порядок. Значит он это уже делал раньше, значит нейронные связи установлены правильно.
Есть тут доля правды, ради интереса поспрашивал своих бэкендеров, сука, все как один сказали — да, мы можем собрать кубик, похуй хоть 3x3 хоть 13x13. Демоны какие-то )))
Задал этот же вопрос фронтэндерам, в ответ получил — Рома, ты ёбнутый, мы кнопочки двигаем, а не в кубики играем.
Вот и выводы. Если ты не умеешь собирать кубик-рубика, то ты не можешь быть бэкендером. Можешь конечно, но недостаточно хорошим.
Подумай, возможно как раз кубик поможет тебе решить вопросы с карьерной лестницей и разблокирует темные участки мозга.
А ты умеешь собирать кубик? Я вот нет, да и в бэкендеры не особо хочу. Но один раз по мануалу собрал, удовольствия особого не испытал.
tags: #рабочиебудни
@ВАSНDАYS | BАSHDАYS.CОM
Как создавать и настраивать различные типы сервисов в Kubernetes?
Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах.
Освойте ее на бесплатном практическом уроке от OTUS. Спикер — преподаватель курса и действующий Senior DevOps Engineer. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes:
- ClusterIP для внутренних связей;
- ExternalService для внешнего доступа;
- NodePort для открытия порта на уровне узла;
- LoadBalancer для балансировки нагрузки.
Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes». Спикер — преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cw6rB9
Для всех, кто пройдет вступительный тест и запишется на бесплатн...
Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах.
Освойте ее на бесплатном практическом уроке от OTUS. Спикер — преподаватель курса и действующий Senior DevOps Engineer. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes:
- ClusterIP для внутренних связей;
- ExternalService для внешнего доступа;
- NodePort для открытия порта на уровне узла;
- LoadBalancer для балансировки нагрузки.
Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes». Спикер — преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cw6rB9
Для всех, кто пройдет вступительный тест и запишется на бесплатн...
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF.
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
erid:2Vtzqx5Gph4
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
erid:2Vtzqx5Gph4
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Открытие костыльного цеха
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
Ставится из репы:
Давай затестим. Создаем 10ти гигабайтный файл.
Запускаем тесты:
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
✔️ Теперь pigz нужно подружить с tar
С этим все просто, через пайп:
Либо как вариант через ключ
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
PIGZ (Parallel Implementation of GZIP) - это утилита для сжатия файлов, которая использует параллельные вычисления для ускорения процесса сжатия данных.
Ставится из репы:
apt install pigz
, а где-то уже сразу установлен.Давай затестим. Создаем 10ти гигабайтный файл.
truncate -s 10G bashdays
Запускаем тесты:
time gzip -k -c bashdays > /dev/null
real 0m46.590s
time pigz -k -c bashdays > /dev/null
real 0m8.535s
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
✔️ Теперь pigz нужно подружить с tar
С этим все просто, через пайп:
tar cf - bashdays | pigz -k -c > bashdays.tar.gz
Либо как вариант через ключ
--use-compress-program
tar --use-compress-program="pigz --best --recursive" -cf bashdays.tar.gz bashdays
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
tar cf - bashdays | pigz -k -c | pv > bashdays.tar.gz
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
🌳 Tesla A100 на платформе immers.cloud. Графический процессор с максимальным ускорением для обучения и инференса моделей искусственного интеллекта.
⚡️ Особенности A100:
- Установлены блоки памяти HBM2e внутри чипа для увеличения производительности до 20 раз в сравнении с предыдущими моделями.
- Тензорные ядра поддерживают широкий диапазон точностей вычислений, включая FP16, FP64 и INT8.
- Доступно объединение памяти и вычислительных мощностей с помощью NVLink мостов для достижения высокой пропускной способности.
💸Тарифы:
- Выгодные долгосрочные тарифы со скидками до 35% при предоплате за 30 или 60 дней.
- Цена за A100 начинается от 209,95 рублей, а минимальная конфигурация с NVLink доступна от 434,67 руб.
Повышайте производительность проектов с Tesla A100 на immers.cloud!
🎁 Для подписчиков паблика предлагаем эксклюзивный бонус: 20% к пополнению счета. Готовы подобрать индивидуальные конфигурации под конкретные задачи.
✈ Подписаться на immers.cloud
Творите, развивайтесь, масштабируйтесь вместе с на...
⚡️ Особенности A100:
- Установлены блоки памяти HBM2e внутри чипа для увеличения производительности до 20 раз в сравнении с предыдущими моделями.
- Тензорные ядра поддерживают широкий диапазон точностей вычислений, включая FP16, FP64 и INT8.
- Доступно объединение памяти и вычислительных мощностей с помощью NVLink мостов для достижения высокой пропускной способности.
💸Тарифы:
- Выгодные долгосрочные тарифы со скидками до 35% при предоплате за 30 или 60 дней.
- Цена за A100 начинается от 209,95 рублей, а минимальная конфигурация с NVLink доступна от 434,67 руб.
Повышайте производительность проектов с Tesla A100 на immers.cloud!
🎁 Для подписчиков паблика предлагаем эксклюзивный бонус: 20% к пополнению счета. Готовы подобрать индивидуальные конфигурации под конкретные задачи.
✈ Подписаться на immers.cloud
Творите, развивайтесь, масштабируйтесь вместе с на...