• Как настроить авторитативный сервер DNS?

    hint000
    @hint000
    у админа три руки
    Кеширующий сервер висит на порту 53 и все неизвестные запросы отправляет на сервера forwarders, а все запросы к основной зоне - на авторитативный сервер на порту 5353
    В том и проблема, что на внешний запрос у вас отвечает не авторитативный сервер, а кеширующий. Ответ от кеширующего не может считаться авторитативным.

    Нужен непосредственный доступ извне к авторитативному серверу.
    Ответ написан
    9 комментариев
  • Как работает двойное тире "--"?

    karabanov
    @karabanov
    Системный администратор
    man bash

    -- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments. An argument of - is equivalent to --

    Сообщает, что опции у запускаемой команды закончились и дальше будут только позиционные аргументы, характерный пример использования найти подстроку -v с помощью grep в текстовом файле: grep -- -v file.txt, если не добавить --, то grep воспримет -v, как свою опцию, а не подстроку для поиска.

    Это способ корректно обработать управляющие символы не прибегая к "понапихать кучу апострофов и кавычек в несколько слоев".
    Ответ написан
    2 комментария
  • Как через cmd можно удалить любой файл в автозагрузках?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    for /F "skip=2 tokens=2*" %j in ('reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Startup"') do set STARTUP="%k"
    for /F "tokens=3*" %j in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do set COMMONSTARTUP="%k"
    
    cd %STARTUP%
    cd %COMMONSTARTUP%
    Ответ написан
    Комментировать
  • Как лучше всего хранить многострочный текст в .cmd или .bat файле?

    wisgest
    @wisgest
    Не ИТ-специалист
    Вкратце (возможно, когда-нибудь дополню ответ, если вспомню какие либо тонкости и соберусь с силами).

    Чтобы разбить команду на несколько строк надо в конце каждой строки добавить символ ^. Если после него будет идти пустая строка, то в команду будет вставлен перевод строки.

    Пример.
    echo ^
    Hello,^
    
        world!

    выведет
    Hello,
        world!

    Если использовать отложенное раскрытие переменных, то можно вывести текст, сохранённый в переменной:
    setlocal enabledelayedexpansion
    set A=^
    Hello,^
    
      world!
    echo !A!

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

    Ещё можете посмотреть тему CMD/BAT: Возможность создания heredoc. Также, например, в теме CMD/BAT: Пакетные макросы с параметрами рассматривается создание переменных (CR и LF), содержащих символы перевода строки и возврата каретки:
    spoiler
    :: Определяет переменную ВОЗВРАТ КАРЕТКИ (используется как !CR!)
    for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
    
    :: Определяет переменную ПЕРЕВОД СТРОКИ (используется как !LF!)
    set LF=^
    
    
    :: Две пустые строки сверху важны - не удалять!
    Ответ написан
    Комментировать
  • Как сделать в 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
    Ответ написан
    Комментировать