Имба — Mail Archiver.
В двух словах: Агрегатор и бекапер всех твоих почтовых ящиков с удобным поиском.
ㅤ
Ставишь как self-hosted, добавляешь любые учетки по IMAP (+ M365) и вся твоя почта бекапится на локальный NAS или S3.
Фича — можешь зачистить всю почту на серверах и потом одной кнопкой из бекапа обратно восстановить все письма. Как вариант если закончилось место, но письма удалять жалко.
Например, можно перелить почту из одного сервиса в другой в пару кликов. А главное — Бесплатно!
Короче знатная штука, однозначно оставляю у себя в proxmox, да и движение селф-хостеров её прям зарекомендовали на фоне других подобных решений.
🛠 #utilites #backup
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
В двух словах: Агрегатор и бекапер всех твоих почтовых ящиков с удобным поиском.
ㅤ
Ставишь как self-hosted, добавляешь любые учетки по IMAP (+ M365) и вся твоя почта бекапится на локальный NAS или S3.
Фича — можешь зачистить всю почту на серверах и потом одной кнопкой из бекапа обратно восстановить все письма. Как вариант если закончилось место, но письма удалять жалко.
Например, можно перелить почту из одного сервиса в другой в пару кликов. А главное — Бесплатно!
Короче знатная штука, однозначно оставляю у себя в proxmox, да и движение селф-хостеров её прям зарекомендовали на фоне других подобных решений.
Можешь на ютубе глянуть, там обзорчики уже наснимали.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
3 78
Хорошие девопсы копируют, великие — воруют
Я тут чет ёба дал и решил потихоньку расковыривать Макса, пока только начинаю, но до кишочков тоже доберемся.
Под это дело, я завел отдельный телеграм канал. В котором мы с тобой создадим канал в Максе, раскрутим его с минимальными вложениями и выйдем на доход > 200к рублей в месяц.
Все шаги буду подробно описывать, можешь повторять и глядишь сможешь выйти на пассивный доход.
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
😞 😔 😟 😕 🙁 ☹️ 😣 😖
😫 😩 🥺 😢 😭 😤 😠 😡
Если интересно понаблюдать за движухой, подписывайся, вместе веселее. Там и комменты глядишь подключим и лося выебем.
Подписаться: Макс на Максимум
Я тут чет ёба дал и решил потихоньку расковыривать Макса, пока только начинаю, но до кишочков тоже доберемся.
Под это дело, я завел отдельный телеграм канал. В котором мы с тобой создадим канал в Максе, раскрутим его с минимальными вложениями и выйдем на доход > 200к рублей в месяц.
Звучит хуёва, знаю, может ничего и не получится. Но я постараюсь применить все свои знания в маркетинге и поделиться с тобой. Да и это бесплатно для тебя.
План надежный, как швейцарские часы.
Все шаги буду подробно описывать, можешь повторять и глядишь сможешь выйти на пассивный доход.
Кстати сегодня закинул пост про создание канала без наличия 10к подписчиков. Пока хак работает, так что не проебись.
Если интересно понаблюдать за движухой, подписывайся, вместе веселее. Там и комменты глядишь подключим и лося выебем.
Подписаться: Макс на Максимум
Please open Telegram to view this post
VIEW IN TELEGRAM
12 25
Вчера сижу, проверяю домашки. Приходит СМС, мол Роман спасибо, что совершили покупку, с вашего бонусного счета списано 2450 рублей.
ㅤ
Я репу почесал и хуй забил. Потом появилась минутка, думаю — а пойдука я разберусь чё это было. Нашел отправителя смс, нашел компанию. Да, я там обслуживаюсь иногда.
Но схуяли с меня списали баллы? Я там давно не был и ничего не покупал. Азарт взял своё.
Первым делом написал в саппорт, меня по шаблону послали нахуй. Окей… Ну раз так, значит найдем директора и позвоним ему.
Звонить не стал, чет зассал. Но написал в мессенджере. Описал ситуацию, скрины приложил.
На той стороне солидный мужчина (по аватарке) знатно охуел, но ответил — Принято, свяжусь с вами позже.
Часа через три, звонок — Зрасти, так и так, сотрудник компании спустя месяц после испытательного, получил доступы в базу клиентов и теперь активно списывает баллы с клиентов, кто больше полугода не обращался в компанию. Списывает в свою пользу, то есть оплачивает баллами товары для себя любимого.
Охуительный план! Надежный!
Спустили на тормозах, поржали. Сотрудник был выкинут на улицу.
Мораль — сначала изучи как работает система и только потом мути свои грязные схемки. Если тебе мало платят или обижают, нахуй ты там вообще работаешь?
Человека банально уволили из-за автоматического СМС, которое прикрутил какой-то айтишник в рамках рутинного спринта.
А мне просто вчера было скучно, в другой день я бы возможно даже не обратил на это внимание.
Как говорится — с миру по нитке. Не давай себя в обиду😲
🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Я репу почесал и хуй забил. Потом появилась минутка, думаю — а пойдука я разберусь чё это было. Нашел отправителя смс, нашел компанию. Да, я там обслуживаюсь иногда.
Но схуяли с меня списали баллы? Я там давно не был и ничего не покупал. Азарт взял своё.
Первым делом написал в саппорт, меня по шаблону послали нахуй. Окей… Ну раз так, значит найдем директора и позвоним ему.
Звонить не стал, чет зассал. Но написал в мессенджере. Описал ситуацию, скрины приложил.
На той стороне солидный мужчина (по аватарке) знатно охуел, но ответил — Принято, свяжусь с вами позже.
Часа через три, звонок — Зрасти, так и так, сотрудник компании спустя месяц после испытательного, получил доступы в базу клиентов и теперь активно списывает баллы с клиентов, кто больше полугода не обращался в компанию. Списывает в свою пользу, то есть оплачивает баллами товары для себя любимого.
Охуительный план! Надежный!
Спустили на тормозах, поржали. Сотрудник был выкинут на улицу.
Мораль — сначала изучи как работает система и только потом мути свои грязные схемки. Если тебе мало платят или обижают, нахуй ты там вообще работаешь?
Человека банально уволили из-за автоматического СМС, которое прикрутил какой-то айтишник в рамках рутинного спринта.
А мне просто вчера было скучно, в другой день я бы возможно даже не обратил на это внимание.
Кстати потом следом пошел и еще одну компанию разъебал, давно хотел, тоже впарили услугу, но услугу не предоставили. Сегодня уже возврат упал на карточку.
Как говорится — с миру по нитке. Не давай себя в обиду
—
Please open Telegram to view this post
VIEW IN TELEGRAM
9 143
У меня Obsidian бекапится в git, естественно он торчит наружу жопой. Репа конечно же приватная, но чем черт не шутит.
ㅤ
Каких-то критичных данных я в заметках не храню, ну спиздят и спиздят, пусть читают как на bash программировать. Мне не жалко.
Но недавно понадобилось мне зашифровать некоторые заметки. Поизучал я различные варианты и остановился на плагине — Meld Encrypt.
Плагин ставится через морду Obsidian одной кнопкой, ничего настраивать из коробки не нужно.
Слева появляется иконка —
Внутри исходного файла json`чик вида:
Что прикольно, ты можешь зашифровать не всю заметку, а только её часть либо критические данные в каком-нибудь пайплайне. Выделяешь эти данные и слева жмешь иконку —
Теперь этот файл
Шифрованная часть внутри заметки выглядит так:
Короче полет нормальный. Хер знает насколько сильный там энкрипт, но от лишних глаз эта штука защищает.
В одном из issue в репе есть комментарий — «I have reviewed the code and noticed that it uses AES-GCM with a fixed IV and a password-derived key.»
Ну и по коду могу сказать что работает примерно так:
⚪ Пользователь задаёт пароль для шифрования.
⚪ Ключ генерится на основе пароля, скорее всего это PBKDF2.
⚪ Шифрование проходит по схеме AES-GCM. Шифр AES, режим Galois/Counter Mode с поддержкой аутентификации (В коде есть тэг MAC).
⚪ Не уверен, но возможно используется фиксированный IV инициализационный вектор.
Автор плагина походу сам не знает, что он написал. Поэтому подстраховался и добавил в ридми — «Use at Your Own Risk», мол идите нахуй, если вас подломят я тут не причем.
Присмотрись, штука довольно полезная. В хозяйстве сгодится.
🛠 #encrypt #obsidian #utilites
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Каких-то критичных данных я в заметках не храню, ну спиздят и спиздят, пусть читают как на bash программировать. Мне не жалко.
Но недавно понадобилось мне зашифровать некоторые заметки. Поизучал я различные варианты и остановился на плагине — Meld Encrypt.
Плагин ставится через морду Obsidian одной кнопкой, ничего настраивать из коробки не нужно.
Слева появляется иконка —
New Encrypt Note, забиваешь туда пароль, подсказку. Создается исходный файл в формате mdenc, а не нативный markdown с расширением .md.Внутри исходного файла json`чик вида:
{
"version": "2.0",
"hint": "My Hint",
"encodedData": "tH/epIAOSgeGQQtO7FTcM="
}Что прикольно, ты можешь зашифровать не всю заметку, а только её часть либо критические данные в каком-нибудь пайплайне. Выделяешь эти данные и слева жмешь иконку —
Ecrypt Selection.Теперь этот файл
.mdenc заливает в git и не зная правильного пароля хуй кто прочтет твою заметку, даже если её спиздят. Аналогично с заметками где ты зашифровал часть данных.Шифрованная часть внутри заметки выглядит так:
🔐β 💡My Hint💡ls92E5jV+HlAfZMML== 🔐
Короче полет нормальный. Хер знает насколько сильный там энкрипт, но от лишних глаз эта штука защищает.
В одном из issue в репе есть комментарий — «I have reviewed the code and noticed that it uses AES-GCM with a fixed IV and a password-derived key.»
Ну и по коду могу сказать что работает примерно так:
Автор плагина походу сам не знает, что он написал. Поэтому подстраховался и добавил в ридми — «Use at Your Own Risk», мол идите нахуй, если вас подломят я тут не причем.
Присмотрись, штука довольно полезная. В хозяйстве сгодится.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
11 65
Дожились блядь, схватил погремуху на LF. (скрином поделился: Антон Жданов) публикую с его разрешения и с разрешения участника диалога. Так что все блядь прозрачно и согласовано!
Новый бренд чтоль мутитиль - Сёледка под Шубой?
Ладно хули, рутина. Дела, люди всем двором на LF идут, устраивают челеджи, кто на какой задачке вперед сдохнет ))
Всех с пятницей, хороших тебе предстоящих выходных, ну и по классике — береги себя!
🛠 #рабочиебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
- Каждому лектору в жопу по вектору
- Лучше в жопу сунуть глобус чем у ЦУМА сеть в автобус
- Если ты не голубой нарисуй вагон другой
Новый бренд чтоль мутитиль - Сёледка под Шубой?
Ладно хули, рутина. Дела, люди всем двором на LF идут, устраивают челеджи, кто на какой задачке вперед сдохнет ))
Всех с пятницей, хороших тебе предстоящих выходных, ну и по классике — береги себя!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
7 47
Олды могут помнить эту замечательную игруху, называлась она Star Trek, придумал и реализовал ее Майк Мэйфилд в 1971 году.
ㅤ
Короче некий энтузиаст запилил ее на чистом Bash и притащил в современный мир под названием Bash Trek.
Это пошаговая стратегия, да, прям в терминале.
Цель игры — уничтожить всех клингонов в галактике, найдя их и вступив с в бой с помощью фазеров и торпед.
Устанавливается просто:
И погнали сводить скулы.
Как играть:
Нажми на цитату чтобы развернуть
Короче затягивает, протупил сегодня пару часов, ни разу так и не победил.
Вечерком еще заход сделаю, довольно азартное мероприятие. Кстати подробный гайд можешь глянуть на ютубе.
🛠 #games #игры
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Короче некий энтузиаст запилил ее на чистом Bash и притащил в современный мир под названием Bash Trek.
Это пошаговая стратегия, да, прям в терминале.
Цель игры — уничтожить всех клингонов в галактике, найдя их и вступив с в бой с помощью фазеров и торпед.
Устанавливается просто:
cd /tmp
wget https://github.com/StarShovel/bash-trek/raw/main/bashtrek.sh
chmod +x bashtrek.sh
./bashtrek.sh
И погнали сводить скулы.
Как играть:
Нажми на цитату чтобы развернуть
— Галактика — это сетка 8×8 квадрантов, каждый квадрант — 8×8 позиций.
— При навигации тебе будет предложено направление (0-7 как «ферзь» в шахматах, восемь возможных направлений) и расстояние (количество шагов).
— Если есть препятствие (звезда, клингон, червоточина), то максимальная дистанция движения будет ограничена и интерфейс покажет это.
— Червоточины («wormholes») могут появляться в квадрантах, если ты войдешь в червоточину, тебя телепортирует в случайное место в галактики.
— При входе в квадрант с клингонами, они могут атаковать твой корабль. Щиты (SHI) защищают, но если они севшие — тебе пезда.
— У тебя есть база (starbase), если ты подлетишь к базе, торпеды, щиты и энергия восстанавливаются.
— Есть временные ограничения «stardate» (звёздная дата), до которой нужно уничтожить всех клингов, если не успеешь — тебе пезда.
Короче затягивает, протупил сегодня пару часов, ни разу так и не победил.
Вечерком еще заход сделаю, довольно азартное мероприятие. Кстати подробный гайд можешь глянуть на ютубе.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
6 47
Как прокачать Minecraft сервер с помощью Angie
Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.
Сюда по классике не влезло, всё в блоге 👇
Читать: https://two.su/bieb4
🛠 #angie #devops #security
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.
Сюда по классике не влезло, всё в блоге 👇
Читать: https://two.su/bieb4
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 50
This media is not supported in your browser
VIEW IN TELEGRAM
Ха! Сегодня будем тыкать палкой «Крокодила».
ㅤ
Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.
Работает по принципу «отправь, введи код, получипо ебалу».
Установка под всё:
Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.
На Linux сервере запускаю:
Получаем:
Так, идем на Windows машину и запускаем:
То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:
А на Linux машине:
Вуаля! Проверяем файл на винде, всё прекрасно передалось!
«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.
Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.
Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.
🛠 #utilites #tools #selfhosting
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.
Работает по принципу «отправь, введи код, получи
Установка под всё:
curl https://getcroc.schollz.com | bash
brew install croc
scoop install croc
choco install croc
winget install schollz.croc
Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.
На Linux сервере запускаю:
cd /tmp && echo "Hello BashDays" >> bashdays.txt
croc send bashdays.txt
Получаем:
Sending 'bashdays.txt' (15 B)
Code is: 2811-spray-cabinet
On the other computer run:
(For Windows)
croc 2811-spray-cabinet
(For Linux/macOS)
CROC_SECRET="2811-spray-cabinet" croc
Так, идем на Windows машину и запускаем:
croc 2811-spray-cabinet
То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:
C:\Users\user>croc 2811-spray-cabinet
Accept 'bashdays.txt' (15 B)? (Y/n) Y
Receiving (<-92.52.131.227:10350)
bashdays.txt 100% |████████████████████| (15/15 B, 73 B/s)
А на Linux машине:
Sending (->92.52.131.227:9015)
bashdays.txt 100% |████████████████████| (15/15 B, 41 kB/s)
Вуаля! Проверяем файл на винде, всё прекрасно передалось!
«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.
Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.
Да, есть прикол, что при получении ты вводишь «секретный код» и он отпечатается в истории команд, это хуйня. Поэтому просто запускаем croc и оно в интерактиве запросит код, вводишь код и дело в шляпе. В историю команд ничего не попало.
А если автокоды тебе в хуй не уперлись, можешь через ключик -code впендюрить свой код доступа. Всё гибко, покури репку и описание, там прям можно на многое повлиять, вплоть до создания своего relay.
Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.
На Android кстати тоже порт есть в F-Droid.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 65
Как «сократить» расходы
Несколько лет я занимался планированием годового бюджета на айти сервисы и различные технические развлекухи.
ㅤ
И каждый раз пытался максимально закрутить гайки. Выкинуть нахуй сервисы, которые жрут бабки, но вроде бы не нужны особо. Можно отказаться, да у себя часть поднять.
С одной стороны делал полезную работу, с другой стороны всегда было ощущение — а нахуя я этим занимаюсь?
Зачем я это делаю, это понятно, а вот нахуя я пытаюсь сократить расходы — непонятно. Деньги то всёравно не мои. Если я сокращу расходы, моя ЗП не вырастит.
Ну да ладно. Пост про другое.
Как бы ты не менял поставщиков гандонов, пока ты не придумаешь как выращивать эти гандоны в своём огороде — нихрена не поменяется.
Допустим ты придумал и начал выращивать гандоны в своём огороде.
Блядь, всё отвлекаюсь. Короче выращиваешь ты гандоны и сэкономил 1000 баксов. Охуенно? Охуенно!
Но в итоге ты получаешь — саппорт этого огородика, решение технических проблем, отбивка тикетов от орущих сучек и т.п. Но зато сэкономил 1000 баксов компании.
Видишь где наебалово? Знаю, видишь…
Теперь у тебя часть команды поддерживает производство гандонов, тратит на это время, в какой-то момент задачи из спринта перестают запиливаться вовремя. Ага, нужно нанять еще людей, нанимают человека за 1000 баксов в месяц.
Теперь всё в порядке. Отдельный человек решает все вопросы с производством гандонов, а задачи в спринте вновь запиливаются вовремя. Людей хватает.
Сэкономили, молодцы. Только вот эта сэкономленная тыща баксов идет на ЗП новому сотруднику + компания платит за сотрудника налоги, пенсионные и т.п. сборы в казну. 1000 баксов превращается в 1500 баксов.
Заебись сэкономили! Ну вот и я про тоже.
А как сокращать расходы-то? Если ты мелкий стартап, то никак, поменьше пиздежа, побольше работы. Закупай готовые гандоны от производителя и не пытайся их производить сам. Смысла в этом нет. Сосредоточься на своём продукте.
Но если у тебя 100500 компаний и они связаны между собой, то вполне разумно поднять свою гандонную фабрику, нанять человека за 1000 баксов, чтобы он следил за производством и поставлял продукцию в твои 100500 компаний.
Чё еще сказать. Если что-то делаешь, подумай — а нахуя я это делаю? Сейчас да, разумно поднимать свои гандонные фабрики и свои сервисы, но это разумно лишь в текущих реалиях, когда загнивающие дрочепаки обложили нас санкциями.
Всё, иду янахуй дальше диван продавливать. Удачи!
🛠 #трудовыебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Несколько лет я занимался планированием годового бюджета на айти сервисы и различные технические развлекухи.
ㅤ
И каждый раз пытался максимально закрутить гайки. Выкинуть нахуй сервисы, которые жрут бабки, но вроде бы не нужны особо. Можно отказаться, да у себя часть поднять.
С одной стороны делал полезную работу, с другой стороны всегда было ощущение — а нахуя я этим занимаюсь?
Зачем я это делаю, это понятно, а вот нахуя я пытаюсь сократить расходы — непонятно. Деньги то всёравно не мои. Если я сокращу расходы, моя ЗП не вырастит.
Ну да ладно. Пост про другое.
Как бы ты не менял поставщиков гандонов, пока ты не придумаешь как выращивать эти гандоны в своём огороде — нихрена не поменяется.
Допустим ты придумал и начал выращивать гандоны в своём огороде.
Хотя их можно и не выращивать, позови 10 человек на собес и 9 из них будут гандонами. Неплохо? Ага!
Блядь, всё отвлекаюсь. Короче выращиваешь ты гандоны и сэкономил 1000 баксов. Охуенно? Охуенно!
Но в итоге ты получаешь — саппорт этого огородика, решение технических проблем, отбивка тикетов от орущих сучек и т.п. Но зато сэкономил 1000 баксов компании.
Видишь где наебалово? Знаю, видишь…
Теперь у тебя часть команды поддерживает производство гандонов, тратит на это время, в какой-то момент задачи из спринта перестают запиливаться вовремя. Ага, нужно нанять еще людей, нанимают человека за 1000 баксов в месяц.
Теперь всё в порядке. Отдельный человек решает все вопросы с производством гандонов, а задачи в спринте вновь запиливаются вовремя. Людей хватает.
Сэкономили, молодцы. Только вот эта сэкономленная тыща баксов идет на ЗП новому сотруднику + компания платит за сотрудника налоги, пенсионные и т.п. сборы в казну. 1000 баксов превращается в 1500 баксов.
Заебись сэкономили! Ну вот и я про тоже.
А как сокращать расходы-то? Если ты мелкий стартап, то никак, поменьше пиздежа, побольше работы. Закупай готовые гандоны от производителя и не пытайся их производить сам. Смысла в этом нет. Сосредоточься на своём продукте.
Но если у тебя 100500 компаний и они связаны между собой, то вполне разумно поднять свою гандонную фабрику, нанять человека за 1000 баксов, чтобы он следил за производством и поставлял продукцию в твои 100500 компаний.
Чё еще сказать. Если что-то делаешь, подумай — а нахуя я это делаю? Сейчас да, разумно поднимать свои гандонные фабрики и свои сервисы, но это разумно лишь в текущих реалиях, когда загнивающие дрочепаки обложили нас санкциями.
Всё, иду я
—
Please open Telegram to view this post
VIEW IN TELEGRAM
12 54
Профессиональная деформация
ㅤ
Каждый раз когда вижу урл вида:
Невольно тянется рука поставить в конце символ
Башкой понимаю, что в современном мире такое сработает 1 раз на 100кк, но ничего поделать с собой не могу. Когда видишь потенциальную дырку — нужно попробовать вставить.
А какая у тебя деформация? Поделись своим скелетом в комментах😲
🛠 #трудовыебудни
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Каждый раз когда вижу урл вида:
https://bashdays.ru/?p=4893
Невольно тянется рука поставить в конце символ
' и посмотреть что будет. Башкой понимаю, что в современном мире такое сработает 1 раз на 100кк, но ничего поделать с собой не могу. Когда видишь потенциальную дырку — нужно попробовать вставить.
А какая у тебя деформация? Поделись своим скелетом в комментах
Кстати LF подорожал, кто не успел или кого выперло, заходите, раздам 30 промокодов по 1000 рубасов. Для тех кто уже занимается, повышений не будет.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотелось бы поговорить о гувернантках, но будем обсуждать губернаторов. (governors).
🔤 🔤 🔤 🔤 🔤 🔤 🔤
Сейчас практически везде идет борьба за экологию, поэтому производители пытаются делать процы «зелеными». Есть нагрузка - частоту поднимают, нет нагрузки - частоту снижают и сразу падает тепловыделение и энергопотребление.
ㅤ
Так вот, управляют частотой/производительностью/энергопотреблением специальные алгоритмы, которые называются governors. Чтобы было проще выбирать, их наштамповали несколько видов:
К сожалению не все губеры доступны для вашей системы. Список доступных можно посмотреть так:
Вот, у меня на ноуте доступны только два: performance schedutil
Используемый в настоящее время:
Обратите внимание, governor задается для каждого ядра отдельно.
Ну, и для чего это нужно. Иногда бывают процелюбивые задачи. (кодирование видео и аудио, конверсия фоток, многопоточная компрессия, шифрование...)
И пофигу на электроэнергию и тепловыделение, лишь бы быстрее закончилась. Тогда можно на время выполнения задачи изменить governor.
Делается это простым скриптом:
Если все делать в ручном режиме. Поменять governor для всех ядер можно командой:
здесь
Такая установка проживет до перезагрузки. Если требуется постоянные настройки - можно поставить в
Продолжение следует.
🛠 #cpu #performance #frequency #governor
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Сейчас практически везде идет борьба за экологию, поэтому производители пытаются делать процы «зелеными». Есть нагрузка - частоту поднимают, нет нагрузки - частоту снижают и сразу падает тепловыделение и энергопотребление.
ㅤ
Так вот, управляют частотой/производительностью/энергопотреблением специальные алгоритмы, которые называются governors. Чтобы было проще выбирать, их наштамповали несколько видов:
performance — максимальная производительность (Ну, почти максимальная)powersave — максимальное энергосбережениеondemand — быстрое изменение частоты от нагрузкиconservative — медленное изменение частоты от нагрузкиschedutil — интеграция с планировщиком ядра LinuxК сожалению не все губеры доступны для вашей системы. Список доступных можно посмотреть так:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Вот, у меня на ноуте доступны только два: performance schedutil
Используемый в настоящее время:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Обратите внимание, governor задается для каждого ядра отдельно.
Ну, и для чего это нужно. Иногда бывают процелюбивые задачи. (кодирование видео и аудио, конверсия фоток, многопоточная компрессия, шифрование...)
И пофигу на электроэнергию и тепловыделение, лишь бы быстрее закончилась. Тогда можно на время выполнения задачи изменить governor.
Делается это простым скриптом:
#!/bin/bash
declare -a KEEP_GOVERNOR
declare DIR_PREFIX=/sys/devices/system/cpu
declare SET_GOVERNOR='performance'
declare -i NPROC=$(nproc) # число ядер (процессоров)
declare -i PRESENT=0
#Проверка поддержки governor системой
for G in $(cat "$DIR_PREFIX/cpu0/cpufreq/scaling_available_governors");do
if [[ "$SET_GOVERNOR" == "$G" ]];then
PRESENT=1
break
fi
done
if !((PRESENT));then
echo GOVERNOR $SET_GOVERNOR not supported.
printf "Available governors : "
cat "$DIR_PREFIX/cpu0/cpufreq/scaling_available_governors"
exit 1
fi
# Keep current setting
I=NPROC
while ((I--));do
KEEP_GOVERNOR[$I]=$(cat "$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor")
done
# Set (Для установки требуются привилегии)
I=NPROC
while ((I--));do
echo "$SET_GOVERNOR">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor"
done
#Здесь ВАШ код
sleep 10
##############
# Restore settings
I=NPROC
while ((I--));do
echo "${KEEP_GOVERNOR[$I]}">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor"
done
Если все делать в ручном режиме. Поменять governor для всех ядер можно командой:
sudo echo performance| sudo tee /sys/devices/system/cpu/cpu{0..1}/cpufreq/scaling_governorздесь
performance - задаваемый governor{0..1} - описание числа процессоров (ядер). Для шестнадцати {0..15}.Такая установка проживет до перезагрузки. Если требуется постоянные настройки - можно поставить в
cron @reboot, прописать в grub или воспользоваться специальными утилитами.Продолжение следует.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь я рассказал, как просто управлять производительностью сервера с помощью governors.
🔤 🔤 🔤 🔤 🔤 🔤 🔤
ㅤ
Но есть еще один способ: Прямое управление частотой.
Дело в том, что governor задает только скорость нарастания и убывания частоты, в зависимости от нагрузки. Сами частоты заданы в файлах:
Но и пределы частоты тоже можно менять.
Правда на некоторых процессорах их нельзя менять произвольно, их список может быть жестко задан. Обычно список допустимых частот описан в файле
(это для нулевого ядра)
У меня на ноуте, например, 1350000 1200000 1000000
Посмотреть частоты можно здесь:
👆 Надеюсь, всем понятно, что разогнать проц данным способом не получится.
Таким образом, командой типа:
Любой governor превращается в performance. Пути к файлам я опустил, и на всякий случай напомню, что частоты задаются для каждого ядра отдельно.
Кстати, повышать частоты требуется не всегда.
Приведу пример:
У меня работает роутер на мини-PC. Если использовать его только как роутер - нагрузка максимум 5%.
Я поставил туда торрент-качалку. А она может загрузить проц, даже если использовать
Теперь мини-PC холодный, даже если прикидывается сервером и работает на 100% (В полку).
Код для установки максимальной производительности получается несколько проще, чем с governor:
Всем стабильных серваков!
🛠 #cpu #performance #frequency #governor
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Но есть еще один способ: Прямое управление частотой.
Дело в том, что governor задает только скорость нарастания и убывания частоты, в зависимости от нагрузки. Сами частоты заданы в файлах:
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freqscaling_cur_freqscaling_max_freqНо и пределы частоты тоже можно менять.
Правда на некоторых процессорах их нельзя менять произвольно, их список может быть жестко задан. Обычно список допустимых частот описан в файле
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies(это для нулевого ядра)
У меня на ноуте, например, 1350000 1200000 1000000
Посмотреть частоты можно здесь:
cpuinfo_min_freq - минимальная частота ядраcpuinfo_cur_freq - текущаяcpuinfo_max_freq - максимальная👆 Надеюсь, всем понятно, что разогнать проц данным способом не получится.
Таким образом, командой типа:
cp cpuinfo_max_freq scaling_min_freqЛюбой governor превращается в performance. Пути к файлам я опустил, и на всякий случай напомню, что частоты задаются для каждого ядра отдельно.
Кстати, повышать частоты требуется не всегда.
Приведу пример:
У меня работает роутер на мини-PC. Если использовать его только как роутер - нагрузка максимум 5%.
Я поставил туда торрент-качалку. А она может загрузить проц, даже если использовать
nice. Но я задал минимальную частоту в качестве максимальной:cp cpuinfo_min_freq scaling_max_freqТеперь мини-PC холодный, даже если прикидывается сервером и работает на 100% (В полку).
Код для установки максимальной производительности получается несколько проще, чем с governor:
#!/bin/bash
declare -a KEEP_MINFREQ
declare DIR_PREFIX=/sys/devices/system/cpu
declare -i NPROC=$(nproc) # число ядер (процессоров)
# Keep current setting
I=NPROC
while ((I--));do
KEEP_MINFREQ[$I]=$(cat "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq")
done
# Set
I=NPROC
while ((I--));do
# Поднимаем минимальную частоту до максимума
cp "$DIR_PREFIX/cpu${I}/cpufreq/cpuinfo_max_freq" "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done
#Здесь ВАШ код
sleep 10
##############
# Restore settings
I=NPROC
while ((I--));do
echo "${KEEP_MINFREQ[$I]}">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done
Всем стабильных серваков!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
CPU AFFINITY
🔤 🔤 🔤 🔤 🔤 🔤 🔤
Предыдущие статьи по настройке производительности Здесь и Здесь:
В современных системах число ядер только растет. И запущенный процесс гуляет по ядрам, как разочаровавшаяся в любви девушка.
ㅤ
Таким образом планировщик системы пытается балансировать нагрузку, ресурсы (и тепловыделение). Но это поведение можно изменить.
С помощью программы можно taskset можно запускать процессы на указанных ядрах.
Например:
Запустит
Фактически
Если использовать ключик
Современные процессоры имеют гибридную архитектуру. Т.е. они содержат и энергоэффективные и производительные ядра.
Так вот, с помощью этой команды можно немного оптимизировать производительность - ограничивая второстепенным приложениям доступ к высокопроизводительным ядрам.
Ну, или для всей «шушеры» выделить пару ядер, освободив остальные для самых важных процессов.
Но если Вам лень этим заниматься - знайте, что планировщик и так неплохо справляется. Единственное, чего он не знает - какие процессы для Вас более важные. Но ему всегда об этом можно напомнить, с помощью команды nice.
Ну, и напоследок - вредный совет.
Однажды у моего коллеги на работе эффективные менеджеры ввели KPI.
Деньги начали платить по проделанной, а не стабильной работе. После этого у всех, включая бухгалтерию в конце квартала все начинало тормозить Но не сразу, а как-то плавно, но заметно.
И приходилось проводить сложную многочасовую оптимизацию систем (оптимизация дисков, переиндексирование, очистка кэшей...). После которой все до конца следующего отчетного периода работало нормально.
А потом - о5-25.
Но как они этого добивались - я не знаю :-)
🛠 #cpu #core #taskset #nice #perfomance
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
По просьбе коллеги @dox89.
Предыдущие статьи по настройке производительности Здесь и Здесь:
В современных системах число ядер только растет. И запущенный процесс гуляет по ядрам, как разочаровавшаяся в любви девушка.
ㅤ
Таким образом планировщик системы пытается балансировать нагрузку, ресурсы (и тепловыделение). Но это поведение можно изменить.
С помощью программы можно taskset можно запускать процессы на указанных ядрах.
Например:
taskset --cpu-list 0-2,6 thunderbird
Запустит
thunderbird, и разрешит почтовому клиенту работать только на указанных ядрах.Фактически
taskset не разрешает работать на указанных ядрах, а запрещает работать на всех остальных, потому что по умолчанию любому процессу можно работать на всех ядрах.Если использовать ключик
-p PID, то аналогичную процедуру можно выполнить с уже запущенным процессом.Современные процессоры имеют гибридную архитектуру. Т.е. они содержат и энергоэффективные и производительные ядра.
Так вот, с помощью этой команды можно немного оптимизировать производительность - ограничивая второстепенным приложениям доступ к высокопроизводительным ядрам.
Ну, или для всей «шушеры» выделить пару ядер, освободив остальные для самых важных процессов.
Но если Вам лень этим заниматься - знайте, что планировщик и так неплохо справляется. Единственное, чего он не знает - какие процессы для Вас более важные. Но ему всегда об этом можно напомнить, с помощью команды nice.
Ну, и напоследок - вредный совет.
Однажды у моего коллеги на работе эффективные менеджеры ввели KPI.
Деньги начали платить по проделанной, а не стабильной работе. После этого у всех, включая бухгалтерию в конце квартала все начинало тормозить Но не сразу, а как-то плавно, но заметно.
И приходилось проводить сложную многочасовую оптимизацию систем (оптимизация дисков, переиндексирование, очистка кэшей...). После которой все до конца следующего отчетного периода работало нормально.
А потом - о5-25.
Но как они этого добивались - я не знаю :-)
man tasksetman nice—
Please open Telegram to view this post
VIEW IN TELEGRAM
Борьба за производительность
В продолжение истории борьбы за производительность.
🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤
Допустим у нас есть что-то, что обладает каким-то неприличным количеством ядер, например 16.
ㅤ
И нам надо разбалансировать эти ядра между разными «типами» нагрузки.
Причем мы точно знаем, сколько ядер нам надо для одного типа и точно не знаем, сколько нужно для всего остального.
Тут на помощь приходят 4 параметра ядра -
В рамках решаемого кейса сразу указал на них, что сократило поиск необходимых решений.
По сути, все 4 параметра решают одну задачу - ограничить использование указанных ядер (например 0-3) процессами, за исключением базовых - init, scsi и прочих.
Таким образом мы можем через тот же
В данной картине мы защищаем этот сегмент от службы
Но будьте внимательны при изоляции, так как в случае количества процессоров > 1 нужно чуть иначе выставлять диапазоны, чтобы не угодить в яму NUMA. Там деление ядер от 0 до последнего происходит сегментами по очереди.
Конкретно мой случай изоляции был применен в рамках разделения нагрузки на сетевые прерывания и nginx, но в совокупности факторов - параметры ядра, отключенный + маскированный
🛠 #cpu #core #taskset #nice #perfomance
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
В продолжение истории борьбы за производительность.
Допустим у нас есть что-то, что обладает каким-то неприличным количеством ядер, например 16.
ㅤ
И нам надо разбалансировать эти ядра между разными «типами» нагрузки.
Причем мы точно знаем, сколько ядер нам надо для одного типа и точно не знаем, сколько нужно для всего остального.
Тут на помощь приходят 4 параметра ядра -
isolcpus, nohz_full, rcu_nocbs и irqaffinity.В рамках решаемого кейса сразу указал на них, что сократило поиск необходимых решений.
По сути, все 4 параметра решают одну задачу - ограничить использование указанных ядер (например 0-3) процессами, за исключением базовых - init, scsi и прочих.
Таким образом мы можем через тот же
taskset указать вручную на ядра 0-3 те процессы, что нам нужны.В данной картине мы защищаем этот сегмент от службы
irqbalance, которая с завидным упорством будет ребалансировать процессы между ядрами.Но будьте внимательны при изоляции, так как в случае количества процессоров > 1 нужно чуть иначе выставлять диапазоны, чтобы не угодить в яму NUMA. Там деление ядер от 0 до последнего происходит сегментами по очереди.
Конкретно мой случай изоляции был применен в рамках разделения нагрузки на сетевые прерывания и nginx, но в совокупности факторов - параметры ядра, отключенный + маскированный
irqbalance, taskset и еще несколько твиков - давало профит только при утилизации сетевой карты лишь до 70%, дальше спецэффекты постепенно возвращались.—
Please open Telegram to view this post
VIEW IN TELEGRAM
Опять потерял заявку? Не ты один
Когда в компании появляются десятки или сотни запросов: на оборудование, доступы, оплату или закупку — без системы они начинают теряться. Кажется, что все под контролем, но на деле у каждого отдела складываются разные процессы: кто-то пишет в личку, некоторые отмечают в табличке, а кто-то “давай голосом”.
12 ноября в 17:00 пройдет вебинар «Как упорядочить работу со входящим потоком задач». Покажут, как один раз настроить все процессы в Яндекс Трекере и больше никогда не искать, куда пропала заявка. Расскажут, почему важно вести всё через Трекер, как документировать процессы в Вики, автоматизировать назначение ответственных и какие фишки автоматизации используют сами в Яндексе.
Ведут вебинар руководитель продуктового направления Трекера Данил Майорский и архитектор решений и амбассадор Трекера Татьяна Родина. Полезно всем, кто регулярно в работе использует таск-менеджеры: IT-руководителям, администраторам, HR, AХО и тем, у кого входящих задач больше, чем часов в сутках.
Регистрируйся по ссылке.
#workflow #автоматизация #трекер
Когда в компании появляются десятки или сотни запросов: на оборудование, доступы, оплату или закупку — без системы они начинают теряться. Кажется, что все под контролем, но на деле у каждого отдела складываются разные процессы: кто-то пишет в личку, некоторые отмечают в табличке, а кто-то “давай голосом”.
12 ноября в 17:00 пройдет вебинар «Как упорядочить работу со входящим потоком задач». Покажут, как один раз настроить все процессы в Яндекс Трекере и больше никогда не искать, куда пропала заявка. Расскажут, почему важно вести всё через Трекер, как документировать процессы в Вики, автоматизировать назначение ответственных и какие фишки автоматизации используют сами в Яндексе.
Ведут вебинар руководитель продуктового направления Трекера Данил Майорский и архитектор решений и амбассадор Трекера Татьяна Родина. Полезно всем, кто регулярно в работе использует таск-менеджеры: IT-руководителям, администраторам, HR, AХО и тем, у кого входящих задач больше, чем часов в сутках.
Регистрируйся по ссылке.
#workflow #автоматизация #трекер
HRы и еже с ними, ловите головастого DevOps отличника и LF выпускника.
Резюмирую
Мужчина в полном рассвете сил (26 лет), хочет на удаленку. Есть большое желание развиваться дальше, делать вещи и пилить охуительные инфраструктурные циркули.
Не пиздит и не завышает опыт, а это уже ценно!
Шарит за:
- докеры, пайплайны, ансиблы, кубы, графики и т.п.
- спец по информационной безопасности (PT SIEM),
- автоматизация на bash, python
Короче базовый набор маст-хев практик из коробки.
Нанимаешь и он работает, без лишних вопросов и хуйни. А твои сервера начинают тарахтеть быстрее и стабильнее.
Подробное резюме запрашивай в личке: @avs_jr_07
Чтобы все подряд ему не писали, ЗП хочет от 180к, за такой опыт, вполне справедливо!
🛠 #кандидаты #кадры
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Такие мероприятия я провожу редко, но хороших кадров грех не порекомендовать.
Резюмирую
Мужчина в полном рассвете сил (26 лет), хочет на удаленку. Есть большое желание развиваться дальше, делать вещи и пилить охуительные инфраструктурные циркули.
Не пиздит и не завышает опыт, а это уже ценно!
Шарит за:
- докеры, пайплайны, ансиблы, кубы, графики и т.п.
- спец по информационной безопасности (PT SIEM),
- автоматизация на bash, python
Короче базовый набор маст-хев практик из коробки.
Нанимаешь и он работает, без лишних вопросов и хуйни. А твои сервера начинают тарахтеть быстрее и стабильнее.
Подробное резюме запрашивай в личке: @avs_jr_07
Чтобы все подряд ему не писали, ЗП хочет от 180к, за такой опыт, вполне справедливо!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с LF, думаю всем полезно будет.
ㅤ
Пишу пайплайн, есть такая конструкция:
Я бы хотел, чтобы параметр
Делаю так, но получается какая-то хуйня:
Короче смотри. Задачку можно решить несколькими способами.
Способ 1. Заточен под Bash:
Этот способ не сработает, если код запустится в
Способ 2. Универсальный:
На 100 % POSIX-совместим. По функционалу эти способы идентичны.
Ну и по итогу имеем:
Ну и твои варианты приветствуются, поделись в комментах, глядишь что-то маст-хевное у тебя в загашнике есть.
🛠 #bash #pipeline
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Пишу пайплайн, есть такая конструкция:
platform=$(uname -m)
docker run --platform linux/arm64
Я бы хотел, чтобы параметр
--platform linux/arm64 подставлял в том случае, если архитектура платформы == arm64, в других случаях этот параметр подставлять не нужно.Делаю так, но получается какая-то хуйня:
platform=$(uname -m)
docker run ${platform/arm64/--platform linux/arm64}
Короче смотри. Задачку можно решить несколькими способами.
Способ 1. Заточен под Bash:
platform=$(uname -m)
docker run $([[ $platform = arm64 ]] && echo "--platform linux/arm64")
Этот способ не сработает, если код запустится в
/bin/sh, потому что оно не POSIX. Тут уже смотри под чем все это будет запускаться.Тут можешь почитать чем отличаются [[ ]] от []
А тут что такое POSIX
Способ 2. Универсальный:
platform=$(uname -m)
docker run $( [ "$platform" = "arm64" ] && echo "--platform linux/arm64" )
На 100 % POSIX-совместим. По функционалу эти способы идентичны.
Ну и по итогу имеем:
[[ ... ]] — это расширенная bash-версия, безопаснее и гибче (поддержка pattern, безопасность кавычек при пробелах и пустых строках, поддежка логики с &&) [ ... ] — POSIX-совместимая, более строгая и требующая аккуратности с кавычками.Ну и твои варианты приветствуются, поделись в комментах, глядишь что-то маст-хевное у тебя в загашнике есть.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 48
Туалетная бумага по cron’у
ㅤ
Я короче каждый месяц заказываю на WB туалетную бумагу, сразу беру 32 рулона. В чатике ссылки как-то скидывал на этот товар.
И в сентябре меня эта рутина — заебала! Основная проблема — я забываю вовремя пополнять запасы. И после всех туалетных процедур приходится сидеть и ждать несколько часов пока мой бэкенд подсохнет и остатки артефактов сами отвалятся.
Открытой API у WB нет, но реверс-инженерию никто не отменял. Открываем в браузере режим разработчика, натыкиваем нужные действия на сайте и потом смотрим вкладку Network. Выбираем нужные запросы и рожаем скрипт.
Концепт скрипта:
1. Авторизация. С ней я не стал заморачиваться, авторизовался на сайте, выгрузил кукисы в файл. Полюбому можно и это автоматизировать через
2. Скрипт принимает единственный параметр
3. Дальше
Пример добавления в корзину:
Все параметры прилетают из
Говнокод конечно лютый получился, но работает. А это главное в нашем деле!
4. Ну и всё, в телегу мне приходит уведомление, что заказ оформлен, бабло спишут по факту. Ну и пишут примерное число доставки.
5. Как только товар пришел в пункт выдачи, получаю уведомление в телегу. Аналогично
6. Закидываем скрипт в крон и забываем про эту рутину.
Вот и вся наука. Теперь когда я возвращаюсь из гаража, захожу по пути в пункт выдачи и забираю свои 32 рулона. Удобно? Да охуенно!
Еще бы научить чтобы чайник сам в себя воду наливал, было бы вообще ништяк.
Давай, увидимся! Хороших тебе предстоящих выходных и береги себя!
🛠 #bash #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Я короче каждый месяц заказываю на WB туалетную бумагу, сразу беру 32 рулона. В чатике ссылки как-то скидывал на этот товар.
И в сентябре меня эта рутина — заебала! Основная проблема — я забываю вовремя пополнять запасы. И после всех туалетных процедур приходится сидеть и ждать несколько часов пока мой бэкенд подсохнет и остатки артефактов сами отвалятся.
Решено было накидать Bash скрипт, который каждый месяц будет заказывать на WB радость для моей жопы.
Открытой API у WB нет, но реверс-инженерию никто не отменял. Открываем в браузере режим разработчика, натыкиваем нужные действия на сайте и потом смотрим вкладку Network. Выбираем нужные запросы и рожаем скрипт.
Концепт скрипта:
1. Авторизация. С ней я не стал заморачиваться, авторизовался на сайте, выгрузил кукисы в файл. Полюбому можно и это автоматизировать через
curl, но чёт пока лень.2. Скрипт принимает единственный параметр
$1, это ссылка на товар WB, мало ли бумага моя закончится и придется другого поставщика искать.3. Дальше
curl подгружает кукисы из файла, и делает несколько запросов к сайту, добавляет бумагу в корзину и оформляет заказ.Пример добавления в корзину:
RESPONSE=$(curl -s "https://cart-storage-api.wildberries.ru/api/basket/sync?ts=$TS&device_id=$DEVICE_ID" \
-X POST \
-H 'content-type: application/json' \
-H 'origin: https://www.wildberries.ru' \
-b "$COOKIES_FILE" \
--data-raw "$JSON_PAYLOAD"
)
Все параметры прилетают из
$JSON_PAYLOAD, параметр автоматически заполняются нужными данными на основе переданного урла в $1, да, активно используется jq.Говнокод конечно лютый получился, но работает. А это главное в нашем деле!
4. Ну и всё, в телегу мне приходит уведомление, что заказ оформлен, бабло спишут по факту. Ну и пишут примерное число доставки.
5. Как только товар пришел в пункт выдачи, получаю уведомление в телегу. Аналогично
curl запросом проверяется статус в личном кабинете.6. Закидываем скрипт в крон и забываем про эту рутину.
59 23 25 * * /usr/local/sbin/shit_paper.sh https://wb.ru/296/detail.aspx
Вот и вся наука. Теперь когда я возвращаюсь из гаража, захожу по пути в пункт выдачи и забираю свои 32 рулона. Удобно? Да охуенно!
Думал мож еще курьера прикрутить, но сроки доставки могут увеличиться, да и этот бедолага начнет мне звонить, согласовывать все, тут бы AI прикрутить, да ну его. И так большое дело сделано, жопка рада.
Еще бы научить чтобы чайник сам в себя воду наливал, было бы вообще ништяк.
Давай, увидимся! Хороших тебе предстоящих выходных и береги себя!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
121 87
Продолжаем ковырять
ㅤ
Устанавливаем пакет:
В папке
Добавляем локейшен:
Теперь открываем в браузере и видим красивую мордочку. Демо мордочки можешь посмотреть здесь.
Да, не забываем включить Basic Auth чтобы хитрожопые не подглядывали.
Подробнее читай в официальной документации.
🛠 #angie #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
angie, на этот раз посмотрим на Status Page, которая отображает всю статистику по веб-серверу. Выглядит прям хорошо.ㅤ
Устанавливаем пакет:
sudo apt install angie-console-light
В папке
/usr/share/angie-console-light/html появляется статика.Добавляем локейшен:
location /console/ {
auto_redirect on;
alias /usr/share/angie-console-light/html/;
index index.html;
location /console/api/ {
api /status/;
}
}Теперь открываем в браузере и видим красивую мордочку. Демо мордочки можешь посмотреть здесь.
Да, не забываем включить Basic Auth чтобы хитрожопые не подглядывали.
У меня на паре пет проектов эта морда включена (графана избыточна), чисто посмотреть статусы раз в сутки, которые возвращают 500ку. Если оно горит красным, значит что-то где-то пошло по пизде.
Подробнее читай в официальной документации.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 33
Load Average на пальцах
Все про него знают, но не все понимают.
ㅤ
Давай рассмотрим такие цифры:
1. За последнюю 1 минуту средняя очередь = 0.30
2. за 5 минут = 1.20
3. за 15 минут = 0.80
Сразу куча вопросов, а что такое «очередь»?
«очередь» == количество задач, которые хотят работать прямо сейчас, но процессоров не хватает, чтобы заняться всеми сразу.
➡️ Главное правило
Сравниваем Load Average с количеством ядер.
- У тебя 4 ядра → нормальная нагрузка = до 4.0
- У тебя 1 ядро → нормальная нагрузка = до 1.0
- У тебя 8 ядер → нормальная нагрузка = до 8.0
➡️ Теперь на котиках
Ты стоишь в магазине:
- 1 касса, 1 человек в очереди → заебись
- 1 касса, 10 человек в очереди → жопа
- 4 кассы, 6 человек → пока норм
CPU = кассы, Load Average == очередь.
LA это не про загрузку CPU в процентах — это просто «очередь».
➡️ Как задебажить
Берем top, htop или подобное и смотрим столбец %CPU, если один процесс жрёт 100% на однопроцессорной системе — он пидарас и забил ядро. Если процесс жрёт 300% на 4-ядерной — он занял 3 ядра.
Смотрим самых прожорливых пидарасов:
Если ничего не нашел, то смотрим в сторону:
- I/O wait — медленный диск / много дисковых операций
- много процессов, но каждый почти ничего не ест (fork storm)
- сеть или блокировки
Капля в море, но это базовый чеклист на ситуацию, когда сервер ушел в «полку».
🛠 #linix #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Все про него знают, но не все понимают.
ㅤ
Давай рассмотрим такие цифры:
0.30 1.20 0.80
1. За последнюю 1 минуту средняя очередь = 0.30
2. за 5 минут = 1.20
3. за 15 минут = 0.80
Сразу куча вопросов, а что такое «очередь»?
«очередь» == количество задач, которые хотят работать прямо сейчас, но процессоров не хватает, чтобы заняться всеми сразу.
Сравниваем Load Average с количеством ядер.
- У тебя 4 ядра → нормальная нагрузка = до 4.0
- У тебя 1 ядро → нормальная нагрузка = до 1.0
- У тебя 8 ядер → нормальная нагрузка = до 8.0
🟢 Всё в порядке:
- LA ≤ количество ядер → CPU успевает всё делать, очередей нет.
🟡 Чёт уже не то, подгрузилось:
- LA ≈ количество ядер × 1–2 → процессы начинают стоять в очереди, но система пока еще жива.
🔴 Жопа:
- LA сильно > количества ядер → процессы стоят в очереди, всё тормозит.
Ты стоишь в магазине:
- 1 касса, 1 человек в очереди → заебись
- 1 касса, 10 человек в очереди → жопа
- 4 кассы, 6 человек → пока норм
CPU = кассы, Load Average == очередь.
LA это не про загрузку CPU в процентах — это просто «очередь».
Берем top, htop или подобное и смотрим столбец %CPU, если один процесс жрёт 100% на однопроцессорной системе — он пидарас и забил ядро. Если процесс жрёт 300% на 4-ядерной — он занял 3 ядра.
Смотрим самых прожорливых пидарасов:
ps aux --sort=-%cpu | head
Если ничего не нашел, то смотрим в сторону:
- I/O wait — медленный диск / много дисковых операций
- много процессов, но каждый почти ничего не ест (fork storm)
- сеть или блокировки
Капля в море, но это базовый чеклист на ситуацию, когда сервер ушел в «полку».
А ты добавляй в комменты, что еще можно вынести в дебаг, будет полезно.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 79