Такс. Вопрос из зала — как через bash скрипт запросить у пользователя пароль, но чтобы при вводе пароля отображались звездочки?
На этот счет у меня есть 2 кишки. Выбирай любую понравившуюся. Либо пиши свой вариант в комментариях, будет интересно посмотреть.
Кишка первая.
Согласен, выглядит хуёва, но вторая на визуал еще хуёвие.
В этой кишке есть нюанс, она НЕ работает с кнопкой Backspace, то есть ты не сможешь отредактировать, то что уже ввел.
Кишка вторая.
А тут уже более совершенный вариант, с рабочей кнопкой Backspace.
ㅤ
Чо делать дальше? Ну логично же, в переменную «a» записывается введенный пароль, а дальше делай с ним все что захочешь.
Вот такие пироги!
tags: #bash
—
🔔
На этот счет у меня есть 2 кишки. Выбирай любую понравившуюся. Либо пиши свой вариант в комментариях, будет интересно посмотреть.
Кишка первая.
a=''; while read -n 1 -s c; do [ "$c" = '' ] && break; echo -n '*'; a="$a$c"; done
Согласен, выглядит хуёва, но вторая на визуал еще хуёвие.
В этой кишке есть нюанс, она НЕ работает с кнопкой Backspace, то есть ты не сможешь отредактировать, то что уже ввел.
Кишка вторая.
a=''; while read -n 1 -s c; do [ "$c" = '' ] && break; if [ "$c" = $'\x7f' ]; then [ "$a" != "" ] && { a=${a:0:-1}; printf "\b \b"; }; else echo -n '*'; a="$a$c"; fi; done;
А тут уже более совершенный вариант, с рабочей кнопкой Backspace.
ㅤ
Чо делать дальше? Ну логично же, в переменную «a» записывается введенный пароль, а дальше делай с ним все что захочешь.
Вот такие пироги!
tags: #bash
—
🔔
Slack через 12 дней отключит аккаунты российских пользователей – это навсегда.
Уход Slack с российского рынка чем-то напоминает Доминика Торетто и его “последнюю гонку”. Или закрытие Sunlight.
Но тут все серьезно. Лучше не ждать 13 дней, когда Slack заблокирует ваше пространство и удалит все данные, как это случилось с тысячами команд в России.
В этот раз не пронесет. Оформить подписку с левого юрлица или оплатить зарубежной картой уже не получится.
Лучше заранее перейти на сервисы, которые точно никто не заблокирует. В идеале – развернуть мессенджер на своем сервере, в который можно перенести все ваши данные из Slack.
Мы как раз нашли такой – корпоративный мессенжер Compass.
Что он умеет:
🔹полный перенос всех данных из Slack в Compass
🔹все к чему вы привыкли в Slack: чаты, треды, реакции
🔹видеоконференции на 500+ участников
🔹интеграции со 100+ сервисами и боты
Compass можно использовать как в облаке, так и развернуть на своем сервере. А еще у сервиса открытый исходный код.
Попробуйте Compass ...
Уход Slack с российского рынка чем-то напоминает Доминика Торетто и его “последнюю гонку”. Или закрытие Sunlight.
Но тут все серьезно. Лучше не ждать 13 дней, когда Slack заблокирует ваше пространство и удалит все данные, как это случилось с тысячами команд в России.
В этот раз не пронесет. Оформить подписку с левого юрлица или оплатить зарубежной картой уже не получится.
Лучше заранее перейти на сервисы, которые точно никто не заблокирует. В идеале – развернуть мессенджер на своем сервере, в который можно перенести все ваши данные из Slack.
Мы как раз нашли такой – корпоративный мессенжер Compass.
Что он умеет:
🔹полный перенос всех данных из Slack в Compass
🔹все к чему вы привыкли в Slack: чаты, треды, реакции
🔹видеоконференции на 500+ участников
🔹интеграции со 100+ сервисами и боты
Compass можно использовать как в облаке, так и развернуть на своем сервере. А еще у сервиса открытый исходный код.
Попробуйте Compass ...
Про интересный факап и траблшутинг.
Обратился клиент — у нас mysql реплика не работает. Вернее работает, но отстала всего лишь на 3 месяца.
На вопрос — а хули вы 3 месяца сидели, у вас же мониторинг есть?
Очевидный ответ — да, есть, но оно молчит.
Ладно, полез разбираться.
А там ошибки брынчат, как хуи в бидоне.
Ну это ладно, ошибка и ошибка, тут понятно что делать — НИЧЕГО.
Так как реплика используется чисто аналитиками на потыкать, игнорим эту ошибку через my.cfg. Быстрофикс.
✔ Для продуктовой реплики такое делать - НЕЛЬЗЯ!
Самый важный вопрос — какого хера мониторинг 3 месяца молчал?
Тут уже интереснее. Реплика заведена в prometheus, экспортеры есть, все дела.
Но из графаны сервер пропал, хотя год назад я ее точно там видел.
Думаем… Думаем… Смотрю графану, мониторится поле: replica_seconds_behind
Хм, лезу обратно на реплику, а там сроду нет mysql_exporter. Что же это тогда такое?
Копаем вглубь и видим, что node_exporter мониторит папку /tmp на наличие файликов .prom.
Ага… То есть метрики с mysql реплики собирает какой-то bash скрипт по крону, генерит текстовичок и отдает в prometheus.
Типа такого:
Да, оно прекрасно работало, до момента пока не вылезла ошибка: Cannot delete or update a parent row
Соответственно текстовый файл replica.prom получился в таком формате:
Ну а дальше prometheus такое распарсить не смог (он хочет циферки, а не буковки) и тихонечко вывел эту ноду из графаны и вообще отовсюду. Ну и аллерты в придачу. На что им тригериться если ноды нет нигде?
Прикол в том, что во время возникновения ошибки, поле Seconds_Behind_Master в mysql принимает значение Null, а не продолжает дальше считать на сколько отстала реплика.
ㅤ
А вот и bash скрипт, который собирал метрики:
Работа над ошибками проведена, инцидент разобран. Ни одна жопа на ретроспективе пока не пострадала, но возможно дело времени.
И всегда помни — если изобретаешь велосипед, всегда обрабатывай эксепшены!
tags: #devops #debug #bash #monitoring
—
🔔
Обратился клиент — у нас mysql реплика не работает. Вернее работает, но отстала всего лишь на 3 месяца.
На вопрос — а хули вы 3 месяца сидели, у вас же мониторинг есть?
Очевидный ответ — да, есть, но оно молчит.
Ладно, полез разбираться.
SHOW SLAVE STATUS\G;
А там ошибки брынчат, как хуи в бидоне.
Error 'Cannot delete or update a parent row: a foreign key constraint fails'
Ну это ладно, ошибка и ошибка, тут понятно что делать — НИЧЕГО.
Так как реплика используется чисто аналитиками на потыкать, игнорим эту ошибку через my.cfg. Быстрофикс.
✔ Для продуктовой реплики такое делать - НЕЛЬЗЯ!
Самый важный вопрос — какого хера мониторинг 3 месяца молчал?
Тут уже интереснее. Реплика заведена в prometheus, экспортеры есть, все дела.
Но из графаны сервер пропал, хотя год назад я ее точно там видел.
Думаем… Думаем… Смотрю графану, мониторится поле: replica_seconds_behind
Хм, лезу обратно на реплику, а там сроду нет mysql_exporter. Что же это тогда такое?
Копаем вглубь и видим, что node_exporter мониторит папку /tmp на наличие файликов .prom.
Ага… То есть метрики с mysql реплики собирает какой-то bash скрипт по крону, генерит текстовичок и отдает в prometheus.
Типа такого:
replica_slave_io_running{host="replica"} 1
replica_seconds_behind{host="replica"} 1234567
Да, оно прекрасно работало, до момента пока не вылезла ошибка: Cannot delete or update a parent row
Соответственно текстовый файл replica.prom получился в таком формате:
replica_slave_io_running{host="replica"} 1
replica_seconds_behind{host="replica"} Null
Ну а дальше prometheus такое распарсить не смог (он хочет циферки, а не буковки) и тихонечко вывел эту ноду из графаны и вообще отовсюду. Ну и аллерты в придачу. На что им тригериться если ноды нет нигде?
Прикол в том, что во время возникновения ошибки, поле Seconds_Behind_Master в mysql принимает значение Null, а не продолжает дальше считать на сколько отстала реплика.
ㅤ
А вот и bash скрипт, который собирал метрики:
#!/bin/bash
MAINDIR=/tmp
METRICS=rstatus.prom
HOST="replica"
SLAVE_IO_RUNNING=$(mysql -e 'SHOW SLAVE STATUS \G' | grep 'Slave_IO_Running'| awk '{print $2}')
SLAVE_SECONDS_BEHIND=$(mysql -e 'SHOW SLAVE STATUS \G' | grep 'Seconds_Behind_Master'| awk '{print $2}')
if [[ "$SLAVE_IO_RUNNING" == "Yes" ]]; then
J=1
echo 'replica_slave_io_running{host="'$HOST'"}' $J > $MAINDIR/$METRICS
else
J=0
echo 'replica_slave_io_running{host="'$HOST'"}' $J > $MAINDIR/$METRICS
fi
echo 'replica_seconds_behind{host="'$HOST'"}' $SLAVE_SECONDS_BEHIND >> $MAINDIR/$METRICS
Работа над ошибками проведена, инцидент разобран. Ни одна жопа на ретроспективе пока не пострадала, но возможно дело времени.
Как писать подобные экспортеры я накидывал в этом посте.
И всегда помни — если изобретаешь велосипед, всегда обрабатывай эксепшены!
tags: #devops #debug #bash #monitoring
—
🔔
⚡️44% российских компаний уже используют искусственный интеллект для разработки и тестирования ПО
Yandex Cloud совместно с Экспресс 42 и другими партнёрами выпустили первую часть исследования State of DevOps Russia. В этом году в опросе приняли участие более 4000 специалистов – от руководителей до специалистов, связанных с разработкой, тестированием и эксплуатацией систем.
Подробнее об итогах исследования, главных цифрах и выводах – в статье.
Yandex Cloud совместно с Экспресс 42 и другими партнёрами выпустили первую часть исследования State of DevOps Russia. В этом году в опросе приняли участие более 4000 специалистов – от руководителей до специалистов, связанных с разработкой, тестированием и эксплуатацией систем.
Подробнее об итогах исследования, главных цифрах и выводах – в статье.
Тут персонаж один пристал, говорит что у него в Java есть какой-то «мусожор», а вот в Bash такого нет и поэтому от наших скриптов одни проблемы.
Термин «Мусожор» видимо профессиональный и является пресловутым «Garbage Collector».
ㅤ
К Java я отношусь ровно, оно меня не трогает и я его тоже.
Как говорится — Одно гавно другому не равно. Поэтому хуисосить не буду.
Давай проведем эксперимент:
В первой строчке выводится количество физической памяти в килобайтах, используемой текущим процессом оболочки. У меня выдало 4348.
Во второй строчке записываем в переменную
В третьей строчке снова выводим количество физической памяти, у меня 5276.
Ага, оно стало больше. Было 4348 стало 5276.
В четвертой строчке, перезаписываем
На этот раз пятая строчка вновь показывает: 4348.
Что и требовалось доказать. Использование памяти увеличивается, а затем снова уменьшается.
Все манипуляции с памятью выполняются на уровне Linux ядра. И нет никакой необходимости рвать жопу и греть голову.
Bash не работает с памятью и объектами, так же как обычные языки программирования.
tags: #bash
—
🔔
Термин «Мусожор» видимо профессиональный и является пресловутым «Garbage Collector».
ㅤ
К Java я отношусь ровно, оно меня не трогает и я его тоже.
Как говорится — Одно гавно другому не равно. Поэтому хуисосить не буду.
Давай проведем эксперимент:
1. ps -o rss -p $$
2. var=$(printf "%s\n" {1..100000})
3. ps -o rss -p $$
4. var="bashdays"
5. ps -o rss -p $$
В первой строчке выводится количество физической памяти в килобайтах, используемой текущим процессом оболочки. У меня выдало 4348.
Во второй строчке записываем в переменную
var
содержимое от 1-100000 с переносом на новую строку.В третьей строчке снова выводим количество физической памяти, у меня 5276.
Ага, оно стало больше. Было 4348 стало 5276.
В четвертой строчке, перезаписываем
var
на строку «bashdays» и снова проверяем память.На этот раз пятая строчка вновь показывает: 4348.
Что и требовалось доказать. Использование памяти увеличивается, а затем снова уменьшается.
Все манипуляции с памятью выполняются на уровне Linux ядра. И нет никакой необходимости рвать жопу и греть голову.
Bash не работает с памятью и объектами, так же как обычные языки программирования.
tags: #bash
—
🔔
Ёхохо. Не пить алкашку по выходным конечно круто, по итогу все это время компенсируешь работой. Продуктивность зашкаливает. НО, скучно пиздец!
Поэтому приходится отвлекаться игрульками. Гоняя Зельду, невольно задумался, а квесты то очень похожи на алгоритмы в программировании. Порой что аж жопа горит. И их можно давать на собеседованиях. Без знания паттернов хер чо пройдешь.
Ладно, теперь по теме: Реврайтим CTRL+C.
Как прерывать запущенные программы и скрипты тут каждый знает. А как работает изнутри
ㅤ
Сегодня что-то вроде на изи потыкать. Понедельник как-никак.
Где применяется реврайт
✔ А вообще причины для реврайта разные:
- Избежание конфликтов с программным обеспечением
- Удобство и предпочтения пользователя
- Специальные рабочие процессы
- Случайные нажатия
- Ограниченные возможности клавиатуры
- и т.п.
Давай теперь на практике.
Смотрим дефолтное сочетание
Получаем портянку вида:
Смотрим параметр intr, он и указывает на сочетание, которое будет слать SIGINT. По умолчанию как видим оно =
Давай теперь поменяем эту штуку:
Теперь запускаем для теста
Поздравляю, реврайт прошел успешно. А теперь нажми
Можешь теперь издеваться над коллегами и ломать им рабочие процессы.
Чтобы сохранить эти настройки, выполняем:
Ну либо в .zshrc, тут уже сам смотри где у тебя первоначальные настройки валяются.
А можно сделать CTRL+ALT+K ?
Через stty увы такое провернуть не получится.
Но используя xbindkeys такое возможно.
Но xbindkeys со своими подводными камнями, оно для Иксов. А если у тебя Wayland то смотри в сторону sway или gnome-keybinding.
Такие дела. Ладно, пошли дальше мир спасать. Хорошего понедельника!
tags: #linux
—
🔔
Поэтому приходится отвлекаться игрульками. Гоняя Зельду, невольно задумался, а квесты то очень похожи на алгоритмы в программировании. Порой что аж жопа горит. И их можно давать на собеседованиях. Без знания паттернов хер чо пройдешь.
Ладно, теперь по теме: Реврайтим CTRL+C.
Как прерывать запущенные программы и скрипты тут каждый знает. А как работает изнутри
CTRL+C
я напишу в следующих постах.ㅤ
Сегодня что-то вроде на изи потыкать. Понедельник как-никак.
Где применяется реврайт
CTRL+C
? Да практически нигде, но то, что его можно зареврайтить это факт.✔ А вообще причины для реврайта разные:
- Избежание конфликтов с программным обеспечением
- Удобство и предпочтения пользователя
- Специальные рабочие процессы
- Случайные нажатия
- Ограниченные возможности клавиатуры
- и т.п.
Давай теперь на практике.
Смотрим дефолтное сочетание
stty -a
stty - утилита, которая настраивает параметры терминала.
Получаем портянку вида:
speed 38400 baud; rows 57; columns 237; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
Смотрим параметр intr, он и указывает на сочетание, которое будет слать SIGINT. По умолчанию как видим оно =
CTRL+C
.Давай теперь поменяем эту штуку:
stty intr ^K
Теперь запускаем для теста
sleep 1000
и пробуем нажать CTRL+C
. Опа и нихуя не происходит.Поздравляю, реврайт прошел успешно. А теперь нажми
CTRL+K
и sleep
завершится. Клёва? Клёва!Можешь теперь издеваться над коллегами и ломать им рабочие процессы.
Чтобы сохранить эти настройки, выполняем:
echo 'stty intr ^K' >> ~/.bashrc
Ну либо в .zshrc, тут уже сам смотри где у тебя первоначальные настройки валяются.
А можно сделать CTRL+ALT+K ?
Через stty увы такое провернуть не получится.
Но используя xbindkeys такое возможно.
vim ~/.xbindkeysrc
и добавить туда:
"pkill -SIGINT -f ."
Control+Alt + k
Но xbindkeys со своими подводными камнями, оно для Иксов. А если у тебя Wayland то смотри в сторону sway или gnome-keybinding.
Такие дела. Ладно, пошли дальше мир спасать. Хорошего понедельника!
tags: #linux
—
🔔
🎲 Высокая доступность в Kubernetes: бесплатный вебинар
Привет! Мы — команда Слёрма, учебный центр для айти-специалистов middle+ и фанаты k8s.😎
11 июля в 18:00 мы приглашаем вас на вебинар «Высокая доступность в Kubernetes: пробы, реквесты/лимиты, HPA».
На встрече обсудим:
❓ Можно ли не делать рединесс пробы и лить трафик сразу на сервер?
❓ Что будет, если выставить неправильные пробы?
И еще много интересного!
Спикеры:
➡️ Кирилл Борисов, SRE Lead в MTS Digital
➡️ Всеволод Севостьянов, Staff engineer в Lokalise
➡️ Дмитрий Будаков, Системный инженер в интеграторе
Зарегистрироваться на вебинар можно с помощью нашего бота-помощника. Подключайтесь!
🔗 ХОЧУ НА ВЕБИНАР
Реклама ООО «Слёрм» ИНН 3652901451 erid: 2Vtzqummakq
Привет! Мы — команда Слёрма, учебный центр для айти-специалистов middle+ и фанаты k8s.😎
11 июля в 18:00 мы приглашаем вас на вебинар «Высокая доступность в Kubernetes: пробы, реквесты/лимиты, HPA».
На встрече обсудим:
❓ Можно ли не делать рединесс пробы и лить трафик сразу на сервер?
❓ Что будет, если выставить неправильные пробы?
И еще много интересного!
Спикеры:
➡️ Кирилл Борисов, SRE Lead в MTS Digital
➡️ Всеволод Севостьянов, Staff engineer в Lokalise
➡️ Дмитрий Будаков, Системный инженер в интеграторе
Зарегистрироваться на вебинар можно с помощью нашего бота-помощника. Подключайтесь!
🔗 ХОЧУ НА ВЕБИНАР
Реклама ООО «Слёрм» ИНН 3652901451 erid: 2Vtzqummakq
Так, самое время подвести итоги с картами «Релиз».
Больше всего реакций набрал комментарий Алексея Агафонова (supmea), по итогу 39 огоньков.
На втором месте Александр Смирнов (wddingo) с 38 лайками за комментарий:
Ну и третье место занял Максим (Rosssich), набрав 30 респектов за комментарий:
На этой неделе к вам придет Макс и узнает куда засылать призы. Ждите.
Нюансы. На руках у меня всего одна колода, она отправится в приоритете Алексею, остальные две вышлем в ближайшее время, как получим их от организатора. Ну либо закинем рублей на карту, чтобы вы самостоятельно заказали их через Авито и не парились на почте.
Всем спасибо за участие, вы все лучшие!
Больше всего реакций набрал комментарий Алексея Агафонова (supmea), по итогу 39 огоньков.
Привести в порядок всё, чтоб не стыдно перед последователями было. А доступы и так оставят и почту. Ещё и докучают что-либо сделать. А мы идём на большие деньги смотреть как у других всё сделано не так как нужно
На втором месте Александр Смирнов (wddingo) с 38 лайками за комментарий:
Самое гадкое, что можно было им сделать - я сделал, я ушел с этой работы. Пусть теперь сами с этим говном разбираются. А пакостить - это считаю слишком мелочным
Ну и третье место занял Максим (Rosssich), набрав 30 респектов за комментарий:
а вообще - ключевое слово "не заплатили". поэтому заявление в трудовую инспекцию, суд и т.д. там можно урона нанести больше чем от всяких там chaosmonkey )
На этой неделе к вам придет Макс и узнает куда засылать призы. Ждите.
Нюансы. На руках у меня всего одна колода, она отправится в приоритете Алексею, остальные две вышлем в ближайшее время, как получим их от организатора. Ну либо закинем рублей на карту, чтобы вы самостоятельно заказали их через Авито и не парились на почте.
Всем спасибо за участие, вы все лучшие!
This media is not supported in your browser
VIEW IN TELEGRAM
Как стать DevOps-инженером за 4 месяца? 🐳 Об этом расскажут аж на 2-х бесплатных уроках от Merion Academy!
Забирай целый набор из бесплатных полезностей:
📍2 бесплатных урока, где расскажут, кто такой DevOps-инженер, какие инструменты использует, куда и как развивает карьеру, познакомят с Docker и контейнирезацией.
📍 В дополнение бесплатный интенсив по развитию карьеры, где HR-эксперты расскажут лайфхаки, как создавать сильные резюме и проходить собеседования, так, чтобы вас взяли на работу.
📍Гайд по командам Docker и Курс по английскому для IT.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Что еще важно знать:
1. У ребят одна из самых доступных цен, которая в 4-5 раз ниже, чем в других известных школах, но качество обучения на том же уровне. Это достигается за счет того, что в Мерионе не тратят миллионы на продвижение, а рекламируются только на собственных ресурсах и в тематических телеграм-каналах. Кроме этого у них также отсутствуют расходы на младших ме...
Забирай целый набор из бесплатных полезностей:
📍2 бесплатных урока, где расскажут, кто такой DevOps-инженер, какие инструменты использует, куда и как развивает карьеру, познакомят с Docker и контейнирезацией.
📍 В дополнение бесплатный интенсив по развитию карьеры, где HR-эксперты расскажут лайфхаки, как создавать сильные резюме и проходить собеседования, так, чтобы вас взяли на работу.
📍Гайд по командам Docker и Курс по английскому для IT.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Что еще важно знать:
1. У ребят одна из самых доступных цен, которая в 4-5 раз ниже, чем в других известных школах, но качество обучения на том же уровне. Это достигается за счет того, что в Мерионе не тратят миллионы на продвижение, а рекламируются только на собственных ресурсах и в тематических телеграм-каналах. Кроме этого у них также отсутствуют расходы на младших ме...
И снова здравствуйте. Давай сегодня немного в кишках покопаемся.
Запускаем бессмысленную команду:
И наблюдаем как строка статистики постоянно меняется.
В простонародье — рефрешится.
Бесполезная? Ну не скажи, с её помощью можно протестировать скорость чтения и записи.
ㅤ
Эта команда копирует блоками нули из спец-файла в другой. Записывая статистику на стандартный вывод ошибок stderr.
Строка статистики постоянно меняется. Но как dd это делает? Давай разберемся ниже.
Запускаем страшную кишку и немного ждем
По итогу получаем, что-то подобное:
Портянка с read означает — ждем 4 секунды, считываем первую строчку ввода и сохраняем ее в переменную REPLY, а далее выводим содержимое переменной на экран.
✔ Не так уж и страшно, правда?
Ааа, херовина
Ну дак вот.
Получается утилита dd, пишет статистику за секунду в стандартный поток ошибок и затем суёт символ
Который означает - возврат каретки.
Вот и вся магия.
Делаем хак, чтобы избавиться от возврата каретки:
Теперь статистика выводится в столбик:
Нагляднее? Конечно!
Что с этим можно сделать? Ну например протестировать скорость чтения и записи, используя разный размер буферов.
Херачим Bash скрипт:
Запускаем и получаем:
Круто? Да охуеть!
Ну а если нужна статистика за пять секунд. Делаем 5+1 к количеству записей и индексу массива. Массив начинается с нуля. Но можешь это изменить с помощью опции -O.
По итогу имеем статистику за 5 секунд:
Вот такие пироги. Теперь можешь тестировать VPSки и писать статью на хабру с бенчмарками.
Давай, увидимся завтра!
tags: #linux #bash
—
🔔
Запускаем бессмысленную команду:
dd if=/dev/zero of=/dev/null status=progress
И наблюдаем как строка статистики постоянно меняется.
В простонародье — рефрешится.
4254480896 bytes (4.3 GB, 4.0 GiB) copied, 4.77966 s, 890 MB/s
Бесполезная? Ну не скажи, с её помощью можно протестировать скорость чтения и записи.
ㅤ
Эта команда копирует блоками нули из спец-файла в другой. Записывая статистику на стандартный вывод ошибок stderr.
Строка статистики постоянно меняется. Но как dd это делает? Давай разберемся ниже.
Запускаем страшную кишку и немного ждем
dd if=/dev/zero of=/dev/null status=progress |& { read -t 4; echo "${REPLY}"; }
По итогу получаем, что-то подобное:
$'\r927888896 bytes (928 MB, 885 MiB) copied, 1 s, 928 MB/s\r1851585024 bytes (1.9 GB, 1.7 GiB) copied, 2 s, 926 MB/s\r2749514752 bytes (2.7 GB, 2.6 GiB) copied, 3 s, 917 MB/s'
Портянка с read означает — ждем 4 секунды, считываем первую строчку ввода и сохраняем ее в переменную REPLY, а далее выводим содержимое переменной на экран.
✔ Не так уж и страшно, правда?
Ааа, херовина
|&
нужна, чтобы объединить stdout и stderr и затем направить его в read.Ну дак вот.
Получается утилита dd, пишет статистику за секунду в стандартный поток ошибок и затем суёт символ
«\r»
. Который означает - возврат каретки.
Вот и вся магия.
Делаем хак, чтобы избавиться от возврата каретки:
dd if=/dev/zero of=/dev/null status=progress |& tr '\r' '\n'
Теперь статистика выводится в столбик:
1836032000 copied, 2 s, 918 MB/s
2793336832 copied, 3 s, 931 MB/s
3726170624 copied, 4 s, 932 MB/s
4655933440 copied, 5 s, 931 MB/s
Нагляднее? Конечно!
Что с этим можно сделать? Ну например протестировать скорость чтения и записи, используя разный размер буферов.
Херачим Bash скрипт:
#!/bin/bash
for i in {9..20}
do
bs=$((2**i))
dd bs="$bs" if=/dev/zero of=/dev/null status=progress |& {
mapfile -d$'\r' -n 2; printf '%-8s : %s\n' "$bs" "${MAPFILE[1]}"; }
done
exit
Запускаем и получаем:
512 : 878647296 copied, 1 s, 879 MB/s
1024 : 1618295808 copied, 1 s, 1.6 GB/s
2048 : 3096260608 copied, 1 s, 3.1 GB/s
4096 : 5056294912 copied, 1 s, 5.1 GB/s
8192 : 8047247360 copied, 1 s, 8.0 GB/s
Круто? Да охуеть!
Ну а если нужна статистика за пять секунд. Делаем 5+1 к количеству записей и индексу массива. Массив начинается с нуля. Но можешь это изменить с помощью опции -O.
#!/bin/bash
for i in {9..20}
do
bs=$((2**i))
dd bs="$bs" if=/dev/zero of=/dev/null status=progress |& {
mapfile -d$'\r' -n 6; printf '%-8s : %s\n' "$bs" "${MAPFILE[5]}"; }
done
exit
По итогу имеем статистику за 5 секунд:
512 : 4667945472 copied, 5 s, 934 MB/s
1024 : 8693190656 copied, 5 s, 1.7 GB/s
2048 : 15988561920 copied, 5 s, 3.2 GB/s
4096 : 27510878208 copied, 5 s, 5.5 GB/s
8192 : 39937343488 copied, 5 s, 8.0 GB/s
Вот такие пироги. Теперь можешь тестировать VPSки и писать статью на хабру с бенчмарками.
Давай, увидимся завтра!
tags: #linux #bash
—
🔔
С утра успешно победил всех антагонистов и теперь самое время сделать что-то полезное.
Сегодня разбираем проблемный Bash скрипт.
А проблема заключается в том, что скрипт удаляет файлы, которые содержат в именах цифры.
За качество скрипта тереть не будем. Нам нужно задебажить проблему, ведь явных команд на удаление в этом скрипте — нет.
Для начала, давай создадим вводные, чтобы было с чем работать.
Так, создали 6 файлов с разными именами:
Модифицируем проблемный скрипт, чтобы он выводил строку с командой
Запускаем и получаем красивое:
Смотрим что у нас осталось, хуяк и вместо 6 файлов, у нас осталось всего лишь 3 штук.
Куда блядь делось остальное? Вокруг да около ходить не будем.
Дело в том, что в одном каталоге не может быть двух файлов с одинаковым названием. Очевидно? Да!
Как работает
Если <новое имя> это существующее имя файла, тогда оно будет удалено, а <старое имя> получит имя <новое имя>.
ㅤ
Если взять нашу ситуацию, то произошло следующее:
1. Удалено 01.txt. и 001.txt -> 01.txt
2. Удалено 02.txt. и 002.txt -> 02.txt
3. Удалено 03.txt. и 003.txt -> 03.txt
✔ Итого потеряли 3 файла, печаль.
Теперь давай более наглядно. Удаляем подопытные файлы и создаем новые. Плюс запишем в каждый файл его имя.
Получилось 6 файлов, в каждом файле содержится имя самого файла.
Смотрим что получилось:
Снова модифицируем скрипт и задаем опцию
Выполняем скрипт и смотрим что у нас осталось от файлов.
Теперь смотрим содержимое самих файлов и преисполняемся.
По итогу, если нужно пронумеровать файлы, позаботься об уникальности имён и заранее протестируй на тестовых данных. Чтобы случайно к херам не снести все ассетсы с продакшена.
Ну и всегда обрабатывай исключения если файл уже существует, чтобы не остаться без штанов.
Изучай, всего тебе самого наилучшего!
tags: #linux #bash
—
🔔
Сегодня разбираем проблемный Bash скрипт.
#!/bin/bash
i=0
for name in `ls *.txt`
do
i=$[i+1]
mv $name `printf "%02d" $i`.txt
done
А проблема заключается в том, что скрипт удаляет файлы, которые содержат в именах цифры.
За качество скрипта тереть не будем. Нам нужно задебажить проблему, ведь явных команд на удаление в этом скрипте — нет.
Для начала, давай создадим вводные, чтобы было с чем работать.
mkdir /tmp/test
cd /tmp/test
touch {001..003}.txt {01..03}.txt
Так, создали 6 файлов с разными именами:
01.txt
02.txt
03.txt
001.txt
002.txt
003.txt
Модифицируем проблемный скрипт, чтобы он выводил строку с командой
mv
перед её выполнением:#!/bin/bash
i=0
for name in `ls *.txt`
do
i=$[i+1]
echo 'DEBUG: mv' $name `printf "%02d" $i`.txt
mv $name `printf "%02d" $i`.txt
done
exit 0
Запускаем и получаем красивое:
DEBUG: mv 001.txt 01.txt
DEBUG: mv 002.txt 02.txt
DEBUG: mv 003.txt 03.txt
DEBUG: mv 01.txt 04.txt
DEBUG: mv 02.txt 05.txt
DEBUG: mv 03.txt 06.txt
Смотрим что у нас осталось, хуяк и вместо 6 файлов, у нас осталось всего лишь 3 штук.
ls
04.txt
05.txt
06.txt
Куда блядь делось остальное? Вокруг да около ходить не будем.
Дело в том, что в одном каталоге не может быть двух файлов с одинаковым названием. Очевидно? Да!
Как работает
mv
:mv <старое имя> <новое имя>
Если <новое имя> это существующее имя файла, тогда оно будет удалено, а <старое имя> получит имя <новое имя>.
ㅤ
Если взять нашу ситуацию, то произошло следующее:
1. DEBUG: mv 001.txt 01.txt
2. DEBUG: mv 002.txt 02.txt
3. DEBUG: mv 003.txt 03.txt
4. DEBUG: mv 01.txt 04.txt
5. DEBUG: mv 02.txt 05.txt
6. DEBUG: mv 03.txt 06.txt
1. Удалено 01.txt. и 001.txt -> 01.txt
2. Удалено 02.txt. и 002.txt -> 02.txt
3. Удалено 03.txt. и 003.txt -> 03.txt
✔ Итого потеряли 3 файла, печаль.
Теперь давай более наглядно. Удаляем подопытные файлы и создаем новые. Плюс запишем в каждый файл его имя.
for i in {001..003}.txt {01..03}.txt; do echo $i > $i;done
Получилось 6 файлов, в каждом файле содержится имя самого файла.
Смотрим что получилось:
ls -la
8 Jul 10 08:05 001.txt
8 Jul 10 08:05 002.txt
8 Jul 10 08:05 003.txt
7 Jul 10 08:05 01.txt
7 Jul 10 08:05 02.txt
7 Jul 10 08:05 03.txt
Снова модифицируем скрипт и задаем опцию
-b
для утилиты mv
. Теперь для существующего файла будет создаваться резервная копия. Бекап ёпта!#!/bin/bash
i=0
for name in `ls *.txt`
do
i=$[i+1]
echo 'DEBUG: mv' $name `printf "%02d" $i`.txt
mv -b $name `printf "%02d" $i`.txt
done
exit 0
Выполняем скрипт и смотрим что у нас осталось от файлов.
ls -la
7 Jul 10 08:05 01.txt~
7 Jul 10 08:05 02.txt~
7 Jul 10 08:05 03.txt~
8 Jul 10 08:05 04.txt
8 Jul 10 08:05 05.txt
8 Jul 10 08:05 06.txt
Теперь смотрим содержимое самих файлов и преисполняемся.
По итогу, если нужно пронумеровать файлы, позаботься об уникальности имён и заранее протестируй на тестовых данных. Чтобы случайно к херам не снести все ассетсы с продакшена.
Ну и всегда обрабатывай исключения если файл уже существует, чтобы не остаться без штанов.
Изучай, всего тебе самого наилучшего!
tags: #linux #bash
—
🔔
😱 👉 Важное событие для всех, кто хочет повысить производительность своих серверов!
🔆 Присоединяйтесь к открытому уроку «Оптимизация Nginx и Angie под высокие нагрузки»
На занятии вы:
- поймёте, какие параметры влияют на производительность;
- научитесь оптимизировать серверную часть;
- узнаете, как работать с клиентской производительностью.
🏆 Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель.
👉 Регистрируйтесь для участия: https://vk.cc/cygpJS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🔆 Присоединяйтесь к открытому уроку «Оптимизация Nginx и Angie под высокие нагрузки»
На занятии вы:
- поймёте, какие параметры влияют на производительность;
- научитесь оптимизировать серверную часть;
- узнаете, как работать с клиентской производительностью.
🏆 Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель.
👉 Регистрируйтесь для участия: https://vk.cc/cygpJS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Всем привет!
14 июля Selectel организует атмосферный летний ИТ-фестиваль Selectel Day Off🔥
О чем?
Тема мероприятия — ностальгия по будущему🤪
Выступят спикеры из Циана, Realiste, Сбера, Альфа-Банка, Яндекса 360, SETTERS EDUCATION и МГУ.
Темы докладов:
— Платформы данных и как они будут развиваться в будущем.Обсудим эволюцию паттернов в обработке данных, тренды в индустрии и то, как платформа данных устроена в Циане.
— Квантовые вычисления. Обсудим экспериментальный прогресс в области создания квантовых процессоров, а также порассуждаем о потенциале их применения в задачах ИИ.
— ИИ-разработки в недвижимости. Рассмотрим, какие есть проблемы у самого большого рынка в мире по объему активов и как они решаются с помощью ИИ.
— Креативность решений от нейросетей. Вы узнаете, какие задачи типичного сотрудника сможет взять на себя ИИ. Обсудим, будут ли нейросети помогать закрывать задачи, связанные с креативными решениями.
— Поговорим про технические сообщества и многое другое.
А еще в рамках фестиваля в...
14 июля Selectel организует атмосферный летний ИТ-фестиваль Selectel Day Off🔥
О чем?
Тема мероприятия — ностальгия по будущему🤪
Выступят спикеры из Циана, Realiste, Сбера, Альфа-Банка, Яндекса 360, SETTERS EDUCATION и МГУ.
Темы докладов:
— Платформы данных и как они будут развиваться в будущем.Обсудим эволюцию паттернов в обработке данных, тренды в индустрии и то, как платформа данных устроена в Циане.
— Квантовые вычисления. Обсудим экспериментальный прогресс в области создания квантовых процессоров, а также порассуждаем о потенциале их применения в задачах ИИ.
— ИИ-разработки в недвижимости. Рассмотрим, какие есть проблемы у самого большого рынка в мире по объему активов и как они решаются с помощью ИИ.
— Креативность решений от нейросетей. Вы узнаете, какие задачи типичного сотрудника сможет взять на себя ИИ. Обсудим, будут ли нейросети помогать закрывать задачи, связанные с креативными решениями.
— Поговорим про технические сообщества и многое другое.
А еще в рамках фестиваля в...
ДА или НЕТ? Давай разберемся!
Запускай:
Получаем интерактивный запрос:
Выбор зависит от потребности. Либо да, либо нет. Но что вводить? Очевидно же — y или n.
Справедливо. Но что если… Запускаем:
Выхлоп:
Это все возможные варианты, которыми ты можешь воспользоваться. Если вместо «y» ты введешь знак «+» — файл удалится.
Аналогично можно ввести 0 или 1. Либо «Д» или «Н».
Не везде из коробки прописаны такие регулярки, например на англоязычной убунте хуй с маслом.
Функция оценивающая ответ пользователя, учитывает локализацию.
ㅤ
Для подтверждения, или отмены может быть использован любой символ в квадратных скобках из вывода вышеприведённой команды.
А любой символ не совпадающий с символами из набора
Как на это можно повлиять?
Всё это забиндино в файлах которые лежат в папке:
Например, в файле ru_RU есть такое:
Тут присутствует как раз «0» и «1» / «+» и «-».
Если хочется упороться, можешь собрать свою локаль и добавить свои символы в регулярку:
После первой команды, нужно отредактировать файл
Такие вот перлы и приколы. Изучай.
👉 Многие этого ждали, завтра закину анонс про личное наставничество и обучение в рамках проекта Linux Factory.
tags: #linux
—
🔔
Запускай:
cd /tmp
touch bashdays.txt
rm -i bashdays.txt
Получаем интерактивный запрос:
rm: remove regular empty file 'test.txt'?
Выбор зависит от потребности. Либо да, либо нет. Но что вводить? Очевидно же — y или n.
Справедливо. Но что если… Запускаем:
locale -k noexpr yesexpr
Выхлоп:
noexpr="^[-0nNНн]"
yesexpr="^[+1yYДд]"
Это все возможные варианты, которыми ты можешь воспользоваться. Если вместо «y» ты введешь знак «+» — файл удалится.
Аналогично можно ввести 0 или 1. Либо «Д» или «Н».
Не везде из коробки прописаны такие регулярки, например на англоязычной убунте хуй с маслом.
noexpr="^[nN]"
yesexpr="^[yY]"
Функция оценивающая ответ пользователя, учитывает локализацию.
ㅤ
Для подтверждения, или отмены может быть использован любой символ в квадратных скобках из вывода вышеприведённой команды.
А любой символ не совпадающий с символами из набора
yesexpr
будет равносилен отмене, в том числе и пустой ввод.Как на это можно повлиять?
Всё это забиндино в файлах которые лежат в папке:
/usr/share/i18n/locales
Например, в файле ru_RU есть такое:
LC_MESSAGES
yesexpr "^[+1yY<U0414><U0434>]"
noexpr "^[-0nN<U041D><U043D>]"
yesstr "<U0434><U0430>"
nostr "<U043D><U0435><U0442>"
END LC_MESSAGES
Тут присутствует как раз «0» и «1» / «+» и «-».
Если хочется упороться, можешь собрать свою локаль и добавить свои символы в регулярку:
cp /usr/share/i18n/locales/ru_RU ~/my_ru_RU
localedef -f UTF-8 -i ~/my_ru_RU ru_RU.UTF-8
После первой команды, нужно отредактировать файл
~/my_ru_RU
и затем запускать вторую команду.Такие вот перлы и приколы. Изучай.
👉 Многие этого ждали, завтра закину анонс про личное наставничество и обучение в рамках проекта Linux Factory.
tags: #linux
—
🔔
Ну вот и пришло время…
Привет. В личку регулярно заходят наши подписчики и интересуются наставничеством, обучением и т.п.
Ладно, чо тянуть, закроем вопрос.
Встречаем Linux Factory!
1.08 выпускаю кракена. Но кракен будет для маленьких. Матёрые заскучают, но кто знает…
Курс пилить я ебал, поэтому покажу протоптанные дорожки и основы. И если ты ими правильно воспользуешься — слава тебе и почет + 100500 денег в секунду.
Живописнее и подробнее можешь ознакомиться тут, всё утро красоту наводил 🥳
Чтобы стать частью прекрасного, подавай заявку через бота и я отвечу на все твои вопросы.
Программа: https://bashdays.ru/intro/
Контакты:
👇👇👇
TL;DR если хочешь в девопс, я тебя научу
Привет. В личку регулярно заходят наши подписчики и интересуются наставничеством, обучением и т.п.
Ладно, чо тянуть, закроем вопрос.
Встречаем Linux Factory!
1.08 выпускаю кракена. Но кракен будет для маленьких. Матёрые заскучают, но кто знает…
Курс пилить я ебал, поэтому покажу протоптанные дорожки и основы. И если ты ими правильно воспользуешься — слава тебе и почет + 100500 денег в секунду.
Живописнее и подробнее можешь ознакомиться тут, всё утро красоту наводил 🥳
Чтобы стать частью прекрасного, подавай заявку через бота и я отвечу на все твои вопросы.
Программа: https://bashdays.ru/intro/
Контакты:
👇👇👇
Привет. Сегодня нассым в чайник.
А если конкретнее, рассмотрим более подробно команду
Это с виду она дохуя скучная, на деле там всё по полочкам.
Man содержит разделы от 1 до 9 + дополнительные (n, l, p). В дополнительные разделы входят всё то, что по каким-то причинам не попало в первые 9.
Все это дело сконфигурировано в файле: /etc/manpath.config, в него можно не смотреть, там хуйня какая-то непонятная для не подготовленного человека.
Ну дак вот. В каждом
✔ Давай тыкать палкой.
Ставим пакет:
Запускаем:
Выведется список с содержимым 1го раздела:
Теперь пройдемся по разделам:
1. Справка по стандартным командам (программы и утилиты). Это самый огромный раздел в справочной системе. Глаза разбегутся. Но есть лайкфак, можно воспользоваться поиском.
Выведется ограниченный список команд и утилит, которые содержат слово «copy»
В скобках выводится цифра раздела, в котором была найдена справка. А дальше можно сделать например так:
Херак и ты получил желаемое. С поиском намного удобнее и приятнее работать.
2. Раздел содержит описание системных вызовов. В этом разделе можно найти понимание этих ваших линуксов. Например, смотрим справку по
Кончаем и получаем список системных вызовов с которыми работает
3. Раздел с библиотечными функциями. Тут больше для программистов.
4. Описание файлов-устройств расположенные в
5. Описание форматов файлов. Конфигурационные файлы приложений и их синтаксис. Например, синтаксис файла теневых паролей.
Чтиво весьма занятное. Именно в этом файле задаются
6. Раздел игр.
7. Описание стандартов и соглашений. Например, последовательность загрузки ОС.
или параметры ядра при загрузке:
или шаблоны имён файлов:
8. Команды для системного администрирования. Например, информация о портах/сокетах:
монтирование устройств:
отображение информации о дисках и их настройка:
9. Функции ядра. В большинстве случаев этот раздел отсутствует в современных дистрибутивах. Раздел не является стандартом. Если нужно узнать про функции ядра, тут только поиск через
Так же ты можешь встретить разделы
Ну и закончим эту простыню вишенкой. Для этой команды нужны Иксы.
Страница со справкой Bash будет отформатирована в «html» формате и открыта в браузере по умолчанию.
Без Иксов просто сформируется «html» файл в папке tmp, у меня он появился тут:
Ладно, изучай. Увидимся завтра!
tags: #linux #bash
—
🔔
А если конкретнее, рассмотрим более подробно команду
man
Это с виду она дохуя скучная, на деле там всё по полочкам.
Man содержит разделы от 1 до 9 + дополнительные (n, l, p). В дополнительные разделы входят всё то, что по каким-то причинам не попало в первые 9.
Все это дело сконфигурировано в файле: /etc/manpath.config, в него можно не смотреть, там хуйня какая-то непонятная для не подготовленного человека.
Ну дак вот. В каждом
man
разделе, есть страница intro
. То бишь «вступление», которое описывает что содержит раздел.✔ Давай тыкать палкой.
Ставим пакет:
apt install manpages-dev
Запускаем:
man 1 intro
Выведется список с содержимым 1го раздела:
- Login
- The shell
- Pathnames and the current directory
- Directories
- Disks and filesystems
и т.п.
Теперь пройдемся по разделам:
1. Справка по стандартным командам (программы и утилиты). Это самый огромный раздел в справочной системе. Глаза разбегутся. Но есть лайкфак, можно воспользоваться поиском.
man -k copy
Выведется ограниченный список команд и утилит, которые содержат слово «copy»
cp (1) - copy files and directories
cpgr (8) - copy with locking the given file
cpio (1) - copy files to and from archives
cppw (8) - copy with locking the given file
dd (1) - convert and copy a file
В скобках выводится цифра раздела, в котором была найдена справка. А дальше можно сделать например так:
man 8 cppw
Херак и ты получил желаемое. С поиском намного удобнее и приятнее работать.
2. Раздел содержит описание системных вызовов. В этом разделе можно найти понимание этих ваших линуксов. Например, смотрим справку по
mkdir
.man 2 mkdir
Кончаем и получаем список системных вызовов с которыми работает
mkdir
.3. Раздел с библиотечными функциями. Тут больше для программистов.
4. Описание файлов-устройств расположенные в
/dev
5. Описание форматов файлов. Конфигурационные файлы приложений и их синтаксис. Например, синтаксис файла теневых паролей.
man 5 login.defs
Чтиво весьма занятное. Именно в этом файле задаются
«SYS_UID_MAX»
, «SYS_UID_MIN»
. Это диапазон UID, который будет присвоен пользователю, при использовании утилит «useradd» или «newusers» когда, ты добавляешь нового пользователя.6. Раздел игр.
7. Описание стандартов и соглашений. Например, последовательность загрузки ОС.
man 7 boot
или параметры ядра при загрузке:
man 7 bootparam
или шаблоны имён файлов:
man 7 glob
8. Команды для системного администрирования. Например, информация о портах/сокетах:
man 8 netstat
монтирование устройств:
man 8 mount
отображение информации о дисках и их настройка:
man 8 hdparm
9. Функции ядра. В большинстве случаев этот раздел отсутствует в современных дистрибутивах. Раздел не является стандартом. Если нужно узнать про функции ядра, тут только поиск через
man -k <ключевое слово>
.Так же ты можешь встретить разделы
n, l, p
, но опять-же они не всегда присутствуют, все зависит от того, какой софт ты ставил себе на машину.Ну и закончим эту простыню вишенкой. Для этой команды нужны Иксы.
apt install man-db groff
man -H bash
Страница со справкой Bash будет отформатирована в «html» формате и открыта в браузере по умолчанию.
Без Иксов просто сформируется «html» файл в папке tmp, у меня он появился тут:
/tmp/hmanU3yORv/bash.html
Ладно, изучай. Увидимся завтра!
PS: Все кто подал заявки на вписку в Linux factory, все ок. Как только решу вопросы с эквайрингом Тибанка (бекенд у них отвалился), всем напишу. Терпения вам и мне дорогие подписчики. Всех обнял!
tags: #linux #bash
—
🔔
Отвлекитесь от экрана — оторвитесь на ИТ-пикнике 17 августа
У фестиваля больше 17-ти ИТ-партнеров. Вас ждут воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и даже детская зона. Будут TRITIA, Дайте танк (!), Драгни, Найк Борзов, Нееет, ты что и еще один секретный хедлайнер. Вы же не пропустите такое событие?
Успейте зарегистрироваться
erid:2Vtzqv3t6N5
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
У фестиваля больше 17-ти ИТ-партнеров. Вас ждут воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и даже детская зона. Будут TRITIA, Дайте танк (!), Драгни, Найк Борзов, Нееет, ты что и еще один секретный хедлайнер. Вы же не пропустите такое событие?
Успейте зарегистрироваться
erid:2Vtzqv3t6N5
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Новый бесплатный курс об информационной безопасности🔒
В Академии Selectel рассказываем, с помощью каких инструментов защищаться от киберугроз. Внутри курса — инструкции по настройке средств защиты, советы по их использованию и интересные задачи для проверки знаний.
В рамках курса вы:
🔹 проверите защищенность вашего сервиса,
🔹 узнаете о распространенных атаках полным перебором и о методах противодействия им,
🔹 ознакомитесь с ИБ-инструментами на реальных примерах.
Переходите в Академию Selectel (ссылка), чтобы начать изучение курса прямо сейчас ➡️ https://slc.tl/0cih1
Реклама АО «Селектел». ИНН: 7810962785
Erid: 2VtzqxWGe9f
В Академии Selectel рассказываем, с помощью каких инструментов защищаться от киберугроз. Внутри курса — инструкции по настройке средств защиты, советы по их использованию и интересные задачи для проверки знаний.
В рамках курса вы:
🔹 проверите защищенность вашего сервиса,
🔹 узнаете о распространенных атаках полным перебором и о методах противодействия им,
🔹 ознакомитесь с ИБ-инструментами на реальных примерах.
Переходите в Академию Selectel (ссылка), чтобы начать изучение курса прямо сейчас ➡️ https://slc.tl/0cih1
Реклама АО «Селектел». ИНН: 7810962785
Erid: 2VtzqxWGe9f
Нижний Новгород, встречаемся 24 июля на IT Talk by Sber!
Мы проведём технологический митап для всех IT-support специалистов и экспертов надёжности. Поговорим об инженерных процессах, улучшении качества IT-поддержки и автоматизации работы с помощью программных решений.
Спикеры и темы ⤵️
✔️ Дмитрий Цуканов, руководитель команды сопровождения SmartContact — «Отказ от Legacy-стандартов. Как мы строили свой SRE?»
✔️ Молчанов Василий, ведущий инженер по сопровождению, Баюсова Ирина, исполнительный директор — «ML OPS: как мы используем ML для улучшения систем мониторинга?»
✔️ Руслан Насимов, руководитель Центра управления сетью Сбера — «Как управлять сетью крупнейшей компании?»
✔️ Наталья Ерютова, корпоративный тренер Сбера — «Управление собой для IT-шников».
Адрес: co-working Garage, г. Нижний Новгород, Октябрьская, 35.
Регистрируйтесь и приходите 24 июля в 18:00! ⏰
Мы проведём технологический митап для всех IT-support специалистов и экспертов надёжности. Поговорим об инженерных процессах, улучшении качества IT-поддержки и автоматизации работы с помощью программных решений.
Спикеры и темы ⤵️
✔️ Дмитрий Цуканов, руководитель команды сопровождения SmartContact — «Отказ от Legacy-стандартов. Как мы строили свой SRE?»
✔️ Молчанов Василий, ведущий инженер по сопровождению, Баюсова Ирина, исполнительный директор — «ML OPS: как мы используем ML для улучшения систем мониторинга?»
✔️ Руслан Насимов, руководитель Центра управления сетью Сбера — «Как управлять сетью крупнейшей компании?»
✔️ Наталья Ерютова, корпоративный тренер Сбера — «Управление собой для IT-шников».
Адрес: co-working Garage, г. Нижний Новгород, Октябрьская, 35.
Регистрируйтесь и приходите 24 июля в 18:00! ⏰
Magic SysRq в Linux
Чо эт такое? Ооо брат, это комбинация клавиш которая позволяет выполнять низкоуровневые команды независимо от состояния системы.
✔ Тема достаточно полезная, прочитай, пригодится.
Ядро реагирует на такие команды моментально, независимо от того, что оно делает в данный момент. При условии, что само ядро не заблокировано.
ㅤ
Чтобы послать ядру Magic SysRq, нужно нажать
А где взять клавишу SysRq? На современных клавиатурах это клавиша PrintScreen.
А какой key нажимать в конце? Ну например:
+b - немедленная перезагрузка системы
+o - выключение системы
+s - синхронизация всех файловых систем
+u - перемонтирование файловых систем в read only
+r - возвращение управления с клавиатуры X-сервера к консоли
+k - завершение всех процессов на текущей консоли
В моем случае, чтобы послать эту комбинацию клавиш в Virtualbox, мне пришлось нажать —
После нажатия этой комбинации, в терминале выводится справка по доступным командам SysRq.
После вывода справки, смотрим логи ядра:
и видим, что ядро триггернулось и записало в журнал:
Грубо говоря, если система встала раком и не отвечает, можешь ребутнуть её магическими клавишами:
Ну либо поиграться с read only на проде.
В официальной доке, этот функционал шикарно расписан, прям рекомендую почитать, хоть и с переводчиком.
Изучай...
tags: #linux
—
🔔
Чо эт такое? Ооо брат, это комбинация клавиш которая позволяет выполнять низкоуровневые команды независимо от состояния системы.
✔ Тема достаточно полезная, прочитай, пригодится.
Ядро реагирует на такие команды моментально, независимо от того, что оно делает в данный момент. При условии, что само ядро не заблокировано.
ㅤ
Чтобы послать ядру Magic SysRq, нужно нажать
ALT+SysRq+key
.А где взять клавишу SysRq? На современных клавиатурах это клавиша PrintScreen.
А какой key нажимать в конце? Ну например:
+b - немедленная перезагрузка системы
+o - выключение системы
+s - синхронизация всех файловых систем
+u - перемонтирование файловых систем в read only
+r - возвращение управления с клавиатуры X-сервера к консоли
+k - завершение всех процессов на текущей консоли
В моем случае, чтобы послать эту комбинацию клавиш в Virtualbox, мне пришлось нажать —
Правый ALT+PrintScreen+h
.После нажатия этой комбинации, в терминале выводится справка по доступным командам SysRq.
После вывода справки, смотрим логи ядра:
dmesg -tk | grep -m1 '^sysrq: HELP :'
и видим, что ядро триггернулось и записало в журнал:
sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z)
Грубо говоря, если система встала раком и не отвечает, можешь ребутнуть её магическими клавишами:
ALT+SysRq+b
.Ну либо поиграться с read only на проде.
В официальной доке, этот функционал шикарно расписан, прям рекомендую почитать, хоть и с переводчиком.
Изучай...
PS: А если у меня нет клавиши PrintScreen? Ну значит, не судьба!
tags: #linux
—
🔔
Хочешь войти в мир DevOps, но не знаешь с чего начать? 🚀
Приглашаем тебя на бесплатный курс по Git – идеальный старт для начинающих!
Git - это основной инструмент для DevOps и разработчиков, без которого невозможно представить современную работу.
🔸 Что ты получишь за 10 занятий и 2 недели?
🔧 Понимание базовых терминов: репозиторий, коммит, пулл-реквест, мердж-конфликт.
🔧 Навык внесения изменений в удаленный репозиторий.
🔧 Умение создавать пулл-реквесты и работать с ними.
🔧 Решение мердж-конфликтов.
🔧 Навык отката изменений.
🔧 Уверенность в работе с Git.
Этот курс поможет тебе уверенно шагнуть в мир DevOps и разработки! 🖥
📌 Узнать больше и записаться можно в канале DevOps фабрики.
Реклама. ООО Байкалтим, ИНН: 3851008933, erid: 2VtzqvWY7zi
Приглашаем тебя на бесплатный курс по Git – идеальный старт для начинающих!
Git - это основной инструмент для DevOps и разработчиков, без которого невозможно представить современную работу.
🔸 Что ты получишь за 10 занятий и 2 недели?
🔧 Понимание базовых терминов: репозиторий, коммит, пулл-реквест, мердж-конфликт.
🔧 Навык внесения изменений в удаленный репозиторий.
🔧 Умение создавать пулл-реквесты и работать с ними.
🔧 Решение мердж-конфликтов.
🔧 Навык отката изменений.
🔧 Уверенность в работе с Git.
Этот курс поможет тебе уверенно шагнуть в мир DevOps и разработки! 🖥
📌 Узнать больше и записаться можно в канале DevOps фабрики.
Реклама. ООО Байкалтим, ИНН: 3851008933, erid: 2VtzqvWY7zi