• Как сделать в Bat-нике при нажатии 1 действие, при втором нажатии 2 действие?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Соедините в один командный файл.
    @ECHO OFF
    IF EXIST C:\display.1536.info GOTO :D1920
    DEL C:\*.info
    nircmd.exe setdisplay 1536 1080 32
    ECHO %date% %time% > C:\display.1536.info
    GOTO :END
    :D1920
    DEL C:\*.info
    nircmd.exe setdisplay 1920 1080 32
    ECHO %date% %time% > C:\display.1920.info
    :END
    Ответ написан
    1 комментарий
  • Ошибка отправки электронной почты. Linux. Sendemail.?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Да, всё так. В ошибке на нижней строчке всё подробно описано.
    Ответ написан
    3 комментария
  • Возникает ошибка "Заполните все поля". Все заполнено. Что не так с кодом?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вам надо переместиться из мира фантазий в реальность.
    В мире фантазий у вас "всё заполнено". Но суровая реальность говорит об обратном.
    Поэтому первым вашим действием должно быть принятие реальности.
    А вторым - проверка своего безупречного кода.

    Например.
    Обычно эту бессмысленную фразу выводят примерно таким говнокодом:
    if (empty($_POST['pole1']) || empty($_POST['pole2']) || empty($_POST['pole3'])) {
        die("Заполните все поля");
    }

    Для того, чтобы разобраться с этой неразрешимой проблемой, вам понадобится немного логики.
    Я уверен, вам вполне по силам сделать умозаключение вида, "Если этот код выводит ошибку, то как минимум одно из полей содержит пустое значение".
    Сделав такой логический вывод, его следует проверить.
    Например таким кодом:
    var_dump($_POST['pole1'],$_POST['pole2'],$_POST['pole3']):

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

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    В приципе, в комментариях уже всё разжевали, но на всякий случай
    Выполняем простой код
    var_dump("{\"order_id\":\"FACTPRECHR152632\",\"amount\":\"8300.00\"}");
    var_dump('{\"order_id\":\"FACTPRECHR152632\",\"amount\":\"8300.00\"}');

    и смотрим на результат

    после этого выполняем ещё один простой код
    $json = json_encode(["order_id"=>"FACTPRECHR152632", "amount"=> "8300.00"]);
    var_dump($json);
    var_dump(addcslashes($json, '"'));

    смотрим на результат
    сравниваем его с предыдущим

    И после этого идем с вопросами к тому, кто придумал написать здесь addcslashes
    Ответ написан
    Комментировать
  • Как заблокировать доступ к ресурсу для конкретного региона?

    @Everything_is_bad
    Недавно проверял состояние сервера и заметил в логах много неудачных попыток входа на сервер (В основном через ssh)
    ну как первый раз в интернет вышел, уже сто лет такое, ssh вообще постоянно долбят, ставишь fail2ban, а еще лучше меняешь дефолтный порт и ставишь логин только по ключу. А регион блокировать, так себе идея.
    Ответ написан
    9 комментариев
  • Как ускорить процесс загрузки файлов в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорость канала на сервере — 200 Мбит/с
    Вангую что это скорость на выход, на вход будет совершенно другая скорость, не указанная в рекламном буклете, или написанная где-то под звездочкой оооочень мелким шрифтом.
    Есть вероятность что в вебсервере стоит ограничение на скорость загрузки на клиента, но это можно выяснить и через просмотр конфигов, если таковые доступны.

    Что делать?
    1) Пнуть провайдера и спросить про скорость аплоуда.
    2) Если молчат - проверить самостоятельно, например замерить скорость загрузки файла курлом.
    3) Проверить загрузку через фтп/сфтп
    4) Много думать, ругаться с провайдером
    5) Профит
    Ответ написан
    Комментировать
  • Отказоустойчивость на уровне контроллеров СХД через multipath?

    @SunTechnik
    Multipath - способ подключения Одного клиента к Одному устройству несколькими путями.

    Пункт 1. Не будет работать ни на разных контроллерах ни на одинаковых. ( В теории, у broadcom есть/была фича - cluster, когда набор дисков разделялся между двумя raid-контроллерами. Но при этом отключались кэши. В живую такие контроллеры не видел. Без кэшей - нафиг не надо).

    2.Raidix - платный софт по построению raid массивов. Презентовать блочное устройство можно и через обычный scsi-target.
    Multipath - это совсем не о том.

    3. Raid контроллер можно перевести в режим jbod и увидеть просто набор дисков.
    Из них можно собрать raid. (zfs и еще куча способов. Сборки для NAS)
    А вот построить из этого дела отказоустойчивый кластер, да с приличной производительностью - не тривиально.
    Собственно это решение и продает raidix но оговаривая на каком оборудовании они это проверяли, так как там граблей раскинуто - куча..
    Ответ написан
    Комментировать
  • Как выйти из двух пользователей в Linux, и при этом выполнить команду один раз?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    И не будет, ведь такая команда будет исполняться в одном shell, а не в двух разных. После первого exit дальше уже всё, остаток будет проигнорирован.

    Способы есть:

    1. Из суперпользователя убить shell пользователя. Некрасиво и неудобно, но закроет оба шелла.

    2. Переключение в суперпользователя оформить сразу с выходом, тогда выход из внутреннего сделает выход и из внешнего, например:

    sudo -i; exit

    Недостаток - если не удастся правильно ввести пароль - сразу же и выкинет. Ну, можно поразбираться с кодами возврата, чтобы не делать exit.

    3. Вместо предыдущего можно сделать exec, тогда запускаемая команда заместит текущий shell, а не будет запущена как дочерний процесс:

    exec sudo -i

    Недостаток тот же - если не ввести правильно пароль, то выкинет.

    Но в целом я не вижу во всём этом смысла. Выход можно делать комбинацией Ctrl-D. Нажать дважды Ctrl-D ничто не мешает, это даже удобнее.
    Ответ написан
    2 комментария
  • Можно ли разветвить патч корд на 2 wifi роутера?

    vabka
    @vabka
    Токсичный шарпист
    Провайдер тебе даёт всего 1 IP адрес, по тому именно разветвить тебе не получится, как ни старайся (как правило)

    Вставляй кабель от провайдера в wan-порт первого роутера.
    От первого роутера потом тащи кабель до второго.
    Второй роутер переведи в режим точки доступа.

    Таким образом за маршрутизацию и поддержание локальной сети будет отвечать первый роутер.
    Второй будет выполнять лишь роль коммутатора и точки доступа к этой сети.

    (сделано допущение, что "роутером" названо домашнее устройство с функциями маршрутизатора и wifi-точки доступа)
    Ответ написан
    Комментировать
  • Каков уровень надежности подключения SSD дисков по NVMe?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    строго говоря - такой же среднестатистический, как и по всей больничке ;)
    Ответ написан
    Комментировать
  • Ошибка при использовании grep на сервере?

    fzfx
    @fzfx
    18,5 дм
    У меня стойкое ощущение, что ваш греп залип на работе с каким-то устройством или FIFO-буфером. Можете попробовать добавить параметр --devices=skip, чтобы пропускать (игнорировать) всё, кроме файлов и симлинков.
    Ответ написан
    1 комментарий
  • Объясните пожалуйста как работает пинг?

    @SunTechnik
    Ping замеряет время прохождения пакета от Вас до точки назначения и обратно.

    По пути пакеты передаются от одного маршрутизатора - другому.
    Примерный путь от Вас до точки назначения можно оценить с помощью команды traceroute/ tracert.

    Каналы между маршрутизаторами имеют разную скорость, загрузку, разную величину задержки.

    Маршрут между маршрутизаторами выбирается по множеству критериев, из которых близость - далеко не основной.

    Основной - скорее цена канала и его загрузка.

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

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

    hint000
    @hint000
    у админа три руки
    sudo netstat -upnc | grep ":161 \|:162 "
    161\UDP и 162\UDP - это порты, которые использует SNMP
    здесь sudo требуется, чтобы увидеть информацию о процессах, без sudo команда показывает остальную информацию, кроме номеров и имён процессов.
    -с нужно для постоянного обновления, т.к. на момент запуска может не быть трафика по указанным портам; прерываете команду, когда заметите полезный вывод.
    пробел после 161 и 162 нужен, чтобы не было мусора в выводе.
    Ответ написан
    Комментировать
  • Как в linux запускать скрипт только после перезагрузки?

    @pfg21
    ex-турист
    создаешь сервис анонса и в нем прописываешь в параметре After сервисы, запуск которых необходимо ждать, через пробел
    After= ... that the listed unit is fully started up before the configured unit is started.

    к примеру
    After=Apache.service
    и тогда сервис анонса запустится только после запуска Apache.service

    тип прописываешь однократный запуск
    Type=oneshot
    в ExecStart прописываешь строчку исполнения для отправки анонса
    и ок
    Ответ написан
    5 комментариев
  • Nginx возвращает 404 при запросе на существующий маршрут. Что делать?

    smilingcheater
    @smilingcheater
    location /{                                                                                                             
        try_files $uri $uri/ =404;

    Вы говорите NGINX'у - попробуй сначала запрошенный урл, потом его же со слешем, потом выдай 404. NGINX делает точно то, что вы сказали.
    Если у вас собранное реакт-приложение, то скорее всего у него точка входа index.html
    Замените указанное правило на
    location /{                                                                                                             
        try_files $uri $uri/ /index.html;

    тогда по запрошенному (но не существующему реально на файловой системе) урлу /poll вам вернутся содержимое Index.html, и запустится реакт, и реакт-роутер обработает указанный урл.

    https://nginx.org/en/docs/http/ngx_http_core_modul...
    Ответ написан
    1 комментарий
  • Как запретить вход на сайт по ip через nginx?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Слушать порт не для 0.0.0.0, а только для localhost
    Ответ написан
    Комментировать
  • Возможно ли закрыть папку паролем, но разрешить доступ без пароля с определенных ip?

    @dodo512
    Директива Satisfy по умолчанию All. Если переключить на Any, то будет поведение как нужно.
    Например, IP 192.168.1.2 и файл паролей /var/www/.htpasswd
    AuthType Basic
    AuthName "Restricted Resource"
    AuthUserFile /var/www/.htpasswd
    Require valid-user
    
    Order Allow,Deny
    Allow from 192.168.1.2
    
    Satisfy Any


    В Apache 2.4 есть <RequireAll> и <RequireAny>
    https://httpd.apache.org/docs/2.4/howto/auth.html#...
    By default all Require directives are handled as though contained within a <RequireAny> container directive. In other words, if any of the specified authorization methods succeed, then authorization is granted.

    По умолчанию для всех Require используется <RequireAny>.
    AuthType Basic
    AuthName "Restricted Resource"
    AuthUserFile /var/www/.htpasswd
    
    Require valid-user
    Require ip 192.168.1.2
    Ответ написан
    Комментировать
  • Ошибка при скачивании pdf-файлов, как исправить?

    Vindicar
    @Vindicar
    RTFM!
    Легко проверить. Ты делаешь:
    url = "https://file.11klasov.net/index.php?do=download&id=16985" # замените на URL файла, который вы хотите скачать
    response = requests.get(url)

    Затем посмотри атрибут response.history, и ты увидишь там два ответа: [<Response [302]>, <Response [301]>]. Все коды 3XX - это перенаправления, т.е. сайт тебя перенаправляет на другую страницу, вместо того, чтобы отдать контент.
    Итог этих перенаправлений можно узнать из response.url, который будет равен
    'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'

    Т.е. сайт задетектил бота, и отправил тебя на страницу учебника. Так обычно борятся с хотлинкингом, когда кто-то ставит прямую ссылку на файл на твоём сайте.
    Также можно проверить response.headers['content-type']. Он будет 'text/html; charset=utf-8', т.е. это HTML страница а не PDF файл. Разумеется, если ты HTML страницу запишешь в файл с расширением .pdf, она от этого не станет валидным PDF.

    Обычно проверяются две вещи: User-Agent и Referer. Первый описывает браузер пользователя, второй - с какой страницы был переход по этой ссылке. Но для данного сайта, похоже, достаточно добавить только Referer вот так:
    response2 = requests.get(url, headers={
        'referer': response.url,  # ну или 'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'
    })

    То получишь желаемое - response2.history будет пустой, а response2.headers['content-type'] будет равен 'application/pdf'.

    С учётом этого можешь поправить свой код, чтобы он детектил редирект и делал второй запрос с заголовком Referer.
    Ответ написан
    Комментировать
  • Как пустить трафик контейнера1 через контейнер2 в proxmox?

    @Drno
    включить на нём NAT, и указать его шлюзом для другого контейнера
    Ответ написан
    Комментировать
  • В чем отличие ngnix от golang?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ну раз с фронта пересели, то аналогию понять должны: В чëм отличие Google Chrome от JavaScript?
    Ответ написан
    3 комментария