• Изменения порта источника в iptables?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Можно,
    iptables -t nat -I POSTROUTING -s 11.22.33.44 -j SNAT --to-source 253.254.255.256:3030
    Ответ написан
    4 комментария
  • Какой сервер выбрать на 300 пользователей 1с?

    У меня похожая задача была в конце года. Так же на 300 пользователей, 250 где-то в постоянном онлайне, ,базы на 150Гб+ , Я Только проц послабее взял. На машине 2 виртуалки ( сервер администрирования и sql сервер ) .

    65c4808611384159450738.png
    конфиг на скрине.

    Саташные винты под бекапы этих виртуалок. + вся морда свободна можно забивать винтами SAS или SATA как надо и для чего надо. Сама система крутиться на 2 M2на 480 гб в зеркале в BOSS контроллере ( вроде так называется). 2 NVMe в PCIe для лучшей пропускной способности, и SATA спереди слоты для бекапов.
    Ответ написан
    2 комментария
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • Зачем вообще использовать брокеры очередей?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    В первую очередь брокеры нужны для балансировки нагрузки и увеличения надежности и скорости работы системы в целом.

    В вашем приведенном примере приведен способ уведомления клиента о каком-то событии. Например о том, что его заказ обработан, отправлен, доставлен и т.д. Событий может быть много и их источники могут быть различными.
    Например у вас может быть интеграция со сторонней системой логистики. А еще с 10 разными системами оплаты.
    Еще есть маркетинг, который тоже хочет отправлять массовые рассылки.
    Получается, что под каждый случай вам прийдется хранить информацию о письмах и статусах. Но даже проблема не в этом, проблема в том, что каждое событие имеет разный приоритет и разную ценность.

    В случае работы с сайтом у вас будет 1 воркер, который будет просто сканировать таблицы на поиск неуведомленных пользователей. Если у вас будет 2 воркера, надо делать систему блокировок и т.д. Т.е. мы упираемся в проблему масштабирования. Для решения задачи разной скорости уведомлений, вы построите систему приоритетов или будете делать разные таблицы с разными воркерами. Это все будет работать, но нагрузка на базу будет серьезной и она будет увеличиваться с ростом пользовательской базы. Опять вы упретесь в тормоза.
    Опять же есть письма, которые должны быть доставлены немедленно, вроде подтверждений аккаунта, смены пароля и т.д. Еще одна таблица? Дополнительный приоритет? Может так произойти, что вы некоторые пользователи вообще никогда не получат писем и уведомлений. Прийдется придумывать способ контроля.
    Я уж не говорю о куче кастомных воркеров под каждую ситуацию. И их будет с десяток, не меньше.

    Очереди решают, т.к. можно сделать их несколько и на для каждой настроить определенное количество абсолютно одинаковых воркеров. Пример с поллингом отвратителен и сейчас никто так не делает, а с очередями делают так.
    У вас может быть цепочка из нескольких воркеров, когда результат работы одного помещается в очередь.
    Например, когда надо сначала достать данные из нескольких разных медленных систем, отрендерить в шаблон, а потом отправить письмо. Сборка, рендеринг и отправка - три разные компонента, последние два из которых, можно активно переиспользовать для других целей изменяя лишь конфигурацию времени исполнения.
    При таком подходе проще развивать кодовую базу, исправлять ошибки, т.к. они изолированы в одном месте, а не разбросаны по всей системе. И да, косяк в "горячем" модуле вы заметите немедленно. А самое прикольное то, что ваш косяк, пользователи и не заметят, для них это будет выглядеть как простая задержка, а у вас будет время на то, чтобы исправить ошибку. Сообщения посидят в очереди и все.
    Но это еще не все, ваши воркеры могут быть написаны на разных языках программирования. Например пользователь может загружать фото на сайт на PHP, объекты распознаваться на Python, видео рендериться на Rust, а отправка писем может быть на Go. И такой подход может подойти для сложных систем с распределенными командами и различным уровнем компетенция в применяемых технологиях. Специалистов превосходно владеющих всеми приведенными технологиями просто единицы, и поверьте, они решают задачи совершенно другого уровня.
    Ответ написан
    Комментировать
  • Как отозвать/удалить сертификат который был создан и выдан через Mikrotik RouterOS?

    Keffer
    @Keffer
    ICANN
    В микротовской экосистеме выдачи\генерации сертов выданные серты нельзя удалить с микрота. Их можно только отозвать (revoke). Если нужно удалить все файлы полностью, то удаляется "корневой сертификат" тот самый которым подписаны юзерские серты. Остальное пропадет само.
    Ответ написан
    Комментировать
  • Служба "Брандмауэр Windows" завершена из-за следующей внутренней ошибки: Отказано в доступе?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    А в картинках и код ошибки 5 есть.
    Лирическое отступление:
    Есть жалоба на вопрос "Легко ищется поисковиком". Однако когда я нахожу ответ на первой странице, а иногда даже первой строкой, я не вижу таких жалоб. И в свете многочисленных сообщений в виде: "Я сказал другу, что еду в отпуск, и теперь мне сыплется реклама турагентств. Меня прослушивают!" Я понял: моя прокачка учётной записи google приносит плоды. Отдаю идею в хорошие руки: сделать сервис запросов через прокачанные учётные записи, чтобы на запрос об ошибке Windows выдавался релевантный результат, а не ссылка на эротические фото в окне.


    Советуют общее по Windows sfc /scannow.
    Или по Windows 10 DISM.exe /Online /Cleanup-Image /RestoreHealth.
    Ответ написан
    3 комментария
  • Как сделать меню выбора сессии в Tmux?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Выводите сообщение выбора через echo далее используете оператор case для условий
    Ответ написан
    2 комментария
  • Почему отваливается туннуль wireguard?

    @Moonshiner21
    Аналогичная проблема в Windows 7: даже без смены внешнего IP время от времени отваливается официальный клиент. Запуск от админа в режиме совместимости не помог. Решение: использовать клиент TuneSafe: https://tunsafe.com/ Стабильная версия 1.4.1 работает как часы. С beta версией 1.5 были проблемы.
    Ответ написан
    Комментировать
  • Как настроить автоматический сон ПК при отсутствии раздачи?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Взять старый ноут, вставить в него ssd, отключить сон и закрыть крышку.
    Ноут не так уж много жрёт, особенно с выключенным экраном, графику ведь не надо рисовать. Ввиду отсутствия необходимости в экране, то можно взять убитый в плане корпуса и экрана ноут, поставить на него убунту, подключаться по ssh и работать с торрентами через веб-интерфейс торрентокачалки.
    И не надо засыпать\просыпаться.
    Ответ написан
    Комментировать
  • Как узнать версии пакетов у Ubuntu в официальном релизе на определённую дату?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Посмотреть даты создания пакетов в репозиториях, там лежат несколько версий
    Ответ написан
    Комментировать
  • Почему сервер не видит оперетивную память?

    @Tabletko
    никого не трогаю, починяю примус
    Нельзя смешивать lrdimm и rdimm
    Ответ написан
    Комментировать
  • Почему сервер не видит оперетивную память?

    @smesh
    What makes memory compatible? For purposes of this document, compatibility is defined as functional equivalency. The minimum requirements for functional equivalency are size, speed and configuration. If any of these three parameters differ between two DIMMs, then the DIMMs are incompatible. For example, a 2GB memory module built with 1GB parts is not compatible with a 2GB memory module built with 512MB parts. In addition, a PC2100 DIMM is not compatible with a PC2700 DIMM, even if size and configuration are the same.

    Support Center
    Возможно из-за этого...
    Ответ написан
    Комментировать
  • Резервный канал для почтового сервера, как реализовать?

    hint000
    @hint000
    у админа три руки
    То, что вы описали, будет работать, будет принимать.
    Предполагаю, что может быть проблема с отправкой. Потому что ваш сервер имеет конкретное FQDN независимо от используемого канала связи. И отправляя письмо, он будет представляться mail.myfirma.ru, а DNS не будет подтверждать, что mail.myfirma.ru имеет адрес 2.2.2.2. У сервера получателя может возникнуть подозрение, что ваш сервер поддельный, спамерский.
    Ответ написан
    4 комментария
  • Виртуальный com порт в Ubuntu?

    @rPman
    Создаешь файл именованный канал с помощью mkfifo, твое серверное приложение должно будет его открыть и асинхронно читать и писать в него.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы программа закрывалась после третьего неудачного ввода?

    3vi1_0n3
    @3vi1_0n3
    #!/bin/bash
    
    FAILS=0
    Func(){
    read -p "Введите имя: "
    case "$REPLY" in
      Саша|Алекс|Alex)
        echo "Полное имя: Александр"
        return 1
        ;;
      *)
        FAILS=$(($FAILS + 1))
        return 0
        ;;
    esac
    }
    
    while [ $FAILS -lt 3 ] && Func
    do
        echo "Неизвестное имя системе, просим прощения"
    done
    Ответ написан
    Комментировать
  • Как посмотреть активные UDP соединения и IP адреса?

    @Zerg89
    iptraf
    Ответ написан
    Комментировать
  • Как посмотреть активные UDP соединения и IP адреса?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    man ss
    man netstat
    man iptraf-ng
    Ответ написан
    Комментировать
  • Почему при последующих итерациях появляется ошибка?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ведь очевидно, что третий $domain - пустая строка.
    while read -r domain; do
      if [ -n "${domain}" ]; then
        expdate=$(whois "${domain}" | grep -iE 'expir.*date|expir.*on|expires|free-date' | head -1 | grep -oE '[^ ]+$')
        new_expdate="-"
        day_left="-"
        if [ -n "${expdate}" ]; then
            new_expdate=$(echo "${expdate}" | sed 's/T.*//')
            expdate=$(date -d "${expdate}" "+%s")
            curdate=$(date "+%s")
            day_left=$(((expdate-curdate)/86400))
        fi
        if [ "${day_left}" -lt 0 ]; then
            echo "For '${domain}' lease already expired at '${new_expdate}'"
        else
            echo "For '${domain}' lease expires at '${new_expdate}', '${day_left}' days left"
        fi
      fi
    done < domain.list
    Ответ написан
    Комментировать
  • Почему при последующих итерациях появляется ошибка?

    @dronmaxman
    VoIP Administrator
    For lease expires -19418 day left

    Кажется в это строке не хватает домена, или у тебя пустая строка в конце списка.

    grep -iE 'expir.*date|expir.*on'

    Вот этот фильтр может не работать, еще может быть просто expires: или free-date:, а может и вообще этого поля не быть в whois.

    Попробуй вот так
    expdate=$(whois "$domain" | grep -iE 'expir.*date|expir.*on|expires|free-date' | head -1 | grep -oE '[^ ]+$')
    Ответ написан
    Комментировать
  • Как сделать чтобы wget скачивал не html файлы?

    hint000
    @hint000
    у админа три руки
    чтобы он скачивал допустим index
    Так укажите же имя файла, который хотите скачать:
    wget -r -k -l 7 -p -E -nc https://site.ru/index
    Ответ написан
    4 комментария