Задать вопрос
  • Почему bat скрипт не удаляет файлы (запуск из планировщика)?

    @res2001
    Developer, ex-admin
    Проверьте права доступа на i:\sql\base, для пользователя под которым работает батник из шедулера.
    Полезно, чтоб батник писал лог, ошибки каждой команды перенаправляйте в лог, например так:
    sel "LOG=%~dpn0.log"
    1>nul 2>>"%LOG%" del /f /q I:\SQL\base\base*
    Ответ написан
    24 комментария
  • Быстрый ввод с устройств(клавиатура, мышь) в windows?

    @res2001
    Developer, ex-admin
    Видимо, вас устроит только собственный драйвер.
    Ответ написан
    Комментировать
  • Что контролировать на шлюзе в части безопасности zabbix-ом?

    @res2001
    Developer, ex-admin
    На счет безопасности ОС - это, видимо, не к Забиксу.
    Для контроля целостности ОС можно воспользоваться чем-нибудь типа aide или подобной утилиты - по крайней мере узнаете не слишком поздно, что вас сломали.
    Закрытый фаервол, авторизация ssh по ключу, бэкап - как-то все мимо забикса проходит :)
    Ответ написан
  • Как подсунуть регулярку в командную строку ВИНДЫ?

    @res2001
    Developer, ex-admin
    Кроме выше описанного по регуляркам в findstr, символ | - служебный символ в cmd, его нельзя использовать не экранируя. Обычно в батниках его можно экранировать так: ^|
    Ответ написан
    Комментировать
  • Мигает экран Windows 10. Слежка?

    @res2001
    Developer, ex-admin
    Возможно пытается включиться скринсейвер, но по какой-то причине не может этого сделать, вот экран и моргает.
    Видел такое несколько раз, в основном связано с левыми скринсейверами, установленными отдельно от системы. Один раз - просто не было исполняемого файла скринсейвера.
    Ответ написан
    Комментировать
  • Как хранить разные версии для каких-либо данных в БД?

    @res2001
    Developer, ex-admin
    Все аттрибуты сущности храните не в таблице с сущностью, а в отдельной таблице, в которой дополнительно заводите поля: id сущности, ATTR - код аттрибута, DATEBEG - дата начала действия аттрибута, DATEEND - дата конца действия аттрибута.
    При добавлении аттрибута, старый не удаляется, а просто изменяется его DATEEND, и добавляется новая запись аттрибута с DATEEND=null.
    Таким образом, вы будете иметь всю историю изменений аттрибутов и можно легко откатиться на любую версию каждого конкретного аттрибута или всех аттрибутов какой-либо сущности.
    Т.к. аттрибуты могут быть разных типов, то можно реализовать двумя способами:
    1. 1 таблица для аттрибутов одной сущности, в которой содержаться поля для хранения значений аттрибутов всех типов. При этом заполняется только необходимое поле, остальные остаются null;
    2.Несколько таблиц для аттрибутов одной сущности, по одной таблице на каждый тип данных аттрибута. Структура таблиц одинакова (возможно за исключением названия поля для значения аттрибута).
    В жизни видел обе реализации, вполне приемлемо работают обе. Возможно в первом варианте будет небольшой перерасход дискового пространства за счет не используемых полей и индексов. Реализация в обоих случаях похожая.
    Ответ написан
    Комментировать
  • Что означает открыть/закрыть соединение и почему это операция дорогая?

    @res2001
    Developer, ex-admin
    1.Потому что, как правило, при этом идет обмен по сети, а это долгая операция (она в любом случае дольше, чем если бы и клиент и сервер были бы на одном компьютере).
    2.На открытие сетевых соединений (и соединений с БД) тратится определенное количество системных ресурсов. Если у вас сервер, на каждый запрос открывает новое соединение с БД, то при определенном количестве запросов, посланных в короткий промежуток времени ваш сервер либо упадет, либо перестанет подключать новые соединения (возможно первым упадет сервер БД). То количество соединений, которое может одновременно обработать сервер обычно зависит от количества памяти. Но бороться с DOS атаками путем увеличения памяти сервера - глупое занятие.
    3.При закрытии сетевого соединения сначала нужно разорвать его с удаленной стороной (если это TCP), а это то же генерирует сетевой трафик. Затем освободить системные ресурсы, связанные с этим соединением.
    Ответ написан
    Комментировать
  • Как удалить драйвер чипсета из файловой систеиы на Windows 7?

    @res2001
    Developer, ex-admin
    Попробуйте запустить sysprep и в нем сбросить настройки.
    Обычно он лежит тут: %WINDIR%\system32\sysprep
    Ответ написан
  • Как перенести файлы bat файлом?

    @res2001
    Developer, ex-admin
    Move /y C:\Skripts\*.* "\\192.168.0.21\C$\scrin\%username%\"
    Ответ написан
  • Почему намертво зависает компьютер?

    @res2001
    Developer, ex-admin
    Возьмите любой live носитель с набором тестов железа и тестируйтесь до полного просветления.
    Можете взять этот: adminpe.ru
    Судя по описанию проблемы - это не жесткий диск. Хотя и не факт. Возможно у вас несколько проблем. Жестяк то точно уже при смерти.
    Ответ написан
    Комментировать
  • Как правильно организовать цикл?

    @res2001
    Developer, ex-admin
    Для перенаправления используй >>
    Но в этом случае будут писаться все строки из recipes.txt
    Ответ написан
  • Как решить задачу с массивом NxN?

    @res2001
    Developer, ex-admin
    0.Оформление кода жуткое, не читабельно совсем.
    1.Выделяйте память сразу для всего массива размером b*c - не зачем дробить каждую строку. Обычно динамическое выделение памяти достаточно дорогостоящая процедура (сейчас то вам это не принципиально).
    2.Забудьте про оператор goto. Единственное место, где его оправданно использовать это выход из глубоких вложенных if или циклов, но даже это можно решить другими способами, правда обычно более затратно, чем goto. В данном случае у вас он используется правильно, но ведь есть break для вашего случая, а это гораздо лучше, чем goto.
    3.В общем и целом у вас почти все верно. Но:
    Строка 80 явно лишняя:
    int g[i];
    Т.к. вы объявляете g[] выше. И кстати выше (в 71 строке) объявляете его не правильно, т.к. переменной e не присвоено никакое значение к моменту ее использования.
    4.В последнем цикле вы видимо пытались сделать сортировку - не получилось. Попробуйте еще раз. И нужно сначала отсортировать, а потом вывести. По другому не получится.
    Возможно вам придется сделать g[] не массивом intов, а массивом структур, где в каждой структуре будет содержаться "сумма четных отрицательных элементов каждой строки" и в другом элементе структуры - индекс строки. Сортировать нужно будет массив структур по сумме.
    5.Про остальное писать не буду, т.к. на решение задачи не влияет.

    Желаю удачи!
    Ответ написан
    6 комментариев
  • Что изучать для написания своего кроссплатформенного приложения?

    @res2001
    Developer, ex-admin
    Stdlib, boost, Qt
    Ответ написан
    Комментировать
  • Почему ошибки красные в статусе MariaDB?

    @res2001
    Developer, ex-admin
    Смотрите на содержание, а не на цвет.
    Видели когда-нибудь "синий экран смерти" в винде - там вполне приличным белым по синему обычно написана информация о крахе системы.
    Ответ написан
    Комментировать
  • Как расставить скобки в выражении всеми возможными способами? какова сложность оптимального алгоритма?

    @res2001
    Developer, ex-admin
    Для вашего случая результаты выражения будут различаться от варианта без скобок, только если меняется приоритет операций. Т.е. (1+2)-(3*4) - не дает уникального результата, а (1+2-3)*4 - дает.
    Итого - надо ставить закрывающую скобку перед знаком * или /, а открывающую скобку перед каждой предыдущей операцией.
    Кроме того - когда расставите скобки, нужно брать выражение в скобках и рекурсивно прогонять его по алгоритму, таким образом расставите и вложенные скобки до тех пор пока внутри скобок не окажется простое выражение типа a+b, где уже ничего не поставить.
    Ответ написан
    Комментировать
  • Как в FreeBSD вывести подключенные IP?

    @res2001
    Developer, ex-admin
    Не очень понятен вопрос, но, возможно, ifconfig вам поможет.
    Ответ написан
    Комментировать
  • Как написать скрипт?

    @res2001
    Developer, ex-admin
    Тут основная проблема не "в пройти рекурсивно", а как вычислить файлы за прошлый месяц.
    На похожий вопрос отвечал недавно тут.
    Для вычисления файлов на удаление воспользуйтесь этим советом, в вашем случае N будет 30 или 31. Но если нужно именно за прошлый месяц, а не N дней назад, то уже будет сложнее.

    На счет пройти рекурсивно - очень просто:
    for /f "tokens=* delims=" %%a in ('dir /s /b /ad "Один" "Два" ') do (
    echo.%%~a
    dir %%~a\*
    )
    Ответ написан
    Комментировать
  • Как организовать обновление юзеров LDAP на лету в squid?

    @res2001
    Developer, ex-admin
    Измените значение ttl. Сейчас у вас кэшируются ответы на 1 час (3600 сек.).
    Ответ написан
    1 комментарий
  • TCP/IP: что делать, если в процессе чтения сервером пакета от клиента пропадает интернет?

    @res2001
    Developer, ex-admin
    В общем целиком поддерживаю Smithson и Олег Цилюрик
    Проверяйте коды ошибок, возвращаемые методами передачи/приема. При работе с сетью всегда нужно закладываться на то, что передача или прием пройдет с ошибкой или будут приняты/переданы не все данные.
    Т.е. фактически вы должны писать программу исходя из того что ошибки приема/передачи не то что возможны, а они точно будут всегда.
    И да, кастомные keep-alive для TCP - это полная фигня - в протоколе уже все реализовано.
    Ответ написан
    5 комментариев
  • Как пересоздать профиль RDP (2012R2)?

    @res2001
    Developer, ex-admin
    Причина скорее всего в том что диск/каталог где лежит профиль пользователя не доступен или нет прав. Еще как вариант - в профиле сломался реестр пользователя, но в этом случае винда обычно пытается его починить.
    Посмотреть где лежат локальные профили пользователей можно тут:
    HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ProfilesDirectory
    Обычно это c:\Users, но могут быть и другие варианты. Права на этот каталог должны быть стандартные - конкретно можно посмотреть на любой нормально работающей машине.
    В ветке реестра HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList найдите подраздел с SIDом проблемного пользователя (так же нужный SID можно определить по параметру ProfileImagePath в котором находится полный путь до профиля пользователя).
    Далее по параметру ProfileImagePath смотрите доступен ли профиль, есть ли у пользователя права на этот каталог.
    Если с виду все нормально, то удалите каталог с профилем пользователя, указанный в его ProfileImagePath (так же можно переименовать, если он вам дорог), а так же удалите целиком раздел с SIDом пользователя из HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList.
    Этими действиями вы полностью удалите профиль и винда при следующем входе пользователя начнет создавать профиль заново.

    Т.к. у вас доменный пользователь, то в политиках домена может быть указано другое расположение пользовательского профиля, например в сети. Тогда нужно убедиться, что есть доступ к сетевому серверу, содержащему профиль пользователя. Действия в принципе все те же самые, только расположение профиля будет в сети.
    Ответ написан
    8 комментариев