en
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Bash Days | Linux | DevOps

Channel Bash Days | Linux | DevOps (@bashdays) in the Russian language segment is an active participant. Currently, the community unites 23 791 subscribers, ranking 5 701 in the Technologies & Applications category and 28 125 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 23 791 subscribers.

According to the latest data from 18 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -216 over the last 30 days and by -5 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 22.75%. Within the first 24 hours after publication, content typically collects 12.90% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 5 413 views. Within the first day, a publication typically gains 3 068 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 21.
  • Thematic interests: Content is focused on key topics such as bashdays, linux, bash, docker, скрипт.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Thanks to the high frequency of updates (latest data received on 19 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

23 791
Subscribers
-524 hours
-257 days
-21630 days
Posts Archive
➡️ Пока ты дочитаешь этот пост, в мире умрёт 100+ человек. И они никогда уже не узнают про Linux таймеры. А ты узнаешь! Тыж всяко в курсе, что планировать регулярные таски в Linux можно не только через cron и его форки, а еще и через systemd + таймеры. Каждый уважающий себя админ, пытается навязать мне эти таймеры. Мол, Роман ты заебал, нужно использовать таймеры, зачем тебе этот легаси cron. На дворе 2024 год, нужно идти в ногу со временем. Справедливо? Неа! Чтобы добавить таску в крон, мне потребуется секунд 15, а то и меньше. А чтобы провернуть это с таймерами, придется знатно упороться. Давай сделаем простой таймер. Для начала создадим сервис, который будет запускать bash скрипт. Создаем файл /etc/systemd/system/bashdays.service
[Unit]
Description=Bashday service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/bashdays.sh

[Install]
WantedBy=multi-user.target
Тип сервиса = камшот, сервис будет запущен один раз и завершится после выполнения задачи. ExecStart = какой внешний Bash скрипт будем передёргивать. WantedBy = не обращай внимания, это базовый таргет.
Теперь сам скрипт bashdays.sh 👇
#!/bin/bash

unix_time=$(date +%s)
> /tmp/$unix_time
Скрипт будет создавать в папке tmp файл с именем равным Unixtime. Проверяем:
systemctl daemon-reload
systemctl start bashdays
systemctl status bashdays
Всё, видим что все успешно отработало. А в папке tmp появился файл с именем 1713409747 (у тебя будет другое). Так. Теперь нужно сделать таймер, чтобы запускать сервис в нужные промежутки. Уже начинаешь понимать в какой блуд заводят таймеры? Создаем файл /etc/systemd/system/bashdays.timer
[Unit]
Description=Bashdays timer

[Timer]
OnCalendar=*:*:00

[Install]
WantedBy=timers.target
Срабатывает каждую минуту. Запускаем:
systemctl start bashdays.timer
systemctl status bashdays.timer
Видим: Active: running + Triggers: bashdays.service Поздравляю, ты добавил одну таску в «крон» через таймеры. Теперь в папке tmp каждую минуту будут появляться файлы. Но это еще не всё. Нужно добавить таймер в автозагрузку:
systemctl enable bashdays.timer
А вот теперь всё, можно перезагрузить сервер и файлы в tmp продолжат создаваться. Теперь смотри, в одном большом Интернет магазине, у клиента в кроне подвешено около 150 скриптов. Ладно, не скриптов, дергается консольная ларавелька с нужными php параметрами. Не суть. Ну дак вот! Ты будешь создавать 150 сервисов + 150 таймеров? Да это ЕБОБО! 300 файлов! И все это никак не группируется. Извините, но проще через нативный cron сделать. Понятно дело, если у тебя 2 таски, то можно повыебываться с таймерами. Но для масштабных приключений, увы. Тут либо автоматизацию пилить, либо ручками страдать. ✔️ Да, таймеры гибкие, это бест-практики, их можно тонко настраивать, их легче дебажить через journalctl -u bashdays.service. Но в большинстве случаев они избыточны. Я остаюсь преданным крону, но таймеры выбрасываю на помойку не буду, авось когда-нибудь пригодятся.
Тему таймеров я затрагивал ранее в этом посте, в нем мы разбирали как с помощью sshfs надежно замонтировать сетевые диски, чтобы они не отваливались.
А ты используешь таймеры? Чо думаешь? tags: #linux #bash @ВАSНDАYS | BАSHDАYS.CОM

🍖 Angie для администраторов Linux и веб-разработчиков — используйте максимально эффективно Приходите на бесплатный практичес
🍖 Angie для администраторов Linux и веб-разработчиков — используйте максимально эффективно Приходите на бесплатный практический урок «Веб-сервер Angie: сравнение с Nginx, новые возможности» от OTUS. На уроке вместе с опытным экспертом: 1. изучите основные преимущества форка Nginx — Angie 2. узнаете, какие отличия делают его привлекательным сегодня. 👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/JeTW/ ⏰ Занятие пройдёт 18 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

⚡️ 14-летний школьник из Москвы сошел с ума собирая KDE из исходников Сижу в потоке, правлю nginx.conf, птички поют, коты ебутся, весна! Запускаю nginx reload, хм, ничего не изменилось… Лезу в nginx.conf, а в нем все мои локейшены, которые я добавил — похерены отсутствуют. Почесываю свою лысую кабину. Ага, значит какой-нибудь puppet агент тут крутится или ансибл. Смотрю процессы, паппета нет, смотрю логи auth на момент подключения ансибла. Да блядь. Пусто! Смотрю логи крона и сам крон, ничо нет. В логах нет — нихуя! Списываю всё на глюки симуляции этого мира и магнитные бури. Добавляю еще раз локейшены, перезапускаю nginx, сука! Локейшенов нет )) Курю, бегаю по каталогам, размеренно думаю. Ииии замечаю забавнейшую вещь. В корне каталога etc есть директория .git!!! Вот и сложился пазл. Картина маслом. Как я и думал, здесь установлен ETCKeeper. Эта такая херабора, которая отслеживает изменения в каталоге etc. Если что-то изменилось, оно это откатывает из git репозитория. А чтобы поправить nginx конфиг, предварительно нужно запушить в репу актуальные правки иии только потом оно останется на сервере. Штука довольно интересная, в своё время я ее втыкал где только можно. Очень полезна от криворуких разработчиков/тестировщиков с рутом. Которые ломают и потом утверждают, что они ничего не делали. А ты просто смотришь диффы в git и тыкаешь их носом как нагадивших в макбук котяток. Ставится эта штука очень просто, через apt, ну а дальше почти из коробки работает, достаточно сказать с каким репозиторием ей взаимодействовать и по желанию добавить всякие конфиденциальные файлы в .gitignore. Давай позабавимся:
apt install etckeeper git
cd /etc
git remote add origin git@github.com:bashdays/etc.git
В git репе в разделе Deploy Keys, добавляем public root ключик с галочкой Allow write access. А затем применяем бест практику и пушим в мастер:
git push -u origin master
Всё Initial Commit почти со всем содержимым, запушен в репу. Красотища! ✔️ Но перед пушем не забываем поправить файлик .gitignore и добавить в него например всякие shadows и т.п.
Я этой хуйнёй не занимаюсь, ну спиздят у меня хеши паролей, да ради бога. Репа приватная. Да и на серваке у меня вход по паролям всегда отключен, только ключи.
Ну а теперь пробуем отредактировать какой-нибудь fstab и добавить новую строчку. Добавил? Ок, запускай!
etckeeper commit "поправил fstab" && git push
Всё! Правки в git репе. Ну и по желанию всё это дело можно откатить, либо пачкой, либо один файл. Делается так, смотрим список коммитов:
etckeeper vcs log --pretty=oneline

e36f279 (HEAD -> master, origin/master)
9c24a66 поправил fstab
c1ee020 Initial commit
Теперь откатываем правленый fstab:
etckeeper vcs checkout 9c24a66 /etc/fstab
Ееее! Откатилось. Ну и не забываем, что после отката нужно зафиксировать все изменения.
etckeeper commit "вернул как было"
git push
Вот и всё! Функционал etckeeper намного шире, я рассказал про основное и саму концепцию. А если будет интересно думаю ты и сам найдешь всю нужную информацию в гугле. Вообще можно и через Bash скрипт такое размутить, не устанавливая никакой софт, но иногда проще сделать apt install чем отлаживать баги в своем коде.
Я как-то на коленке изобретал нечто подобное для nginx, писал в этом посте.
Отслеживать изменения можно через incron и автоматически коммитить:
incrontab -e
/etc IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
Incron запускает таски не по временным меткам, а по событиям. Добавить больше нечего. Хорошего тебе дня! tags: #linux #utils @ВАSНDАYS | BАSHDАYS.CОM

🙀 Крутые новости от «Лаборатории Касперского» Открылся набор на оплачиваемую стажировку SafeBoard по направлению «DevOps». Е
🙀 Крутые новости от «Лаборатории Касперского» Открылся набор на оплачиваемую стажировку SafeBoard по направлению «DevOps». Если ты учишься в вузе в Москве/МО или Школе 21 на любом курсе, кроме выпускного и готов(а) работать от 20 часов в неделю — скорее запрыгивай в IT до 25 апреля, где тебя уже ждут команды: ● Отдел ИТ инфраструктуры внешних сервисов — научишься строить и развивать инфраструктурные сервисы. ● Группа разработки безопасных сетевых решений — освоишь работу с Linux, контейнерами, строение процессов CI/CD. ● Отдел разработки инфраструктурных решений и сервисов — узнаешь, как работают сети и проходит сбор программных продуктов на Java, JS, C/C++. ● Группа эксплуатации сервисов — поймешь, как поддерживать базы данных и сервисы для вирусных аналитиков-исследователей. Обучение и работа с реальными кейсами на воркшопе ждет всех, кто просто выполнит первый этап онлайн-отбора.😉 Зарплата, бесплатный спортзал в офисе, сауна, игровые комнаты — все это будет доступно тебе во время стажировки. Поднимай базы данных, а не роняй вазы https:safeboard.kaspersky 🐾 Реклама. ООО Кинетика, ИНН: 2225085053, erid: 2VtzqxiVePh

Флюгегехаймен Ну а что тут ответить, живи теперь с этим. С вас 50 тыщ рублей! В психологи что ли пойти. У меня прям получаетс
Флюгегехаймен Ну а что тут ответить, живи теперь с этим. С вас 50 тыщ рублей! В психологи что ли пойти. У меня прям получается 🫥 Чем круче контора, тем больше будет хуйни на собесах. «Канализационные люки» и «Дом для семьи жирафов на луне» никто не отменял. Прикинь если на собесах такую дичь спрашивают, какого тебе будет работать в такой компании? Будешь пилить задачи в стол которые не имеют смысла. Такого ты себе желаешь? Конечно нет! Голову не грей, в 99% случаев все эти собесы сделаны так, чтобы посмотреть — как быстро ты психанешь и убежишь в слезах. Ну любят эти черти HRы своё ЭГО потешить и ЧСВ лишний раз размять.
Когда мне давали подобные задачи, я честно говорил — я не буду это делать, потому что я ебал! Не я себя продаю, а вы пришли ко мне и позвали на собес. Поэтому не несите хуйню и давайте задачу связанную с моей будущей ролью. А если нет таких задач, извините, я пошел дальше мультики смотреть.
Обычно после этого, оффер у меня всегда был в кармане. Ну любят они кандидатов с яйцами. Не все правда, но большинство. Диктуй свои правила, не нужно бояться этих рекрутеров, рви им жопы шаблоны, ходи на собесы с холодной головой, делай одолжения. ✔️ Они как собаки, чувствуют страх. Испугался — тебе песда! Не взяли, ну и хер с ними. Значит эта компания — не твоё! В любом случае у тебя копится ценный опыт, со временем обрастаешь кожей, перестанешь на весь этот цирк обращать внимание. Ты же в айти крутишься, тут и не такое бывает. А самое главное, чем раньше начнешь копить финансовую подушку, тем увереннее будешь чувствовать себя на собесах. Хоть по 500 рублей в неделю откладывай. Потому что, тебе будет похер, пройдешь ты его или нет. На новые носки и дошик с сосисками хватит. Не сегодня, так завтра найдешь ты свой дримтим. Дело времени. Никто не говорил что будет легко. Всегда иди туда, где страшно! Ну и челендж — сможешь написать Bash скрипт на поиск Акронимов и устроиться в Яндекс? Кидай в комментарии, будет интересно! tags: #рабочиебудни @ВАSНDАYS | BАSHDАYS.CОM

Приглашаем на вторую конференцию по безопасности контейнеров «БеКон» 🥓 🗓 5 июня 2024 📍Москва 🌐bekon.luntry.ru 5 июня в Мо
Приглашаем на вторую конференцию по безопасности контейнеров «БеКон» 🥓 🗓 5 июня 2024 📍Москва 🌐bekon.luntry.ru 5 июня в Москве компания Luntry проведет вторую конференцию по безопасности контейнерных сред — «БеКон». Цель мероприятия Конференция призвана помочь компаниям перейти на новый уровень понимания контейнерной безопасности и адаптировать современные подходы по ее обеспечению. Как прошла первая конференция «БеКон»? В 2023 году мероприятие собрало множество положительных отзывов от участников, среди которых были архитекторы, инфраструктурные и платформенные команды, DevOps/DevSecOps, специалисты и руководители ИБ-департаментов. С докладами выступили эксперты из OZON, Tinkoff, Райффайзен Банк, Яндекс.Облако, ВКонтакте, Флант, BI.ZONE. Подробнее – в обзоре. Программа 2024 Программа «БеКона 2024» — такая же сочная выборка актуальных докладов от ведущих компаний, использующих контейнеризацию, из различных отраслей. Выступления будут короткими без рекламы и воды, но пропитанными многолетним практическим опытом. Приобрести билет можно на официальном сайте конференции. Реклама. ООО «КлаудРан», ИНН: 7804685734, erid: 2VtzqwJJ351

Привет, этот пост должен был выйти вчера, но тупоголовые боты видимо прислушались к моему совету и решили устроить себе выходной. Если ты не уверен, что сегодня выходной, этот Bash скрипт тебе поможет:
if [[ $(date +%u) -gt 5 ]]; then
    echo 'А вот и нет! У меня выходной!'
    exit 0
fi
Вот прям сейчас возьми и встрой это во все свои поделки на проде. И ни один крон не заставит их работать по выходным. ✔️ Скрипты тоже должны отдыхать! С праздниками посложнее будет, но если добавить и их в логику, привязать например к производственному календарю, тогда тебя точно на ретроспективе похвалят и дадут пизды премию. Правда посмертную. А если ты живешь в жопе мира, например в племенах Масаи и спишь под кустом, естественно скрипт нужно немного адаптировать. Ведь у тебя выходные дни будут выпадать на другие дни недели. Учти это! Ну красота же! Прям рубрика «Вредные советы» получилась. Экспериментируй. tags: #linux #bash @ВАSНDАYS | BАSHDАYS.CОM

😱 Научитесь всем важнейшим командам Linux На бесплатном практическом уроке от OTUS и Андрея Буранова — эксперта из VK. 💪 Ва
😱 Научитесь всем важнейшим командам Linux На бесплатном практическом уроке от OTUS и Андрея Буранова — эксперта из VK. 💪 Ваши результаты после вебинара: - узнаете, почему важно уметь работать в командной строке; - познакомитесь с bash — наиболее популярной командной оболочкой в Linux; - научитесь базовым командам для работы с файлами в Linux. 👉 Зарегистрируйтесь, чтобы посетить бесплатный урок и получить запись https://otus.pw/E7hG/ ⏰ Занятие пройдёт 18 апреля в 20:00 мск в рамках курса «Специализация Administrator Linux». Доступна рассрочка на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Привет отдыхающим. Хош не хош, а постом вас нужно порадовать и желательно интересным. Вот сейчас и порадую, самое время. Сегодня будем дебажить и багфиксить. Узнаем что такое core файлы в Linux и как с ними взаимодействовать. Иногда в Linux появляются какие-то странные файлы, с названием core.xxx, порой их бывает прям дохуя. Обычно их все сносят и не задумываются чо это за высер такой. А этот высер можно либо отключить, либо залезть в него рукой и поковырять. На самом деле все эти «Корки», очень полезный материал для изучения и отладки падающих приложений. ✔️ Что такое «Корки» Нет это не порода собаки. Всё просто, это файл, который содержит дамп памяти процесса в моменте, когда он уебался. То есть произошел segmentation fault. Имея этот файл на руках, можно запатчить, забагфиксить либо понять откуда растут ноги у ошибки. Как включить core файлы. Хуй знает. Обычно это делается через файл /etc/sysctl.conf, добавляем:
kernel.core_pattern=core
Либо из консоли брякнуть:
sysctl -w kernel.core_pattern=core
В этом случае, если процесс/программа уебалась, то в папке с этим приложением появится файл core.xxx. Важно! Выполняем:
ulimit -c
Если вернуло 0, то хуй те, а не «корка». Чтобы все сработало, выполняем команду:
ulimit -c unlimited
Так. У нас всё готово, по идее «корки» теперь будут создаваться. Если не создаются, то ты что-то сделал не так, либо в твоем дистрибутиве это делается иначе. Но я думаю это везде одинаково. Пробуй. Пишем простой код на СИськах
#include <stdio.h>

int main() {
    int *ptr = NULL;
    *ptr = 10;
    return 0;
}
Компилируем:
gcc -g -o bashdays bashdays.c
Ключ -g включает отладочную информацию. Без этого ключа хуй мы чо отдебажим.
В коде выше, я пытаюсь присвоить значение 10 по адресу, на который указывает указатель ptr, но ptr не инициализирован и содержит значение NULL. В попытке разыменования указателя на NULL мы получим segmentation fault.
Сложно? Забей, нам важно понять как работать с «корками» и дебажить. Так. Запускаем бинарник.
./bashdays
Хуяк и словили Segmentation fault (core dumped). Видишь в скобках core dumped? ВОТ ОНО! Рядом с бинарником появился файл core.1302. Полезли копаться в этом высере! Запускаем отладчик:
gdb ./bashdays core.1302
`` Происходит магия. Чето там бежит и льется. Без паники! Смотрим несколько последних строчек:
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000563ebf37f13d in main () at coretest.c:5
5 *ptr = 10;
Тааак… и видим из-за чего была вызвана ошибка. Даже строчку показывает, которая справедлива для исходника, хотя мы смотрим бинарник. Проверяем указатель ptr, вводим в отладчике:
(gdb) print ptr
$1 = (int *) 0x0
И видим что указатель ptr имеет значение NULL (0x0). Это и вызвало ошибку сегментации при попытке разыменования. Теперь когда у нас есть эта инфа, мы знаем, что проблема заключается в попытке доступа к памяти по-нулевому указателю и можно это забагфиксить. Самое простое решение, это добавить проверку и убедиться, что указатель ptr указывает на допустимую область памяти. Прежде чем разыменовывать его. Выделяем память для ptr с помощью функции malloc().
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = malloc(sizeof(int)); // выделяем память для указателя
    if (ptr != NULL) { // если память выделена, присваиваем значение
        *ptr = 10;
        free(ptr); // освобождаем память
    } else {
        printf("Алярма! Память не выделяется\n");
    }
    return 0;
}
Вот и забагфиксили, компилируем, запускаем. Ошибка сегментации исчезла. Улыбаемся и в очередной раз гордимся - какие же мы охуительные. Но не достаточно! Чтобы прям вообще преисполниться, нужно запатчить бинарник через hex редактор. Как это сделать, покажу совсем скоро, а то пост пиздец толстый получился. У меня всё. Изучай. tags: #linux #debug @ВАSНDАYS | BАSHDАYS.CОM

Переходите на тёмную сторону тему на Хабре вместе с Yandex Cloud! Мы знаем о любви разработчиков к тёмной теме. И знаем, что
Переходите на тёмную сторону тему на Хабре вместе с Yandex Cloud! Мы знаем о любви разработчиков к тёмной теме. И знаем, что многим её не хватало на Хабре. Встречайте технический квест от Хабра и Yandex Cloud, пройдя который вы сможете подключить долгожданную тёмную тему и выиграть мерч. Пройти квест и подключить темную тему можно здесь

Лишаем Linux девственности Доброе утро друзья. Сейчас покажу как попасть в секретный каталог в Linux. И в 99%, ты никогда раньше в нём не был. Для этого тебе понадобится портал, который уже есть в твоем дистрибутиве. Запускам Bash и вводим:
cd //
Опа-опа, нихуя!
user@server:/$ cd //
user@server://$
Видишь два слеша в промте? Поздравляю, дефлорация прошла успешно. Даже не нужно было вводить IDDQD, чтобы активировать «годмод». И где это мы? В пизде! Ну а чо гадать, давай посмотрим:
user@server:/$ cd //
user@server://$
user@server:/$ pwd
//
Хм, понятнее не стало… Давай посмотрим что находится у нас в этом каталоге, делаем ls -la. И что же мы видим? А видим мы содержимое корневой директории. Для чистоты эксперимента можешь запустить так ls -la /////// и получишь такой же результат. Получается никакого секретного каталога нет? Получается так. Нас наебали? Расходимся. Не совсем. ✔️ Почему так? Откуда берется второй слэш? POSIX в своём описании, говорит, что три и более слешей могут быть заменены на один слеш. Нужно это для канонизации текущего рабочего каталога.
Что такое POSIX, писал в этом посте.
И сделано это для исторической совместимости. Некоторые версии Unix во времена динозавров использовали пути вида: //hostname/path для доступа к path на сервере //hostname. Короче вся ответственность по двум слешам ложится на плечи дистрибутивов. И каждый дистрибутив в праве делать с ними всё что захочет. Пример: если в Cygwin выполнить cd // а затем ls, получишь ошибку:
ls: reading directory '.': Permission denied
Потому что Cygwin использует корень из // для определения //имени хоста/пути. А убунта с этим нормально уживается и выводит содержимое корневой директории. А все что более 2х слешей, должно рерайтиться на один слеш. Такие дела! Всех с пятницей и хороших выходных! Да и на выходные будут посты. На связи! tags: #linux #utils @ВАSНDАYS | BАSHDАYS.CОM

🌳 Tesla A100 на платформе immers.cloud. Графический процессор с максимальным ускорением для обучения и инференса моделей иск
🌳 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 Творите, развивайтесь, масштабируйтесь вместе с нами! Реклама. ООО «ДТЛ». ИНН 9717073792. erid: LjN8KENiz

Открытие костыльного цеха Привет. Все бэкапы, как и полагается я сжимаю через 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

Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF. 20 и 21 ап
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF. 20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽. Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам. Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения. Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля erid:2Vtzqx5Gph4 Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673

Трудно быть багом Тыдыжь! Может, башнем? Обязательно башнем. И не раз. Весь прод в труху. ✔️ Сегодня трём за экспорты. Имеется задача: нужно создать переменную в bash и затем отменить её экспорт. НО чтобы переменная не сбросилась. Она должна быть доступна в текущей оболочке, но не подпроцессам. Вроде все очевидно, а нихуя! Погнали в лабораторию.
1. BASHDAYS="hello bashdays"
2. export BASHDAYS
3. _BASHDAYS=$BASHDAYS
4. unset BASHDAYS
5. BASHDAYS=$_BASHDAYS
Пример выше, демонстрирует как это делают ВСЕ! Ну хуита прям полная. Никогда не делай такую блевотню. Чо происходит: 1. Задали переменную (не доступна в подпроцессах) 2. Экспортировали (доступна в подпроцессах) 3. Скопировали переменную в другую (не доступна в подпроцессах) 4. Ансетнули первую переменную (не доступна нигде) 5. Задаем переменную (не доступна в подпроцессах) А можно красивее? Конечно, для этого существует typeset. Мне иногда кажется, что на любой самописный велосипед, найдется нативная утилита, которую можно найти в коробке. Давай перепишем код:
1. BASHDAYS="hello bashdays"
2. export BASHDAYS
3. typeset +x BASHDAYS
1. Задаем переменную (не доступна в подпроцессах) 2. Экспортировали (доступна в подпроцессах) 3. Удаляем атрибут экспорта (не доступна в подпроцессах) Красиво? Да охуенно! Избавились от говнища и добились желаемого. Что значит доступна в подпроцессах?
1. BASHDAYS="hello bashdays"
2. export BASHDAYS
3. bash
4. echo $BASHDAYS
5. hello bashdays
6. exit
7. typeset +x BASHDAYS
8. bash
9. echo $BASHDAYS
10. хуй с маслом
В пятой строчке вывелось значение переменной, после запускаем bash внутри bash (подпроцесс), выводим переменную, а она пустая. Хотя если сделать exit, то переменная выводится. Если совсем грубо — родительский процесс выводит переменную, дочерний нет. То есть export на глобальном уровне задает переменную, которая доступна в любых подпроцессах (дочерних). Всё это справедливо для оболочки Bash, во всяких zsh и т.п. поведение может быть другое. Есть альтернативы typeset
declare +x BASHDAYS
export -n BASHDAYS
Получим тот же ожидаемый результат. Что конкретно ты будешь использовать, это уже от твоих предпочтений зависит. Typeset это альтернативный синтаксис для declare предоставленный для совместимости с другими оболочками. Я предпочитаю использовать именно typeset, привычка наверное. Давай краба, изучай! tags: #linux #bash @ВАSНDАYS | BАSHDАYS.CОM

Как создавать и настраивать различные типы сервисов в Kubernetes? Эта тема актуальна, так как играет ключевую роль в разверты
Как создавать и настраивать различные типы сервисов в Kubernetes? Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах. Освойте ее на бесплатном практическом уроке от OTUS. Спикер —  преподаватель курса и действующий Senior DevOps Engineer. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes: - ClusterIP для внутренних связей; - ExternalService для внешнего доступа; - NodePort для открытия порта на уровне узла; - LoadBalancer для балансировки нагрузки. Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes».  Спикер —  преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников. Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cw6rB9 Для всех, кто пройдет вступительный тест и запишется на бесплатный вебинар этого курса, будет доступна спец.цена на курс — обсудите свое обучение с менеджерами OTUS. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

✔️ Сделаем за час в течение недели Все из вас знают про канализационные люки и т.п. кринжовые задачи на собесах. Когда я работал в региональной веб-студии, директор этого цирка абсурда придумал свою кринжату. Тестирование проводилось на кандидатах, которые претендовали на роль бэкенд разработчика. Ща будет жара! Короче всем кандидатам назначалось одно время для собеса. Собиралось 5-10 человек. Всем вручали кубик-рубика. Включали таймер на 15 минут и понеслась пизда по кочкам. Как ты понял, нужно было за 15 минут собрать эту шайтан игрушку. В лучшем случае из 10 человек, успешно собирали двое. Всех остальных вышвыривали обратно на мороз с фразой — мы вам перезвоним. А дальше была битва на ножах? Неа! Брали на испытательный сразу двух человек и выживал только один (как в фильме Горец), самый скилловый, который за 3 месяца меньше всего нафакапил и принес больше денег фирме. Вот такие вот эксперименты над людьми. Думаю они до сих пор это практикуют, так как, там напрочь отбитое начальство. Не удивлюсь если девопсов начали проверять на детекторе лжи. Я проработал там 5 лет и ни разу у меня не было root доступа. Как я работал без рута? Шеф вводил пароль и сидел рядом пока я пилил таски. Пиздец… Зачем кубик то собирать? Да всё просто! Если бэкендер смог собрать кубик, значит у него с алгоритмами заебись и в голове порядок. Значит он это уже делал раньше, значит нейронные связи установлены правильно. Есть тут доля правды, ради интереса поспрашивал своих бэкендеров, сука, все как один сказали — да, мы можем собрать кубик, похуй хоть 3x3 хоть 13x13. Демоны какие-то ))) Задал этот же вопрос фронтэндерам, в ответ получил — Рома, ты ёбнутый, мы кнопочки двигаем, а не в кубики играем. Вот и выводы. Если ты не умеешь собирать кубик-рубика, то ты не можешь быть бэкендером. Можешь конечно, но недостаточно хорошим. Подумай, возможно как раз кубик поможет тебе решить вопросы с карьерной лестницей и разблокирует темные участки мозга. А ты умеешь собирать кубик? Я вот нет, да и в бэкендеры не особо хочу. Но один раз по мануалу собрал, удовольствия особого не испытал. tags: #рабочиебудни @ВАSНDАYS | BАSHDАYS.CОM

🧠 Вебинар "Как работают программы в Linux?" На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите
🧠 Вебинар "Как работают программы в Linux?" На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме. 👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/9Qi3/ 🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак» ⏰ Занятие пройдёт 16 апреля в 20:00 мск 📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Event loop из семи залуп. ✔️ Сегодня запускаем bash скрипт из nginx по локейшену. Идея такая, при открытии урла в браузере https://bashdays.com/bashdays.sh запускается bash скрипт, который лежит на сервере в папке /tmp/bashdays.sh. А зачем это нужно? Элементарно — чтобы запустить Bash скрипт! Но никогда так не делай. Чтобы подобное реализовать, тебе понадобится fcgiwrap либо lua. Из обычного nginx, который в коробке, это сделать невозможно. Политика безопасности, вся хуйня. Я возьму fcgiwrap, не хочу компилить модуль lua. Если у тебя есть lua, можешь через него подобное реализовать. Примеры ниже. Ставим врапер:
apt install fcgiwrap
Закидываем скрипт в /tmp/bashdays.sh
#!/bin/bash

echo "Content-type: text/html"
echo ""
echo "<h1>Hello Bashdays</h1>"
echo "<p>This is a test bash script.</p>"

echo "hello bashdays" > file.txt
В конфиге nginx городим локейшен:
location /bashdays.sh {
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
    fastcgi_param  SCRIPT_FILENAME /tmp/bashdays.sh;
    include fastcgi_params;
}
Заранее убедись что сокет fcgiwrap создался и лежит в нужном месте. На этом собственно всё. Да, надо сделать еще nginx reload. Открываем https://bashdays.com/bashdays.sh и лицезрим «Hello Bashdays This is a test bash script.». Но это еще не все. В папке /tmp появился файл file.txt. Как видишь все получилось. Дальше включай фантазию и твори. Для lua это будет выглядеть как-то так:

location /bashdays.sh {
    content_by_lua_block {
    os.execute("/tmp/bashdays.sh")
  }
}
Я этот код не проверял, он всяко не работает, на коленке накидал, но думаю главное тут суть. Кстати через php наверное тоже можно башник дернуть, там сокет так же подкинуть и через «хуй-пизда-лопата» запустить скрипт. Вообще промышлять таким - фу! Если ты кому-то расскажешь, то тебя выгонят ссаными тряпками. Всё чисто ради экспериментов. Изучай! tags: #linux #nginx #bash @ВАSНDАYS | BАSHDАYS.CОM

❓ Как освоить Linux на профессиональном уровне быстро и эффективно? 🎁 Начните с бесплатного практического урока «Работа с IP
❓ Как освоить Linux на профессиональном уровне быстро и эффективно? 🎁 Начните с бесплатного практического урока «Работа с IPTables. Фильтрация пакетов» от OTUS, где вы вместе с опытным экспертом: - разберёте основные возможности сетевого фильтра IPTables на примере системы Ubuntu 22.04; - изучите архитектуру подсистемы Netfilter и основные команды утилита iptables; - научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера. ⏰ Занятие пройдёт 11 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение! 👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/TEe2/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru