Forwarded from Разраб от скуки
Недавно начал разбираться с работой LoRa-связи. Это некий протокол, который позволяет передавать небольшие посылочки на расстояние в несколько километров используя очень маленькую мощность. И тут внезапно для себя открыл такое явление, как меш-сети.
Очень интересный проект из этой сферы - Meshtastic. Множество небольших недорогих устройств на основе LoRa формируют целую сеть, где можно стать участником просто купив свой узел. Текстовые сообщения передаются между узлами, не используя ни интернет, ни мобильные сети, сами ищут себе путь. А почитать можно так же на смартфоне в приложении.
Покупать девайс я конечно же не хотел, так как у меня уже два года лежит без дела плата ESP32, да и модемчик LoRa тоже нашёлся. Решил собрать все сам. Потом правда оказалось, что модем не совсем тот, и ножек на контроллере нужных не хватает... В итоге провозившись почти весь день, наколхозил изделие. Антенна на глазок, на 868 МГц. Еле нашёл единственную подходящую прошивку, кое-чего подкрутил, и оно запустилось!
Написал в общий чат "Меня слышно?", даже не надеясь на ответ, потому что был не уверен в работоспособности, но мне ответили! Потом на карте начали появляться узлы... Очень удивился, сколько людей есть в этой теме!
В общем, найдено новое микро-хобби на пару дней, или пару месяцев. Тут много непонятных моментов еще, плюс нужно сделать красивое устройство, вдруг все это пригодится, когда из связи останется только новый популярный мессенджер.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎1
Бывает кейс когда необходимо организовать работу 2-х репозиториев через обмен git bundle и чтобы это сделать нужна корневая точка с которой будет делаться первый бандл.
При этом вам бы не хотелось передавать всю историю разработки в вашем репозитории, а исходную точку сделать надо, да еще чтобы история все-таки осталась в репозитории хоть в каком-то виде (например для трассировки требований в gittlab и связи коммитов и тикетов)
В таком случае можно использовать следующий вариант c подменой ветки
Создаем ветку с которой начнется новая история:
Далее текущая
Обрезанную ветку делаем основной:
Переноси нужные коммиты в новый
После этого пушим 2 ветки в origin и получается урезанная копия основной ветки, но при этом во второй есть вся история изменений.
Так что может кому пригодится такой лайвхак
При этом вам бы не хотелось передавать всю историю разработки в вашем репозитории, а исходную точку сделать надо, да еще чтобы история все-таки осталась в репозитории хоть в каком-то виде (например для трассировки требований в gittlab и связи коммитов и тикетов)
В таком случае можно использовать следующий вариант c подменой ветки
main и историей во второй ветке.Создаем ветку с которой начнется новая история:
git checkout <tag|commit>
git checkout --orphan crop-main
git add .
git commit -a "Init commit"
Далее текущая
main ветка переименовывается в main-history:git branch -m main main-history
Обрезанную ветку делаем основной:
git checkout crop-main
git branch -m main
Переноси нужные коммиты в новый
main:git cherry-pick <tag|commit>..main-history
После этого пушим 2 ветки в origin и получается урезанная копия основной ветки, но при этом во второй есть вся история изменений.
Так что может кому пригодится такой лайвхак
👍8
РНК сегодня не телеграм замедлил, а ускорил скорость отставания технологического развития страны.
Если раньше из местечковых пабликов можно было получить много полезных технических материалов любом специалисту, то теперь это невозможно без использования доп средств. Все эти материалы будут доступны всему миру кроме РФ, точно также как и с YouTube.
Поэтому все будут развиваться, а мы будем "изобретать велосипед" внутри и ходить по граблям, которые уже прошли другие, а в чем смысл?
P.S. лично мой канал останется только в телеге, так как коммерческой выгоды я от него не получаю
Если раньше из местечковых пабликов можно было получить много полезных технических материалов любом специалисту, то теперь это невозможно без использования доп средств. Все эти материалы будут доступны всему миру кроме РФ, точно также как и с YouTube.
Поэтому все будут развиваться, а мы будем "изобретать велосипед" внутри и ходить по граблям, которые уже прошли другие, а в чем смысл?
P.S. лично мой канал останется только в телеге, так как коммерческой выгоды я от него не получаю
👍17🔥3💩1
Сегодня наткнулся на знатную мину при использовании Zed, а мина в том, что не получается установить расширение, так как оно хоститься на digital ocean и блокирувку эту обойти так и не удалось (так как блокировка происходит именно со стороны digital ocean).
Так что, похоже, придется вернуться на родимый Emacs, который на деле является OpenSource проектом, а не на словах как это нынче модно.
Так что, похоже, придется вернуться на родимый Emacs, который на деле является OpenSource проектом, а не на словах как это нынче модно.
🔥1
SWE notes
Планировал выложить статью про реверс инженеринг 3d деталей, но, увы, столкнулся опять с техническими сложностями, постараюсь победить их и все-таки заделать статью про это. Если вам такое интересно, то ставьте лайки, это будет существеным доп мотивом!
Обратная разработка (reverse engineering) детали во Freecad
Наконец-то я доделал статью по реверсу деталей во Freecad. Самое интресное в этом процессе это то, что я получил понимание того что не смотря на всю мощь инструмента результат может быть и не достигнут.
Самый главный вывод который я сделал, если у вас у детали нет четкой плоскости (или вы ее не учли или выбрали не правильно), то качественный реверс у вас не получится просто по причине того, что накопленные погрежности будут велики.
#diy #freecad #reverse
Наконец-то я доделал статью по реверсу деталей во Freecad. Самое интресное в этом процессе это то, что я получил понимание того что не смотря на всю мощь инструмента результат может быть и не достигнут.
Самый главный вывод который я сделал, если у вас у детали нет четкой плоскости (или вы ее не учли или выбрали не правильно), то качественный реверс у вас не получится просто по причине того, что накопленные погрежности будут велики.
#diy #freecad #reverse
www.swe-notes.ru
Обратная разработка (reverse engineering) детали во Freecad · Заметки разработчика
Описание процесса обратной разработки готовой детали с помощью FreeCad
👍1
Forwarded from The After Times
🥟 «Резюме с пельменями» принесло айтишнику собеседование — рекрутер заподозрил неладное, когда увидел начинку
Айтишник из Гродно вписал рецепт пельменей в резюме вместо опыта работы и умудрился получить оффер. Чтобы оно соответствовало всем ИИ-алгоритмам, он тщательно соблюдал все требования к оформлению и ключевым словам.
Через неделю он получил приглашение на собеседование.
Рекрутер заподозрил, что что-то не так, только во время встречи, когда начал разбираться, что за «опыт работы» у кандидата.
Айтишник из Гродно вписал рецепт пельменей в резюме вместо опыта работы и умудрился получить оффер. Чтобы оно соответствовало всем ИИ-алгоритмам, он тщательно соблюдал все требования к оформлению и ключевым словам.
Через неделю он получил приглашение на собеседование.
Рекрутер заподозрил, что что-то не так, только во время встречи, когда начал разбираться, что за «опыт работы» у кандидата.
Forwarded from Segment@tion fault
Продолжаю эксперименты с "вайбокодингом". Если это так можно назвать, потому что вайб какой-то не очень, работы сделано много, но ее качество часто под вопросом, а сил оно отбирает как управление небольшим отделом живых програмеров. Собственно что пишем - аналог Elastic/OpenSearch только с упором на индексацию JSON-документов, а не поиск по подстрокам в значениях. Я в проекте не написал ни строчки.
Некоторые новые замечания:
- Подобные проекты подразумевают публичное API. Если вы не хотите, чтобы ваше API выглядело как результаты bindgen из сакрального кода библы из 90х, которую все боятся трогать, потому что полетит половина продакшена - API дизайните только сами. В крайнем случае, даете пример хорошего API, пробуете чтобы агент сам надизайнил под ваш проект, проверяете, материтесь, исправляете
- Экспертиза в домене. Если не знаете нюансы - вам быстро навешают слоп и вытянут токены. Всё как у людей.
- Мульти-агенты. На самом деле достаточно двоих - один кодит, второй супервайзит. Можно гонять даже на одном движке, главное чтобы сессии были разные и независимые и были выставлены роли-скиллы.
- Общение агентов. Чаты-почта-джира - сразу нет. Это инструменты для людей, чтобы можно было найти крайнего "а вот Петя написал что можно, а вот Рома закрыл таску а она не работает" - агенту на это наплевать. Генерить слоп в переписке они всегда обожают, так что идеальный вариант - текстовый файлик, в который они пишут свои соображения, перекидывая друг другу
- После выполнения задачи и обновления техдокументации, файлик опять же уничтожается - рыться в этом слопоархиве кому-то вряд-ли захочется, как и тыкать носом агентов "а вот вы сделали, а оно опять не работает через 10050 новых тасок" - см. выше. Заставляем покрыть всё найденное тестами и забываем навсегда
- Ручное тестирование человеком - никуда не денется. Запрос "а нагенери-ка мне 30-40 хороших тестов" - тут несколько вариантов. Либо тесты будут слоп, либо они будут о каких-то материях внутри проекта, которые бы вам в голову не пришли и вы даже не до конца их понимаете. Придется сидеть и долго разбирать, а что мы собственно тестируем. Проще найти конкретные баги и потребовать конкретно покрыть тестами.
- Всё как в жизни - иногда вы общаетесь с кодером напрямую, супервайзер ноет, почему не предупредили его и не включили договоренности за спиной в отчёт. Супервайзер постепенно, как и любой уважаемый техлид, теряет навыки кодинга в конкретном проекте, и проводя неплохой анализ, начинает плодить элементарные баги, если попросить его починить самостоятельно.
Результаты пока непонятные. Визуально всё работает, но грузить туда данные с продакшна - стремно и страшно. Впрочем, заказ похожего проекта галере среднего уровня дал бы примерно те же результаты, только в сотни раз дороже и дольше. Но в данном случае - вы не клиент, забудьте. Вы - ПМ и техлид-над-техлидом, два в одном. Так что вайба мало.
Некоторые новые замечания:
- Подобные проекты подразумевают публичное API. Если вы не хотите, чтобы ваше API выглядело как результаты bindgen из сакрального кода библы из 90х, которую все боятся трогать, потому что полетит половина продакшена - API дизайните только сами. В крайнем случае, даете пример хорошего API, пробуете чтобы агент сам надизайнил под ваш проект, проверяете, материтесь, исправляете
- Экспертиза в домене. Если не знаете нюансы - вам быстро навешают слоп и вытянут токены. Всё как у людей.
- Мульти-агенты. На самом деле достаточно двоих - один кодит, второй супервайзит. Можно гонять даже на одном движке, главное чтобы сессии были разные и независимые и были выставлены роли-скиллы.
- Общение агентов. Чаты-почта-джира - сразу нет. Это инструменты для людей, чтобы можно было найти крайнего "а вот Петя написал что можно, а вот Рома закрыл таску а она не работает" - агенту на это наплевать. Генерить слоп в переписке они всегда обожают, так что идеальный вариант - текстовый файлик, в который они пишут свои соображения, перекидывая друг другу
- После выполнения задачи и обновления техдокументации, файлик опять же уничтожается - рыться в этом слопоархиве кому-то вряд-ли захочется, как и тыкать носом агентов "а вот вы сделали, а оно опять не работает через 10050 новых тасок" - см. выше. Заставляем покрыть всё найденное тестами и забываем навсегда
- Ручное тестирование человеком - никуда не денется. Запрос "а нагенери-ка мне 30-40 хороших тестов" - тут несколько вариантов. Либо тесты будут слоп, либо они будут о каких-то материях внутри проекта, которые бы вам в голову не пришли и вы даже не до конца их понимаете. Придется сидеть и долго разбирать, а что мы собственно тестируем. Проще найти конкретные баги и потребовать конкретно покрыть тестами.
- Всё как в жизни - иногда вы общаетесь с кодером напрямую, супервайзер ноет, почему не предупредили его и не включили договоренности за спиной в отчёт. Супервайзер постепенно, как и любой уважаемый техлид, теряет навыки кодинга в конкретном проекте, и проводя неплохой анализ, начинает плодить элементарные баги, если попросить его починить самостоятельно.
Результаты пока непонятные. Визуально всё работает, но грузить туда данные с продакшна - стремно и страшно. Впрочем, заказ похожего проекта галере среднего уровня дал бы примерно те же результаты, только в сотни раз дороже и дольше. Но в данном случае - вы не клиент, забудьте. Вы - ПМ и техлид-над-техлидом, два в одном. Так что вайба мало.
Нашел тут довольно прикольную TUI утилитку ghgrub для скачивания отдельных файлов из Github.
Не знаю как у вас, а у меня такая потребность регулярно всплывает для каких-нибудь скриптов или Docker файлов.
#cli #tui #github #rust
Не знаю как у вас, а у меня такая потребность регулярно всплывает для каких-нибудь скриптов или Docker файлов.
#cli #tui #github #rust
GitHub
GitHub - abhixdd/ghgrab: A simple, pretty terminal tool that lets you search and download files from GitHub without leaving your…
A simple, pretty terminal tool that lets you search and download files from GitHub without leaving your CLI. - abhixdd/ghgrab
Forwarded from emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. (Ivan)
Провёл собственное исследование по языкам программирования будущего.
В целом, дядька Боб правильно уловил ветер и выдвинул правильные требования к языку программирования для AI:
- гомоиконичность;
- явные типы;
- никаких скрытых потоков управления;
- контракты встроены в язык.
Но это пока просто идея. Не реализовано даже формальной верификации контрактов. Типы явные, но это скорее аннотации, чем Хиндли-Милнер. Нет алгебраических типов с exhaustive matching (хотя tagged unions упомянуты). Нет вывода типов.
Если цель - ИИ как полноценный разработчик, нужен язык, который максимизирует вероятность того, что сгенерированный им код корректен. Это значит: сильная система типов (компилятор ловит ошибки ИИ), простота (меньше галлюцинаций), достаточный объём кода в обучающих данных, и путь к формальной верификации.
Lean 4 - стратегически самый интересный, но практически самый рискованный. Если через 5-7 лет Lean станет практическим языком программирования, выбравшие его сейчас окажутся впереди всех. Но не сегодня.
На сегодняшний день выделяются два языка.
Rust - первый кандидат. Огромный объём обучающих данных, ИИ пишет на нём уверенно. Borrow checker отсекает ошибки с памятью. Система типов ловит логические ошибки. Verus, rocq-of-rust, Aeneas для верификации. Экосистема зрелая. Один минус - сложность языка увеличивает вероятность, что ИИ сгенерирует компилируемый, но неидиоматичный код. Тем не менее, строгость компилятора это компенсирует.
Ownership-модель - это фундамент, на котором можно строить доказательства.
Правила Rust устраняют настолько много трудноформализуемых случаев, что это делает его одним из самых удобных современных языков для применения формальных методов.
OCaml - второй кандидат. Меньше обучающих данных, но язык проще, и паттерны более предсказуемые. Алгебраические типы и exhaustive pattern matching - идеальный формат для ИИ-генерации: он описывает все случаи, компилятор проверяет, что ИИ ничего не пропустил. Gospel (Generic OCaml SPEcification Language) - tool-agnostic язык формальных спецификаций для OCaml.
Именно поэтому OCaml используется в финтехе. Экосистема, правда, уступает Rust.
Вишенка на торте - Camlp5. Это OCaml с Lisp-синтаксисом. Типы, компиляция, всё как в OCaml, но добавлена гомоиконичность. S-выражение - это одновременно и программа, и структура данных, которую можно анализировать, трансформировать, генерировать другой программой. Это не макросы как синтаксический сахар - это фундаментальное свойство: программа может порождать программы так же естественно, как оперировать числами.
Программирование перестаёт быть написанием инструкций и становится написанием ограничений. Победят языки, в которых спецификацию невозможно написать неоднозначно.
Дейкстра мечтал об этом полвека назад. Но раньше не было генератора, способного превратить спецификацию в код. Теперь он есть - и узкое место сместилось от написания кода к доказательству его корректности.
Это возвращает нас к тому, с чего начался ML (Робина Милнера) - к языку, созданному для доказательства теорем. Круг замыкается.
Милнер в начале 1970-х в Эдинбурге строил LCF - Logic for Computable Functions - систему для доказательства теорем. Ему нужен был язык, в котором на уровне системы типов невозможно было бы сконструировать невалидное доказательство. Так появился ML - Meta Language.
Пятьдесят лет спустя мы приходим к той же задаче, только с другой стороны. Милнер хотел, чтобы человек писал доказательства, а машина их проверяла. Мы идём к тому, что машина будет писать код, а формальная система - проверять его корректность. Задача та же - гарантия корректности через типы. Только роли поменялись.
ML был создан как язык для мира, где код должен быть доказуемо правильным. Этот мир тогда не наступил, потому что индустрии было важнее "быстро и дёшево", чем "правильно". Но если генерация кода становится бесплатной, а цена ошибки растёт - "правильно" побеждает. И оказывается, что фундамент для этого был заложен полвека назад в Эдинбурге.
В целом, дядька Боб правильно уловил ветер и выдвинул правильные требования к языку программирования для AI:
- гомоиконичность;
- явные типы;
- никаких скрытых потоков управления;
- контракты встроены в язык.
Но это пока просто идея. Не реализовано даже формальной верификации контрактов. Типы явные, но это скорее аннотации, чем Хиндли-Милнер. Нет алгебраических типов с exhaustive matching (хотя tagged unions упомянуты). Нет вывода типов.
Если цель - ИИ как полноценный разработчик, нужен язык, который максимизирует вероятность того, что сгенерированный им код корректен. Это значит: сильная система типов (компилятор ловит ошибки ИИ), простота (меньше галлюцинаций), достаточный объём кода в обучающих данных, и путь к формальной верификации.
Lean 4 - стратегически самый интересный, но практически самый рискованный. Если через 5-7 лет Lean станет практическим языком программирования, выбравшие его сейчас окажутся впереди всех. Но не сегодня.
На сегодняшний день выделяются два языка.
Rust - первый кандидат. Огромный объём обучающих данных, ИИ пишет на нём уверенно. Borrow checker отсекает ошибки с памятью. Система типов ловит логические ошибки. Verus, rocq-of-rust, Aeneas для верификации. Экосистема зрелая. Один минус - сложность языка увеличивает вероятность, что ИИ сгенерирует компилируемый, но неидиоматичный код. Тем не менее, строгость компилятора это компенсирует.
Ownership-модель - это фундамент, на котором можно строить доказательства.
Правила Rust устраняют настолько много трудноформализуемых случаев, что это делает его одним из самых удобных современных языков для применения формальных методов.
OCaml - второй кандидат. Меньше обучающих данных, но язык проще, и паттерны более предсказуемые. Алгебраические типы и exhaustive pattern matching - идеальный формат для ИИ-генерации: он описывает все случаи, компилятор проверяет, что ИИ ничего не пропустил. Gospel (Generic OCaml SPEcification Language) - tool-agnostic язык формальных спецификаций для OCaml.
Именно поэтому OCaml используется в финтехе. Экосистема, правда, уступает Rust.
Вишенка на торте - Camlp5. Это OCaml с Lisp-синтаксисом. Типы, компиляция, всё как в OCaml, но добавлена гомоиконичность. S-выражение - это одновременно и программа, и структура данных, которую можно анализировать, трансформировать, генерировать другой программой. Это не макросы как синтаксический сахар - это фундаментальное свойство: программа может порождать программы так же естественно, как оперировать числами.
Программирование перестаёт быть написанием инструкций и становится написанием ограничений. Победят языки, в которых спецификацию невозможно написать неоднозначно.
Дейкстра мечтал об этом полвека назад. Но раньше не было генератора, способного превратить спецификацию в код. Теперь он есть - и узкое место сместилось от написания кода к доказательству его корректности.
Это возвращает нас к тому, с чего начался ML (Робина Милнера) - к языку, созданному для доказательства теорем. Круг замыкается.
Милнер в начале 1970-х в Эдинбурге строил LCF - Logic for Computable Functions - систему для доказательства теорем. Ему нужен был язык, в котором на уровне системы типов невозможно было бы сконструировать невалидное доказательство. Так появился ML - Meta Language.
Пятьдесят лет спустя мы приходим к той же задаче, только с другой стороны. Милнер хотел, чтобы человек писал доказательства, а машина их проверяла. Мы идём к тому, что машина будет писать код, а формальная система - проверять его корректность. Задача та же - гарантия корректности через типы. Только роли поменялись.
ML был создан как язык для мира, где код должен быть доказуемо правильным. Этот мир тогда не наступил, потому что индустрии было важнее "быстро и дёшево", чем "правильно". Но если генерация кода становится бесплатной, а цена ошибки растёт - "правильно" побеждает. И оказывается, что фундамент для этого был заложен полвека назад в Эдинбурге.
👍3💩2
Intercepter-NG
Необычные чувства возникают при написании этих строк, но итог закономерен. 20 лет для инди-проекта — это немало. Он начинался как эксперимент для самообразования, но превратился в нечто большее. Работа над цептером изменила не только меня, но и людей вокруг. Я рад, что смог вдохновить многих начать свой путь в IT индустрии. На протяжении этих лет с проектом были связаны различные истории. Одно оставалось неизменным - путь вперед и постоянное совершенствование. Всем сопричастным - спасибо.
Жалко, когда легендарные проекты заканчивают свой жизненный цикл 😢
👍1
Forwarded from Rabid Transit
Опубликовал свою статью о новом планировщике в Vinyl на Хабр. Это результат работы по проекту импортозамещения Cassandra на основе Picodata, которую мы делали в январе-феврале 2026 года, сейчас код уже полностью доступен в релизах Picodata 26.1 и нашем Tarantool 2.11.8. Лайк-шер-алишер.
Хабр
Как мы пересобрали сборку мусора в Vinyl
В предыдущей статье о Vinyl я рассказывал об архитектуре LSM-движка Tarantool. Восемь лет, прошедшие с момента с написания статьи, показали, что Vinyl сразу получился идеальным и менять его не...
🔥1
Forwarded from Social Engineering
• Недавно искал определенный софт для домашнего сервера и нашел интересную подборку, которой хочу поделиться с вами. Сразу отмечу, что весь софт является бесплатным и имеет открытый исходный код, так что выбирайте нужные инструменты, если у вас есть свой хостинг.
• Итак, для начала держите ссылку на руководство, которое включает в себя просто бескрайнее кол-во программ для самохостинга. Если изучили и что-то не нашли, хотя я в этом сомневаюсь, то переходим в еще одну коллекцию awesome-selfhosted и подреддит r/selfhosted/. Эти ресурсы точно закроют все ваши потребности!
• Ну и вот еще несколько полезных инструментов для самохостинга:
… и другие серверные приложения из каталога.
S.E. ▪️ infosec.work ▪️ VT
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Forwarded from S.E.Reborn
• Интересная статья о приоритетах процессов в Linux, о работе ядра c приоритетами, и о том какие инструменты можно использовать для просмотра информации о приоритетах:
#Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Хроники связи СВО
Хотелось про дроны, но давайте поговорим про Debian и «not enough space»
Ребята, очень хочется написать что-нибудь ещё про дроны, но увы — я к ним никакого отношения не имею. Ну, кроме как дать транспортную сеть, чтобы видео с них нормально шло.
Летать на них при помощи LTE всё равно не выйдет (да, это снова небольшой камень в сторону тех, кто пытается загнать всех в Чебурнет под предлогом благой цели).
Поэтому сегодня с утра поговорим про другое.
У всех в армии есть сервера или АРМы (это Автоматизированные Рабочие Места) на Linux. У нас почти всегда это Astra Linux (а это по сути Debian), Ubuntu (тоже Debian), чистый Debian, Дионис (CLI там точно такой же, как в Debian) и иногда Numa (ну про неё лучше вообще не говорить).
Короче, связисту в армии как ни крути надо знать пару слов про Debian.
Если с командами ip a и ip r уже почти все разбираются, то вот одна ошибка до сих пор вводит многих в ступор:
«not enough space» — место на диске закончилось под ноль.
И почти всегда виноваты логи. Вот простая и понятная инструкция, как это почистить без интернета, без скачивания пакетов и без лишней нервотрёпки.
1. Сначала смотрим, сколько вообще места осталось:
2. Ищем, где самое большое пожирание:
(обычно сразу видно, что /var самый жирный)
3. Заходим в логи:
4. Чистим старые логи (самое безопасное):
- Для journald (Astra/Ubuntu/Debian):
(оставит логи только за последние 10 дней) или
(оставит только 500 МБ логов)
- Старые текстовые логи можно просто удалить:
5. Чтобы в будущем не повторялось, ставим автоочистку:
Открываем файл:
Находим и меняем строки:
Сохраняем (Ctrl+O, Enter, Ctrl+X) и перезапускаем:
Готово. Место появилось, сервер вздохнул свободно.
Если у кого-то после этих команд что-то пошло не так — пишите в комментариях, разберём.
Communicatio est victoria.
— Душнила @zas_svo
#СВО #связь #Linux #Debian #AstraLinux #сервер
Ребята, очень хочется написать что-нибудь ещё про дроны, но увы — я к ним никакого отношения не имею. Ну, кроме как дать транспортную сеть, чтобы видео с них нормально шло.
Летать на них при помощи LTE всё равно не выйдет (да, это снова небольшой камень в сторону тех, кто пытается загнать всех в Чебурнет под предлогом благой цели).
Поэтому сегодня с утра поговорим про другое.
У всех в армии есть сервера или АРМы (это Автоматизированные Рабочие Места) на Linux. У нас почти всегда это Astra Linux (а это по сути Debian), Ubuntu (тоже Debian), чистый Debian, Дионис (CLI там точно такой же, как в Debian) и иногда Numa (ну про неё лучше вообще не говорить).
Короче, связисту в армии как ни крути надо знать пару слов про Debian.
Если с командами ip a и ip r уже почти все разбираются, то вот одна ошибка до сих пор вводит многих в ступор:
«not enough space» — место на диске закончилось под ноль.
И почти всегда виноваты логи. Вот простая и понятная инструкция, как это почистить без интернета, без скачивания пакетов и без лишней нервотрёпки.
1. Сначала смотрим, сколько вообще места осталось:
df -h
2. Ищем, где самое большое пожирание:
du -sh /*
(обычно сразу видно, что /var самый жирный)
3. Заходим в логи:
cd /var/log
du -sh *
4. Чистим старые логи (самое безопасное):
- Для journald (Astra/Ubuntu/Debian):
sudo journalctl --vacuum-time=10d
(оставит логи только за последние 10 дней) или
sudo journalctl --vacuum-size=500M
(оставит только 500 МБ логов)
- Старые текстовые логи можно просто удалить:
sudo rm -f *.log.*
sudo rm -f *.gz
5. Чтобы в будущем не повторялось, ставим автоочистку:
Открываем файл:
sudo nano /etc/systemd/journald.conf
Находим и меняем строки:
SystemMaxUse=500M SystemMaxFileSize=50M RuntimeMaxUse=200M
Сохраняем (Ctrl+O, Enter, Ctrl+X) и перезапускаем:
sudo systemctl restart systemd-journald
Готово. Место появилось, сервер вздохнул свободно.
Если у кого-то после этих команд что-то пошло не так — пишите в комментариях, разберём.
Communicatio est victoria.
— Душнила @zas_svo
#СВО #связь #Linux #Debian #AstraLinux #сервер
💩2👍1🔥1