• Какой паттерн использовать для БД many-to-many с одним столбцом-источником для двух столбцов many-to-many?

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

    create view points_difference as
        (
            select first.names as name1, second.names as name2, first.points - second.points as points from user_points first 
                join user_points second 
                    on first.id <> second.id
            
        );

    В добавок можно сделать его materialized view, чтобы от лишних перерасчетов избавиться
    Ответ написан
    9 комментариев
  • Как исправить то, что bareos-webui выдаёт текст php скрипта, вместо страницы?

    @AlexanderBz
    В версии Version 23.0.1~pre7.606b211eb на Ubuntu 20.04 у меня это решилось:

    $ sudo apt install libapache2-mod-php
    # systemctl status apache2


    Глубоко копать не пришлось. Хотя команды для включения модуля у них уже достаточно давно рекомендованы в мануале, однако, нужны были далеко не для всех дистрибутивов.

    Вероятно, в предыдущей версии bareos-webui нужное подтягивалось зависимостями, в этой версии модуля в зависимостях нет:

    # apt-cache depends bareos-webui
    bareos-webui
     |Depends: apache2
      Depends: <httpd>
        tntnet
        apache2
        lighttpd
        micro-httpd
        mini-httpd
        nginx-core
        nginx-extras
        nginx-full
        nginx-light
        ocsigenserver
        webfs
        yaws
      Depends: php-fpm
      Depends: php-date
      Depends: php-intl
        php7.4-intl
      Depends: php-json
        php7.4-json
      Depends: php-curl
        php7.4-curl


    Они не первый раз уже с обновлением забивают на подобные мелочи: например, в прошлых версиях для Debian систем не было по-умолчанию файла /etc/bareos-webui/configuration.ini, а начиная с этой версии у них нет номера версии в ссылке на репозиторий и оно теперь `current`, или `next` (что особенно вымораживает, когда ты ставишь все ansible'ом -- приходится обновлять роль).
    Ответ написан
    Комментировать
  • Astra Linux 1.6 Смоленск: "Вход неудачен"?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Яу, это ты на special edition сделал обновление пакета? Ты хотя бы источники обновления не менял? А то ведь сертификация эта хваленая, ради которой смоленск покупается - она испарится, как дым, как только ты систему обновишь с неавторизованного источника...

    Смотри модуль Pam, который отвечает за вход, что там изменилось.

    Вычитал там выше интересную идейку. В системе, как в андроиде сейчас, вполне может быть встроена сверка контрольных сумм ключевых пакетов. Изменился пакет - все, голактико опасносте, вход запрещен!
    Ответ написан
    Комментировать
  • На сколько безопасно дедуплицировать бэкапы?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ну, например у меня дедупликация экономит 90% места :)

    Free: 1.90 TB
    Used: 11.09 TB (997.2 GB can be reclaimed)
    Deduplication: Enabled
    Compression: Fast
    Encryption: Disabled
    Space savings: 94.0% (158.49 TB)
    Automatic self-healing: Disabled


    Испольузется Nakivo Backup & Replication. Да, его больше не купить и саппорта нет. И если репа сдохнет - то бэкапы накрылись. (Два раза за семь лет - бывало из-за бросков питания). Защита от этого проста - еще одна полка или сервер, куда бэкапы копируются.
    Ответ написан
    Комментировать
  • На сколько безопасно дедуплицировать бэкапы?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Вот ситуация из практики - дедупликация средствами Windows Server, экономия дискового пространства порядка 60% (проектные данные, документы, личные файлы пользователей и т.п.), сжатый объем хранения - сейчас около 10 терабайт. За 10 лет ни одного случая косяков, кроме помирания дисков механически.
    Естественно, что резервное копирование реализовано несколькими уровнями и на разные носители. Но сам по себе механизм дедупликации работает очень стабильно. По процессорной загрузке - не особо велика. Да и кто запрещает сделать расписание?
    Смотря какие данные, сжатие будет разным, но возможно в то же хранилище вы сможете положить уже 2 (независимо друг от друга дедуплицированные) копии, вместо одной. Понятно, что лучше быть богатым и здоровым, чем бедным и больным - но вы видели ценовую разницу между диском на 10 Тб и на 25 Тб?
    Ответ написан
    1 комментарий
  • На сколько безопасно дедуплицировать бэкапы?

    @Drno
    Люди бесстрашные. Самый лучший бэкап, который я видел, копирование голых данных, ну и в архив их при желании.
    конфиги копировать отдельно.
    Если БД - то дамп

    Да, это всё жрет кучу места
    Ответ написан
    2 комментария
  • На сколько безопасно дедуплицировать бэкапы?

    @aleks-th
    На этот вопрос нельзя однозначно ответить.
    Да если идёт сбой то бекап накрывается медным тазом.

    Но у тебя так же может и диск сдохнуть , и рейд, и файловая система, и ленточки размагнитится и вирус может все бэкапы зашифровать, так же может над серверной котельную прорвать, случится пожар, подача 380 вместо 220, сервер с бекапами могут украсть, владелец здания может ваше оборудование заблокирова, а ещё все это может произойти одновременно...

    Вообще для бекапов нужно определится :

    1. Что храним, и зачем, какая информация критична а какая не очень?
    2. Объем данных?
    3. С какой периодичностью делать бекапы?
    4. Как проверяем что бэкап нормальный, как будем и за какое время разворачивать в случае чего?
    5. Какие риски могут быть и как с ними будем бороться?
    5. Сколько и кто за это платит?

    А дальше все просто - есть неограниченно денег, покупаем хранилища быстрые и бесконечные, нет совсем денег ниче не делаем молимся чтоб последний хард не сдох.

    А вот где-то посередине между крайними случаями, будет схема где самым оптимальным решением будет вот это умное сжатие. Или какое-то другое решение. Впринципе если проблем нет то проблем с этими бэкапами не будет. Особенно если бэкапы после создания будут как-то проверяется на целостность.

    Но перед этим все равно нужно рисовать схему и смотреть, что храним, как храним, и сколько готовы платить денег и времени за то что храним.
    Ответ написан
    2 комментария
  • На сколько безопасно дедуплицировать бэкапы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Боюсь что процесс дедупликации будет требовать ресурсов гораздо больше чем сам backup.

    Попробуй сам подумать какая асимптоматика будет у алгоритма поиска в одном файле фрагментов другого
    файла.

    Из коробочных инструментов есть fdupes. Я им пользовался когда надо искать в большом архиве pdf
    документов такие-же документы дубли или фолдеры-дубли. Но fdupes просто ставит более простую
    задачу. Ищет полное совпадение всех файлов со всеми. Вот. А если ты будешь играться с дифференциальными
    или прочими бэкапами то сложность твоей задачи еще более вырастает.
    Ответ написан
    4 комментария
  • Почему бот отправляет &amp;amp;quot;0&amp;amp;quot;?

    Vindicar
    @Vindicar
    RTFM!
    Документацию читать надо.
    os.system() возвращает числовой код завершения запущенного процесса (0 - завершилась успешно). Стандартный вывод этого процесса молча отправляется в стандартный вывод твоей консоли.
    Если тебе нужен перехватить стандартный вывод, используй средства модуля subprocess.
    А если тебе нужно мониторить изменения файла, используй пакет watchdog.
    Ответ написан
    4 комментария
  • Почему свитч не видит IP-камеру видеонаблюдения?

    @Drno
    принести свитч к камерам и воткнуть - если работает, проблема в обжиме \ кабеле \ длине
    если не работает - то очевидно что в свитче

    так же могли порты повыгорать, на свитче

    ну или не хватает бюджета POE у свитча, отключите все другие камеры и пробуйте их включить по 1й, те которые не работают
    Ответ написан
    Комментировать
  • Почему lvm занял половину диска, вместо всего диска?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    Ну у вас же явно указано, что sda3 - 58 гб
    И явно видно что внутри LVM раздел

    чтобы манаджить LVM нужно пользоваться не fdisk а соответственно команды LVM
    для начала pvs, vgs, lvs
    Ответ написан
    1 комментарий
  • Почему lvm занял половину диска, вместо всего диска?

    @q2digger
    никого не трогаю, починяю примус
    сначала надо расширить раздел Logical Volume , команда lvextend , после этого можно расширять файловую систему. На рутовом разделе, скорее всего придется это делать загрузившись с (например) systemrescuecd или другой загрузочной флешки(образа) с линуксом. Если раздел xfs , то можно расширить и без ребута, но у вас скорее всего там ext4 , да?

    Держите примеры команд
    lvextend -L+11G /dev/VolGroup00/LogVol00 <- увеличить раздел на 11Гигов 
    fsadm resize /dev/VolGroup00/LogVol00  <- резайзить данный раздел
    Ответ написан
    1 комментарий
  • Замена dict^ов в питоне. Какие существуют аналоги?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    пишу GUI на android, хотелось бы снизить количество потребляемой оперативной памяти.

    Не пишите на Python.
    Ответ написан
    Комментировать
  • Почему компьютер выключается и включается из-за небольшой нагрузки?

    ZERGeich
    @ZERGeich
    Компьютер не должен выключаться при любой штатной нагрузке. Максимум - перезагружаться.
    Если он именно выключается - значит неисправность в железе.
    1. Система охлаждения - проверить\промониторить температуру и обороты на вентиляторах.
    2. Память - проверить мемтестом и стресс-тестами.
    3. Процессор - проверить стресс-тестом.
    4. Блок питания - проверить\промониторить под нагрузкой и без.
    Ответ написан
    Комментировать
  • Почему компьютер выключается и включается из-за небольшой нагрузки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Очень похоже на умирающий блок питания. Какой возраст ПК? Какая полная конфигурация? Есть ли на материнской плате или в БП вздувшиеся или потекшие конденсаторы? Еще следует проверить напряжения выдаваемые БП без нагрузки и под нагрузкой мультиметром.
    Ответ написан
    1 комментарий
  • Добавляю в sqlite3 через python в таблицу данные и выдает ошибку почему?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Элементарно, Ватсон!
    В области видимости переменных функции passw переменная loginDb - не определена, поэтому функция ищет такую переменную в вышележащей области видимости - в глобальной. А там эта переменная определена и ссылается на класс str (кстати, зачем???)
    В то же время в области видимости переменных функции auth переменная loginDb определена, поэтому она там не имеет никакого отношения ни к одноименной переменной в глобальной области, ни к одноименной переменной в функции passw.
    На вход execute попадает значение str - а это - класс, а не строка, поэтому execute и ругается, что тип не подходящий.

    Что делать?
    • Изучить и понять области видимости переменных.
    • Передавать в явном виде необходимые переменные на вход функций, а также явно возвращать их измененные значения из функций и явно передавать в другие функции.
    Ответ написан
    Комментировать
  • Как мне быть, если HP Support Assistant больше не работает в России?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    По большей части подобные проги от производителя можно сносить прям при покупке.
    Иначе на протяжении всей эксплуотации они вам будут гадить в фоновые процессы и автозагрузку.
    Из дельного там бывают только для аппаратной поддержки. Типа вентиляторами жужжать и лампами РГБ мигать
    Ответ написан
    Комментировать
  • Как узнать сколько сделал код попыток для выпадения нужного числа?

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

    DedIsDead
    @DedIsDead
    Да без б
    import random
    o = 0
    i = 67
    while True:
        a = random.randint(1, 1000000)
        print(a)
        o+=1
        if i == a:
            print(o)
            break
    Ответ написан
    2 комментария
  • Самое тупое, в чём тут я то ошибся?

    paran0id
    @paran0id
    Умный, но ленивый
    ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?

    Чего же боле?
    Ответ написан
    2 комментария