Задать вопрос
  • Как по ВПН соединить две сети с одинаковым поддиапазоном 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 комментария
  • Ошибка при использовании grep на сервере?

    deepblack
    @deepblack
    С чего ты взял что он "не идет дальше" ?
    По твоему скрину можно сделать вывод что grep продолжил работать.

    Подожди пока он отработает, это бывает не быстро.
    Ответ написан
    Комментировать
  • При каких обстоятельствах запущен данный процесс python-программы?

    Vindicar
    @Vindicar
    RTFM!
    Я бы попробовал использовать аудит-хук.
    Многие функции питона генерят события аудита, на которые можно подписаться.
    Есть полная таблица событий для CPython, но тебя будут интересовать события типа subprocess.Popen, os.system, os.spawn, os.startfile, os.exec, os.fork и так далее.
    Внутри хука можешь попробовать вызвать traceback.format_stack() чтобы узнать текущий стек вызовов, и записать его в какой-нибудь журнал работы.
    import sys
    import traceback
    # хук который ловит событие импорта модуля
    def hook(event, args):
        if event != 'import':
            return
        name, filename = args[0], args[1]
        callstack = traceback.extract_stack(limit=None)
        print(event, name, filename)
        for item in traceback.format_list(callstack):
            print('    ', item.strip())
    
    sys.addaudithook(hook)
    
    import json
    
    print('Done')


    Это сработает только если процессы спавнятся средствами питона, а не каким-нибудь скомпилированным расширением.

    Также можешь поискать использование модуля multiprocessing, это тоже вероятный кандидат.
    Ответ написан
    1 комментарий
  • Как использовать re.findall?

    @maximq
    QA Engineer
    Используйте backslash:
    re.findall(r"\b[A-Z0-9a-z\-\+\_]{8}\b", message.text)
    Ответ написан
    Комментировать
  • Какие есть лёгкие альтернативы у стандартного средства просмотра фотографий windows?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Используйте IrfanView - он работает еще быстрее стандартного вьюера, скорости света и вообще открывается раньше, чем даже на кнопку нажмете или откроете файл. Ничего лучше не придумали и уже не придумают.
    Ответ написан
    4 комментария
  • Как реализовать поиск координат пересечения трех окружностей, если даны координаты радиусов этих окружностей и их радиус?

    Vindicar
    @Vindicar
    RTFM!
    Сначала решить систему уравнений чтобы найти точки пересечения двух окружностей. Примем xi, yi за центр, а Ri за радиус. Тогда получим:
    (x - xA)^2 + (y - yA)^2 = RA^2
    (x - xB)^2 + (y - yB)^2 = RB^2
    Раскрываем скобки, вычитаем первое уравнение из второго, получаем квадратное уравнение. 2 корня - 2 точки пересечения, 1 корень - одна точка касания, нет корней - окружности не пересекаются.
    Потом эти точки (1 или 2) проверить на принадлежность третьей окружности, т.е. убедиться что выполняется условие (x - xС)^2 + (y - yС)^2 = RС^2. Проверку выполнения нужно проводить с некоторой точностью, т.е. сравнение делать не a == b, а скорее в духе abs(a - b) < 0.000001.
    Вот и всё.

    Если можно использовать sympy, то можешь попробовать сразу задать систему из трёх уравнений в нём.
    Ответ написан
    8 комментариев
  • Как увидеть список и типы разделов на вставленной, но неподмонтированной флешке?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    как пример можете взять вывод утилиты lsblk за основу
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE  PARTTYPENAME       MOUNTPOINTS                  MODEL
    sda          1 usb     14,7G disk dos    iso9660                                                 Transcend 16GB
    ├─sda1       1          789M part dos    iso9660 Empty              /run/media/admin/ARCH_202309 
    └─sda2       1           15M part dos    vfat    EFI (FAT-12/16/32)

    где RM это флаг съёмного устройства, 1 съёмное а 0 не съёмное, TRAN device transport type в общем тип устройства usb, ssd, nvme ..., с остальными параметрами думаю боле-мене ясно, их можно убавить по желанию.
    С помощью `awk` мы отфильтруем(`$2 == 1`) тока съёмные устройства, ну и заодно оставим шапку(`NR==1`) для информативности.
    При желании это можно вывести более кратко
    $ lsblk -o NAME,RM,FSTYPE,MOUNTPOINTS | awk '$2==1{$2="";print}'
    sda  iso9660
    ├─sda1  iso9660 /run/media/admin/ARCH_202312
    └─sda2  vfat

    где наличие третьего столбца у раздела говорит о его смонтированности

    п.с.
    тег CentOS тут думаю лишний, такая информация получается с помощью стандартных линукс утилит

    п.с.2
    может быть такая ситуация когда файловая система записана напрямую на весь диск без таблицы разделов, тогда вывод будет выглядеть примерно так:
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE PARTTYPENAME     MOUNTPOINTS MODEL
    sda          1 usb     14,7G disk        ext4                                Transcend 16GB

    значение в PTTYPE будет отсутствовать

    п.с.3

    можно даже так с отфильтрованным и отформатированным выводом через json
    $ lsblk -Jpo PKNAME,NAME,RM,FSTYPE,MOUNTPOINTS | jq -r '.blockdevices[] | select(.rm == true) | .children[] |select(.mountpoints[] == null) | "Съёмное устройство \(.pkname) имеет не смонтированный раздел \(.name) с файловой системой \(.fstype)"'
    Съёмное устройство /dev/sda имеет не смонтированный раздел /dev/sda2 с файловой системой vfat

    для учета файловой системы которая записана на весь диск без таблицы разделов необходимо в команду выше добавить некоторые условия, но это уже будет вашей разминкой.
    Ответ написан
    4 комментария
  • Подходящая программируемая плата чтобы сыграть мелодию на спикере?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Если моно звук, 1 голос, меандр - то любая ардуинка или хоть какой-то контроллер.
    Можно использовать библиотеки, можно сделать самому. Ля первой октавы - 440Гц, в октаве 12 полутонов, от октавы до октавы разница в частоте - 2 раза.
    Т.е. полтона вверх - это
    частота_ноты*(1+2^(1/12) )
    Полтона вниз - это
    частота_ноты*(1-2^(1/12) )

    Другой вариант - был проект известного китайского товарища на восьминогой тиньке (45/85), которая имеет в составе PLL и может wav файлы проигрывать.

    А по факту - есть готовые платы (непрограммируемые, ищите на Али по "Звуковой модуль «сделай сам»"), и уж с новогодней мелодией там точно что-то найдётся.
    Ответ написан
    Комментировать
  • Использование HTTP/2 ускорит процесс передачи/принятия ответа от api сервера?

    @Everything_is_bad
    практически не повлияет, оптимизация твоего апи может дать на порядок больше ускорения.
    Ответ написан
    1 комментарий
  • Как проверить скорость доступа к сети достоверно?

    Daemon23RUS
    @Daemon23RUS
    speedtest.net - чем не устроил ?
    2й вопрос это то, что Вы называете "скорость доступа к сети"
    Я приведу пример, например провайдер предоставляет вам 500Mbs, есть некий сервер, который отдает контент на скорости 1Gbs, предположим что 10 клиентов одномоментно получают контент, на каждого придется по 100Mbs, Ваш тест в этом случае покажет всего 100Mbs.
    Как я могу достоверно проверить скорость доступа к сети (скачка, отдача) на протяжении нужного мне времени, к примеру, минуты или часа?

    Попробуйте Iperf, но вам потребуется 2й сервер в сети (например VPS) с которым вы будете тестить скорость соедениния
    Ответ написан
    2 комментария
  • Стоит ли хранить HTML документ в базе?

    nykakdelishki
    @nykakdelishki
    Системный аналитик
    Практика хранить html в базе данных - нормальная.

    Вопрос с производительностью в первую очередь решается не размером поля, а репликацией, партиционирование, шардингом и индексацией.

    Стоит провести тестирование на 30 млн записей со средним размером А4, если результаты устроют, то ОК, если подумайте над партиционированием/шардированием.

    Ну а уже после тестирования если результаты неудовлетворительные(в чем сомневаюсь 30 млн записей, это не очень много) можете попробовать Postgres + S3/mongo
    Ответ написан
    Комментировать
  • По какой причине может не работать локалка?

    NeiroNx
    @NeiroNx
    Программист
    раз вы пришли сюда то вы абсолютно не понимаете что там за сеть, как она должна работать. 2 волокна оптики на этаж - говорят о сложной сети - достал из коробки и воткнул - не прокатит.

    В любом случае должна быть документация на все это. Начните с ее поиска и чтения.
    Сделайте "простую" сетку - чтобы она хоть как то работала(один линк на этаж), а потом уже включайте вторые линки, зная что они точно работают.
    Ответ написан
  • Можно ли ослабить процессор понижением таймингов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно, но эффект незначительный. Лучше понижать напряжение и частоту проца.
    Ответ написан
    Комментировать