Задать вопрос
  • Как перебрать все подкаталоги рекурсивной функцией по заданному условию?

    shurshur
    @shurshur
    kkolorid, можно взять да и попробовать. Но вообще для таких операций не особо важно, будет она выполняться секунду или 10. Больше времени на написание и отладку уйдёт, чем на собственно поиск этих файлов.
  • В чëм сейчас пишут документацию?

    shurshur
    @shurshur
    Если кто не знает, TeX по мнению его автора надо читать как ГРЕЧЕСКОЕ слово.
  • Можно ли использовать цикл for и файл с массивами?

    shurshur
    @shurshur
    Кстати, называть модуль именем встроенного типа не очень разумно.
  • Почему расшаренный принтер не сканирует на втором пк?

    shurshur
    @shurshur
    Да, бывает стороннее ПО, как от производителей сканеров/МФУ, так и универсальное.
  • Возможно ли получить белый IP бесплатно?

    shurshur
    @shurshur
    Есть сервисы типа ngrok, которые позволяют сделать бесплатный проброс. Не супер удобно, зато дёшево и сердито.

    Если провайдер не даёт белого IP, проще держать виртуалку за 100-200 рублей и с неё VPN кидать до домашнего сервера. Заодно будет удалённый доступ домой. В том числе можно иметь виртуалку, ресурсов которой не хватит для тех самых ботов, но хватит для проксирования.
  • Как правильно передать данные?

    shurshur
    @shurshur
    Виктор Таран, я не разраб, я админ. Когда у тебя десятки серверов и регулярно появляются новые, причём у тебя также и десятки админов, которым нужно что-то иногда накатить/поменять, то разворачивание скриптиками превращается в кошмар.

    У нас уже давно есть куча ролей и тасков в ansible, которыми мы управляем инфраструктурой. Когда я пришёл в компанию, админ был всего один и у него конечно же было много скриптиков, которые позволяли удобно создавать/мигрировать зоны на Solaris 10 и ещё много чего сверх того :) Сейчас у нас отдел на 30 человек, из которых 2/3 неизбежно используют ansible (исключая сетевиков, DBA, офисных эникейщиков и начальника), потому что это удобно, надёжно и универсально.

    Вот, например, два таска в роли proxy:

    - name: set_fact nginx_proxy_ports
      set_fact:
        nginx_proxy_ports: { 2775, 2776, 5235, 8443, 4443, 4444, 4447, 5443, 6443, 7443, 9443, 9090, 6250, 6251, 6252, 6253 }
    
    - name: Set selinux ports for nginx
      seport:
        ports: "{{ item }}"
        proto: tcp
        setype: http_port_t
        state: present
        reload: yes
      with_items: "{{ nginx_proxy_ports }}"


    Сколько бы пришлось писать и отлаживать скрипт, который бы сделал то же самое? А ведь ansible не только это сделает хорошо, но также идемпотентно (ничего не сломает при повторном запуске) и корректно упадёт при любой ошибке без каких-либо специальных усилий по обработке ошибок.

    В этой роли 20 тасков, которые за 5 минут превращают свежеарендованную виртуалку в прокси-сервер с правильным конфигом и набором софта (nginx, squid, selinux, логи и logrotate, сертификаты итд). Отдельно у нас суперроль common на 118 правил, которые настраивают sshd, почтовый релей, sysctl, ulimits, selinux, sudo, ntp, logrotate, docker, предустанавливаемый обязательный софт итд итп. Есть роли для установки агента мониторинга, для деплоя нод кластеров kubernetes и mesos, для consul/keepalived/envoy/hdfs/elk... Только что с удивлением узнал, что даже виртуалки через ansible создаются на гипервизорах (нашёл роль vm_create). У нас даже пользователи и DNS через ansible раскатываются... (По пользователям давно обсуждается внедрение LDAP, но админов всё равно придётся иметь в ansible как минимум для внешних серверов, куда LDAP так просто не затянуть, а по DNS обсуждали и вяло тестировали powerdns, чтобы не файлами оперировать, и ни к чему так и не пришли пока, но кстати деплой powerdns через ansible уже есть).

    Я иногда думаю начать использовать ansible и для личных серваков, но сразу становится лень просто потому, что их мало (один дома и два арендованы) и они сильно разные, мне одному их ковырять проще руками. Если бы у меня было их много и на них нужно было бы делать одинаковые вещи, я бы уже давно начал бы писать плейбуки, потому что это лучший способ добиться надёжного и эффективного единообразия без безумных костылей.
  • Параллельно звонок на телефон и IP и обычный?

    shurshur
    @shurshur
    ZOKIDINuz, тогда попросить его чтобы зарегался. Мистических способов связи не существует.

    Как вариант, можно пытаться через сервисы IP-телефонии, но их сейчас в России хорошо так прижали и не факт что будет просто и выгодно...
  • Параллельно звонок на телефон и IP и обычный?

    shurshur
    @shurshur
    ZOKIDINuz, ответ выше хоть и короткий, но правильный. Нельзя на одном устройстве одновременно держать два звонка. Да и зачем это делать тоже непонятно.

    Какая РЕАЛЬНАЯ проблема стоит? Из неё и надо исходить. Если волнует платность обычных звонков, то просто переместиться на звонки в мессенджерах, которые бесплатны. Если волнует расходуемый при таких звонках трафик, то отказаться от звонков через мессенджеры и звонить обычными звонками. Или посмотреть в сторону наличия у своего оператора тарифных опций по безлимитному трафику в мессенджеры (у некоторых такое бывает - или включено в какие-то тарифы, или как отдельная услуга).
  • Как отправлять массово 150 асинхронных запросов в минуту через pool, при этом чтобы была задержка в 150 запросов в минуту?

    shurshur
    @shurshur
    Володимир, самый что ни на есть простой способ - делать sleep (1/150) и запускать очередной асинхронный запрос. Тогда в секунду будет делаться 150 асинхронных запросов.
  • Как правильно передать данные?

    shurshur
    @shurshur
    Виктор Таран, если json не сложноструктурированный, а просто набор фиксированного количества параметров, и хочется файликом, то я бы рекомендовал условный заранее правильно экранированный env-файл, который можно было бы включить через source. Или файл, где параметры построчно указаны, а читается он через read с правильным IFS (если точно известно какие символы не будут встречаться в данных, можно использовать и символ в качестве разделителя вместо переноса строки).

    Но вообще именно для этой задачи (раскатывание каких-то скриптов, настройка каких-то параметров) лучше использовать ansible (если ещё не используется - начать использовать) и нацеливаться на то, чтобы под нужные системы все необходимые таски работали.

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

    shurshur
    @shurshur
    lambardi, бот на самом деле может написать первым, но только при условии, что пользователь подписан на канал, а бот является в этом же канале админом. Но это достаточно специфический сценарий.

    Надо просто привыкнуть к мысли, что слово "рассылка" к Телеграму неприменимо. Если нужно доносить до некоторой аудитории некоторую информацию, то надо просто сделать канал и мотивировать аудиторию на него подписаться.
  • Как создать минимальный телеграм бот?

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

    shurshur
    @shurshur
    При такой постановке вопроса нельзя дать однозначный ответ.

    Есть много способов. Например, можно выполнять служебные запросы с одного сайта на другой для передачи данных (в том числе и не в реальном времени, а время от времени передавать обновлённую статистику).

    Можно настроить доступ одному сайту к базе данных другого. В том числе по сети, если они на разных серверах (для защиты взаимодействия лучше поднять между ними VPN). Можно вообще базу реплицировать.

    В общем, тыжпрограммист, сделай хоть как-нибудь...
  • Почему не доходит сигнал ping?

    shurshur
    @shurshur
    Apache, ну так надо приложить правильную. Непонятно, что такое "перекрёстным проводом".

    И подробное описание где какие адреса и на каких интерфейсах. А то 192.168.2.11 ни о чём не говорит.
  • В чём отличие многопоточности и асинхронности в контексте .NET C#?

    shurshur
    @shurshur
    Безотносительно языка, полезно понимать общие идеи, которые стоят за этими подходами. Многопоточность - это когда "много потоков" - почти что отдельных процессов, но использующих общую память с основным, а асинхронность - когда поток-процесс всего один, но он выполняет разные задачи по очереди с переключениями в моменты ожиданий задачами ввода-вывода или результатов выполнения другой задачи/функции.

    Когда у нас много ввода-вывода и мало процессорной работы, то асинхронность может быть очень эффективна, причём за счёт синтаксических конструкций (async/await) можно писать код очень удобно, наглядно и эффективно. Но любая вычислительная задача, любой синхронный код могут привести к заметным задержкам на выполнение других задач, это недостаток.

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

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

    shurshur
    @shurshur
    Ксения Тимошенко, например, может через crontab или по вызову другой страницы (в том числе GET-запросом) восстанавливать и затем делать GET-запрос. Я бы посоветовал также проанализировать запросы с того же IP, что и сделал POST, возможно, будет сразу заметно, что именно делается. Также посмотреть cron на сервере (если это возможно) и возможно механизмы регулярных запусков задач в самом движке (я в WP не очень, не знаю, есть ли там такое).

    Вообще, я сталкивался, что мошенники свои страницы засовывают, например, в свалку картинок в uploads, где их сложнее заметить. Если целенаправленно поискать там php-файлы, может оказаться, что вредонос быстро найдётся (и обязательно проверить содержание заглушечных index.php, которые должны быть именно заглушками). Кстати, неплохой идеей является настроить так, чтобы в каталогах, где не должно быть php-кода, файлы не выполнялись как код (но придётся повозиться с настройкой).
  • Как найти причину спама у себя на сайте?

    shurshur
    @shurshur
    Ксения Тимошенко, как определено, что виновата именно "та страница"?

    Злоумышленники чаще всего не оставляют один бэкдор. Скорее всего, есть где-то ещё, и не исключено, что даже в бэкап попало.