Задать вопрос
  • Как узнать где лежат Docker контейнеры и их логи (Linux)?

    shurshur
    @shurshur
    А ещё docker info, где есть информация по storage driver. И вообще, /var/lib/docker легко переопределить через конфиг (многие перекидывают на отдельный диск, чтобы не забивать место в разделе с системой).
  • Возможно ли многопоточное скачивание видео с ютуба через yt-dlp?

    shurshur
    @shurshur
    kaktak255, если это от времени суток зависит, то вряд ли дело в yt-dlp. Скорее, это проблема из-за отключения Google Cloud Cache у провайдера или из-за того, что нужное видео не найдено в кэше и качается через не очень быстрый аплинк в зарубежье.
  • Как реализована сейчас покупку подписки или товаров в российском приложение в Google play и App store?

    shurshur
    @shurshur
    Александр Белан, в России при попытке что-то купить из Android-приложения показывается сообщение, что платежи отключены. Но даже если кому-то что-то удастся продать (нероссийским пользователям), то эти деньги вывести всё равно не удастся. С учётом того, что Google запрещает покупки вне приложения, придётся смириться с тем, что в выложенном в GPlay в принципе не удастся принимать платежи. Примерно такие же обстоятельства в AppStore. Там ещё трепыхается дырка с оплатой на Apple со счёта мобильного телефона, но это неудобно, да и могут окончательно прикрыть.

    Продажа мобильных приложений в России сейчас практически умерла. Конечно, постепенно как-нибудь научатся продавать через другие площадки и собственные местные сторы, но в целом былых масштабов и объёмов больше не будет. Увы. Можно пойти по пути в ответах и сделать две версии приложения, одна из которых будет в России без выкладки в официальные сторы, а другая на весь остальной мир и записана на юрлицо за пределами России.
  • Как отправить сообщение всем группам по ID?

    shurshur
    @shurshur
    Архип Тимофеев, не надо его никуда кидать. Это элементарные основы. При знании основ вообще не возникает никаких затруднений, когда надо работать с подобными структурами данных (списки, словари итд):

    some_list = [{'group_id': -1860624013}, {'group_id': -571707953}]
      
    group_id_list = []
    # просто цикл
    for item in some_list:
        group_id_list.append(item['group_id'])
    
    for group_id in group_id_list:
        ...
    
    # или можно использовать list comprehension
    group_id_list = [item['group_id'] for item in some_list]
  • Как решить вопрос с утечкой памяти?

    shurshur
    @shurshur
    Ну что содержимое памяти по мере её исчерпания перемещается в swap это вполне нормально. А вот рост занимаемой памятью, скорее всего, вызван непосредственно используемым алгоритмом, который, например, запоминает в каком-нибудь словаре данные, которые не нужны после использования.
  • Как отправить сообщение всем группам по ID?

    shurshur
    @shurshur
    Любой учебник по Python, раздел про циклы.
  • Могу ли отнести машину к двум доменным зонам в debian?

    shurshur
    @shurshur
    Vano01rus, срочно отучаемся от Ctrl-Z. Эта комбинация не завершает приложение, а прерывает его выполнение, оставляя в памяти (см. команды jobs, fg и bg в bash). Прерывать их надо с помощью Ctrl-C.

    Для проверки DNS следует использовать host и dig из пакета bind-utils (в нём же есть nslookup для тех, кто привык к Windows).

    DNS-сервера выбираются или по порядку, или в режиме round robin. Чтобы работало всё, надо обеспечить, чтобы оба сервера отдавали обе зоны. Например, прописать в каждом из них вторую зону через forward на другой DNS-сервер. Или сделать из каждого из них slave на другую зону (тогда они не запросы будут перенаправлять, а иметь у себя актуальную копию зоны с мастер-сервера). В общем-то, это правильно и удобно, когда оба сервера умеют отвечать на запросы по всем зонам.

    В пределах уютного localhost можно поставить локальный DNS, которым раскидать зоны. Например, можно поставить dnsmasq, в конфиге которого описать, какие зоны на какой сервер:

    server=/demo.wsr/3.3.3.1
    server=/int.demo.wsr/192.168.100.200
    server=8.8.8.8


    А в resolv.conf написать просто 127.0.0.1.

    Также, поскольку одна из зон включена в другую, можно в demo.wsr добавить запись:

    int NS srv.int.demo.wsr.
    srv.int A 192.168.100.200

    И тогда этот DNS-сервер будет корректно отдавать NS-запись домена int.demo.wsr, позволяя с этого DNS получать запросы по обоим зонам.

    Вообще, я бы посоветовал более конкретно формулировать именно имеющуюся проблему, а не свои неудачные попытки её решить. А то в процессе обсуждения выясняется, что вопрос совсем не про то, что написано в вопросе. См. также, что такое XY problem.
  • Как удалить установленный из исходников Perl?

    shurshur
    @shurshur
    Лучше тогда 2>&1 | tee install.log, чтобы и в консоль писало, и в файл; как вариант, использовать screen с включённым логгированием.
  • Как сделать так, чтобы бот выдавал роль всем, кто нажмёт на кнопку?

    shurshur
    @shurshur
    Код надо вставлять текстом, а не картинкой, см. правила сайта.

    В Discord есть понятие interaction, которое производится не со всеми, а с конкретным пользователем. Так что никак.
  • Могу ли отнести машину к двум доменным зонам в debian?

    shurshur
    @shurshur
    Vano01rus, что значит "понимало разные доменные зоны"? По полному имени любой хост в DNS находится без проблем.
  • Как в коде php вызвать html или js?

    shurshur
    @shurshur
    Starvings, для того, чтобы пользователь получил что-то на текущей странице в ответ на свои действия, надо реализовать реакцию на его действия на js (в виде, допустим, обработчика события onClick на каком-то элементе), php для этого не нужен.

    Можно в php вывести что-то типа:

    <script>alert('Ляля тополя');</script>

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

    Современный способ состоит в том, что обработчик запроса пользователя вызывается javascript через fetch на URL, который представляет API (к примеру, RESTful-сервис) для обработки этого запроса и возвращает машиночитаемый ответ, который js разбирает и использует для обновления html (точнее, DOM) на фронте. Пользователь остаётся в пределах одной страницы, его действия (нажатия на кнопки и ссылки) приводят к вызову javascript-кода, который без перезагрузки страницы дёргает нужные вызовы API. На js пишут так называемый frontend, а на любом другом языке серверный API-интерфейс - так называемый backend. Сайт фактически превращается в так называемый SPA - Single Page Application.

    Если хочется изучать именно php и не загружать себе голову излишне раньше времени, я бы посоветовал пока обойтись без js и не париться с перезагрузками страницы. В конце концов, тридцать лет с этим прекрасно люди жили и до сих пор живут. Изучать современные подходы к web всё равно придётся, но это сродни изучение математики, начиная сразу с дифференциальных уравнений, пропустив изучение арифметики.
  • Как решить? Проблема в коде?

    shurshur
    @shurshur
    yotonick, это всё говорит о том, что не надо копировать чужой код без понимания, что именно он делает (да, именно так, каждую строчку до последнего символа надо понимать).

    При выполнении запроса надо проверить, что он что-то вернул, и уж потом из его результата что-то брать. Это может вполне даже не быть внештатной ситуацией. Например, пользователь обращается к боту в первый раз, бот обнаруживает, что по пользователю нет данных и явным образом создаёт для него запись в базе, заполняя её значениями по умолчанию. А если запись есть - возвращает данные из неё.
  • Могу ли отнести машину к двум доменным зонам в debian?

    shurshur
    @shurshur
    Vano01rus, resolv.conf - это конфигурация штатного функционала ресолвинга имён в IP. Где и как находятся эти IP, какие у них имена и как они разделены на зоны - неважно. Причём в этом файле можно указать только DNS-сервер (nameserver) и не указывать больше ничего - и всё будет работать.

    Отдельно можно указать в search до 6 (да, есть лимит) суффиксов, которые будут дописываются к имени при поиске. Например, если в search указано foo bar local ru, то ресолвинг имени yandex будет пытаться перебирать yandex.foo, yandex.bar, yandex.local, yandex.ru по очереди.

    Всё это не надо путать с системным hostname, который может быть только один и который к resolv.conf никакого отношения не имеет.

    В сухом остатке: можно сделать какие угодно IP на интерфейсах и как угодно обозвать их в DNS (или даже в /etc/hosts, но это будет работать только в пределах этого хоста), для этого в resolv.conf ничего вообще делать не нужно.
  • Как удалить установленный из исходников Perl?

    shurshur
    @shurshur
    TosterIQ, для начала надо вернуть /usr/bin/perl на штатный perl и никогда больше так не делать. В /usr/bin всё должно быть из пакетов и консистентно, если злоупотреблять ковырянием того, что стоит из пакетов, то обновление системы может превратиться в сложный квест (тут советую обратить внимание на rpm -V, который проверяет контрольные суммы файлов в пакете, правда, не уверен, что для symlink он что-то проверит). Устанавливаемый из исходников софт следует или прописывать в PATH, или в /usr/local/bin (как вариант, в $HOME/bin, если это нужно одному пользователю), или, в конце концов, пользоваться полным путём.

    В данном случае можно удалить просто весь prefix (только отдельно /usr/bin/perl починить не забыть). Просто многие не указывают его, и используется по умолчанию /usr/local, после чего вычистить софт становится сложнее, так как он вперемешку с другим вручную установленным. Установка в отдельный префикс - это неплохая практика - пусть она и создаёт некоторые свои проблемы (необходимость включать много разных каталогов в PATH, необходимость передавать кастомные ключи сборки при использовании самосборных библиотек итд итп).
  • Как добавить embed к пользователю?

    shurshur
    @shurshur
    Coolcat, это обычное preview ссылки. Можно попробовать хоть на гугл дать ссылку и посмотреть, что получится.
  • Почему мой кликер неработает?

    shurshur
    @shurshur
    А что ты хотел, если явно вешаешь действие строго на клавишу Return?
  • Как решить? Проблема в коде?

    shurshur
    @shurshur
    TypeError: 'NoneType' object is not subscriptable

    Так трудно перевести?

    Очевидно же, что запрос из базы ничего не вернул, поэтому взять первый результат не получится.
  • Могу ли отнести машину к двум доменным зонам в debian?

    shurshur
    @shurshur
    В чём проблема? Одно имя указывает на один IP, другое на другой.
  • Возможно ли многопоточное скачивание видео с ютуба через yt-dlp?

    shurshur
    @shurshur
    kaktak255, гугл регулярно ломает скорость в yt-dlp и в нём регулярно пытаются это починить. Поэтому первый очень важный совет - время от времени его надо обновлять.
  • Можно ли перенести контейнер на другой сервер?

    shurshur
    @shurshur
    bengur2, это в любом случае плохое решение. Всё настраивать надо при сборке образа или в инициализирующем сервис скрипте. Все данные, которые нужны скрипту, хранить в локальном каталоге, который через volume прокидывать внутрь. Тогда перенос будет заключаться в копировании данных и запуске нового контейнера в новом месте.

    Собственно, нужно сразу это выучить: docker принципиально предполагает, что контейнер может быть пересоздан в любой момент. Тот же docker-compose пересоздаёт контейнеры при любом изменении параметров безо всяких вопросов. Поэтому проектировать работу с docker надо с учётом этого важного обстоятельства.