• Как управлять по сети загрузкой ОС?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Стандартно - никак, можно найти разработчика, который сможет дописать нужные функции в код grub, если это возможно.
    Либо Linux грузить по умолчанию, добавив скрипт в автозапуск в Linux, который при запуске проверит и если нужно загрузиться в Windows, перезагрузится в Windows
    Ответ написан
    2 комментария
  • Настройка конфига pam_sqlite?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Установить pam_sqlite, создать БД, добавить в /etc/pam.d/login что-нибудь типа:
    session required pam_sqlite.so /path/to/sqlite.db
    Ответ написан
    1 комментарий
  • Как запитать sata ssd диск на плате промышленного компьютера ASEM BM3400?

    @pfg21
    ex-турист
    взять от блока питания +12в и +5в и завести в сата-разъем питания ??
    Ответ написан
    Комментировать
  • Как раздать интернет по Dial-up?

    ValdikSS
    @ValdikSS
    Самый простой вариант — настроить приём входящих соединений, задать фиксированные IP-адреса на обеих сторонах, установить прокси-сервер на машине, принимающей соединения, и прописать адрес прокси на подключающейся машине.

    Здесь про создание подключения. Работает в Windows 10.
    unlockforus.blogspot.com/2010/03/how-to-accept-inc...

    Если разберётесь с DHCP, RAS и NAT в Windows, то настройте их. Если нет, то любой прокси-сервер.
    Ответ написан
    1 комментарий
  • Почему Windows 10 не запускается на ноутбуке, а с Windows 7 проблем нет?

    PC_Psycho
    @PC_Psycho
    Windows, Python, PC Hard & Soft
    Здравствуйте! Ваш БИОС имеет legacy mode, соответственно флешку, на которую пишется образ Win10 надо форматировать с загрузчиком legacy, без UEFI или UEFI + legacy. Когда устанавливается Windows, то в окне выбора диска, на который нужно ее установить надо удалить все, что там есть и на нераспределенном пространстве создать новый раздел. Так, программа установки автоматически создаст системные разделы, отвечающие за загрузку ОС и ее восстановление. Win10 все же не будет грузится в полноценном legacy mode, а в режиме его эмуляции под UEFI.

    Здесь можно поставить галочку "исправление для старых БИОС", если флешку не будет видно в boot menu.
    rufus
    65fa11cfa085d383316742.png
    Ответ написан
    1 комментарий
  • Как правильно выбрать железо для домашнего сервера?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Mini ITX со встроенным 4-х ядерным процессором, слотом M2 и полноформатными или ноутбучными слотами памяти - смотря какая завалялась пара плашек памяти в наличии. Маленький, но качественный БП (например FSP) и любой корпус. Ну и любой ССД под систему - М2 или сата тоже пойдет. Диски под хранилище чего-либо - тут уже по желанию и возможностям.
    Например: https://www.onlinetrade.ru/catalogue/materinskie_p...

    UPD: только что вышел обзор мини-пк от 3Dnews: https://3dnews.ru/1100970/kompyuter-mesyatsa-pokup...
    Ответ написан
    4 комментария
  • Домашний сервер Proxmox контейнеры LXC или VM?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Улучшит отказ от Proxmox и переход на Linux на сервере и перевод всего софта в Docker.
    LXC контейнеры также как и ВМ бронируют определенные ресурсы хоста, но не факт, что полностью их используют/или им в какой-то момент их не хватает.
    Ответ написан
    4 комментария
  • Как массово удалить файлы в определенных папках?

    find /yourpath -type d -path '*/site1.ru/core/cache' -exec rm -rf '{}' ';'
    Ответ написан
    Комментировать
  • Как установить печатную плату на металлическую пластину?

    • Пластиковая ручка с пустым пастиком. Из ручки напилить дистанционных втулок. Пастик вставить через плату и втулки, нагреть и прижать как заклепку.
    • Взять стойки от материнской платы
    • Взять термоусадку большого диаметра, запихнуть в нее плату и усадить
    • Взять толстую подложку, подложку привренуть к железяке, а платы к подложке
    • Взять любую пластиковую коробочку по размеру, положить платы в коробочку, провода вывести через стенки и бросить её на железяку
    • ... и ещё 1001 вариант, как быстро заколхозить сабж )))
    Ответ написан
    2 комментария
  • Почему нет записи о printf в секции .plt.dyn?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Но там запись о функции puts, а не printf.

    Это уже оптимизация компилятора. Возможно ты не передаешь printf никаких аргументов и он решил, что проще вызвать puts.
    Такое поведение уже было описано вот тут:
    The C compiler gcc likes to use its knowledge of builtin functions to manipulate code. The version of gcc in NetBSD 4.0.1/macppc will simplify the printf statement to puts("Greeting, Earth!"); so the main function effectively calls puts(3) once and then returns 0.
    Ответ написан
    1 комментарий
  • Оптимизация сайта под высокие нагрузки (php,nginx, mysql). Какие критерии доработок? Что необходимо сделать в первую очередь?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Как уже заметили коллеги - первое что нужно выяснить - что тормозит.

    Спойлер: 90% что проблема в запросах к бд, так как сам по себе код в большинстве случаев банально отсылает запросы и принимает их результат, выводя его пользователю в несложных действиях. В редких случаях - запросы идут к внешним тормозящим сервисам, например к фейсбуку или другим СС. И крайне редко тормозит сам код, но тут уже опять же - 90% что это некомпетентность разраба, например, не способного построить нормальный запрос и сортирующий данные от бд в коде...

    Что конкретно надо делать:
    1) Взять за шкирку самого разбирающегося в коде (если таковой существует в проекте), и дать задание описать базовый стек вызовов, если это какой-то самопис, или сразу расставить код замера времени с метками в случае понятной архитектуры. Что то типа такого(класс - древний костыль, но работает, так что матом не ругаться):
    Class Timer.php:
    class Timer {
    
        static $start;
        static $end;
        static $marks = [];
        static $formats = [1=>''];
    
        static function init(){
            if(empty(self::$start)) self::$start = microtime(true);
        }
    
        static function setMark($markName = ''){
            $time = microtime(true);
            if($markName == '')$markName = $time;
            $data['name'] = $markName;
            $data['time'] = $time;
            $res['time'] = $time;
            if(count(self::$marks) > 1)$res['diff'] = $time - self::$marks[count(self::$marks)-2]['time'];
            else $res['diff'] = 0;
            $data['diff'] = $res['diff'];
            self::$marks[] = $data;
            return $res;
        }
    
        static function timeFormat($number,$format = ''){
            if(empty($format)) $format = 3;
            return number_format ($number,$format,'.','');
        }
    
        static function report(){
            self::$end = microtime(true);
            self::$marks['start'] = self::$start;
            self::$marks['end'] = self::$end;
            self::$marks['all_time'] =  self::$end - self::$start;
            if(!empty(self::$marks)) return self::$marks;
        }
    }


    In code:
    \Timer::init()
    //some code block 1
    \Timer::setMark('after block 1');
    //some code block 2
    \Timer::setMark('after block 2');
    ...
    //some code block n
    \Timer::setMark('after block n');
    //near end of code 
    \Timer::setMark('end');
    var_dump(\Timer::report());
    exit;

    2) Смотрите на блоки жрущие время, делите их до атомарных операций путем деления блоков пополам таймерами.
    3) Смотрите что там происходит - оптимизируете*. И так по кругу.
    4) Профит.

    * Оптимизация
    Запросы:
    1) Смотреть план запроса (use explain, Luke!).
    2) Расставить индексы которых явно не хватает
    3) Смотреть не вызывается ли 50 запросов в цикле? Если да - выписать пенделя писавшему, затем переписать в 1 запрос с нормальным джоином.

    Код:
    Иногда запрос сложно оптимизировать, он вытаскивает много данных, хотя эти данные не часто обновляются. Такие запросы нужно кешировать, для чего используют быстрые ин-мемори хранилища типа редис или мемкеш. В крайнем случае в файлах...
    Чаще всего код тормозит на регулярках, хотя "хороший" программист может придумать и более креативные способы погреть процессор.

    Что нужно сделать обязательно кроме тестов и как тогда лучше спрашивать с разработчиков, если они предлагают размытые предложения? Хочется понять в какую сторону копать
    Бить палкой не вариант? Тогда берите других, эти испортились. Если разработчик не знает как выявить узкие места кода - нахрена он нужен? Код написать сегодня любой чат может... Ну, на крайняк дайте им вышеприведенный вариант решения проблемы...

    PS: Кстати, сервер может банально не выдерживать наплыв сетевых соединений, пните адимна, пусть глянет логи.

    PPS:
    достаточно 2000-4000 человек, заходящих в течение 20 минут на сайт
    это равномерные 3-4 рпс, ну или пусть в пике 50 рпс, должно держать даже на несложной конфигурации... Копайте код.
    Ответ написан
    Комментировать
  • Как по ВПН соединить две сети с одинаковым поддиапазоном 192.168.0.1/24?

    @asmelnik
    Классика говорит, что НЕТ!
    Сети НЕ ДОЛЖНЫ ПЕРЕСЕКАТЬСЯ!

    "Костыли" при определенных условиях возможны, вроде proxy arp, проброса портов и.т.д.
    Но они имеют свои ограничения и условия применимости.

    Самое правильное одну из сетей перекинуть в другой диапазон, например
    192.168.1-255.0/24
    Если так уж принципиально 192.168.0.xxx
    Можно одну сеть сделать
    192.168.0.0/25 (адреса 1-126)
    вторую
    192.168.0.128/25 (адреса 129-254)
    Если в каждой сети менее 120-ти хостов,
    и маршруты 192.168.0.0/24 указать в VPN.

    Учитывая отсутствие возможности изменения второй сети и жесткое условие сохранения адрессации -- нормального решения НЕТ!
    Узел 192.168.0.12 в сети 1 НИКОГДА не сможет связаться (по IP) с узлом 192.168.0.12 в другой сети.
    Вот СОВСЕМ!
    (Проброс портов не считаем, это несколько иное условие).
    Ответ написан
    8 комментариев
  • Как поставить debian 12 на SataRaid?

    @Drno
    Конечно зло. возпользуйтесь лучше mdadm...
    Ответ написан
    Комментировать
  • Как создать сборку для быстрого развертывания сервера с WP?

    @Drno
    Сделайте lxc контейнер и его разворачивайте. 1 раз собрали внутри него, и копируйте на новые сервера

    Ну либо докер...
    Ответ написан
    2 комментария
  • MacBook Pro 15 2012 Retina нужно ли обмениваться?

    @Drno
    нет конечно. это еще более усоссаный ноут, чем Ваш

    вариант стоит рассматривать только более новый

    Цикл жизни маков - порядка 5ти лет...
    Ответ написан
    Комментировать
  • Как правильно обрабатывать SQLException?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Скорее всего коды SQL ошибок зависят от DBMS. Например я по старой памяти помню что если
    в коде вы видите ORA-00001 то вы скорее всего используете Oracle и ваша ошибка
    связана с нарушением Primary KEY во время INSERT/UPDATE.

    Другие DBMS (Postgres/MySQL) будут иметь другие коды ошибок.
    Ответ написан
    3 комментария
  • Какая утилита подобна wget, но умеет делать upload дерева файлов по https?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    прикол в том, что http в принципе не знает что такое файловая система, поэтому нужно писать скрипт, который оббежит ваши каталоги и зааплоадит файлы по одному.
    Либо архивировать каталог и заливать уже архив со всем внутри, как это делают
    Ответ написан
    Комментировать
  • Почему система падает при большом трафике?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Описание проблемы проще чем кажется: чем больше трафика - тем больше работы.
    Это влечет за собой:
    - Больший нагрев процессора и других комплектующих + повышение их износа -> могут отвалиться
    - В каждом софте (даже стабильной ОС) есть ошибки, которые точно возникнут согласно ЗБЧ
    - Появляется слишком много прерываний, которые тормозят систему -> большие операционные издержки (переключение контекста, переход в режим ядра и т.д.)
    - Рано или поздно доступные ресурсы закончатся (ОЗУ, Диск, буфер сетевой карты), а не многие приложения могут такое обработать и упадут

    Подытоживая: сбои происходят из-за того, что для обработки нагрузки требуется больше ресурсов чем есть.

    Сколько ресурсов должно быть для корректной работы при определенной нагрузке надо искать самим - тестировать систему (стресс/нагрузочное/объемное и т.д.).
    Создавать математические формулы - такое себе, т.к. слишком много важных параметров не будет учтено:
    - Топология сети
    - Используемые комплектующие
    - Охлаждение
    - Расположение серверов
    - Версия ОС + гипервизор

    UPD: + конечно же когда много трафика, то какие-то пакеты отбрасываются/теряются и необходимо слать их повторно, что увеличивает нагрузку на сеть + задержку запроса
    Ответ написан
    1 комментарий
  • Что не так с Wifi адаптером и подключением к сети?

    @Voland69
    Что чат-гопота насоветовала не в курсе, поэтому расскажу со своей колокольни, как надо.
    1. запускаем VirtualBox
    2. подключаем USB WiFi adapter
    3. пробрасываем USB адаптер вирт машине (ЕМНИП можно настроить фильтр машине, чтобы она всегда его забирала)
    4. запускаем на вирт машине Live Ubuntu
    5. проверяем видится ли адаптер lsusb, определил ли его Network Manager, можно ли подключиться к сети
    6. если все ок, то ставим интересующий дистр (с проброшенным, т.е. подключенным адаптером) и проверяем там
    7. если все ок, то радуемся, если не ок - вывод lsusb, ip a сюда в комменты, и разбираемся


    Почему так сложно?
    Задача бьется на две, а точнее три задачи:
    • корректно прокинуть девайс в виртуалку
    • завести его в линуксе в принципе
    • завести его в том конкретном линуксе, который вам нужен


    Почему ставим с подключенным девайсом?
    Так проще, в случае если адаптер требует каких-то дополнительных, возможно проприетарных пакетов, о которых знает установщик, он вам их может поставить и сконфигурировать.

    P.S. на скрине в Available networks видите ваши сети и можете ли подключиться?
    Ответ написан
    4 комментария