Ответы пользователя по тегу Системное администрирование
  • Настроить wake on lan для AnyDesk?

    @rPman
    Могу дать совет немного вбок, но который поможет разрулить подобные ситуации.

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

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

    Затем в свойствах сетевого адаптера нужно включить - разрешить выводить устройства из режима сна.

    И любой сетевой пакет по его mac адресу будет включать компьютер. связь MAC адреса и его IP проводит любой роутер и свитч автоматически. Как минимум я долго не мог понять. почему при запуске keepass выходил из сна один из компьютеров в сети (оказалась какая то библиотека слала сетевой пакет всей локальной сети, зачем, хз).

    Чтобы не надеяться на upnp (его правила по таймауту могут сброситься, правда как долго, сутки недели я хз), можно вручную прописать перенаправление портов (ip адрес смотри в настройках anydesk или документации).

    p.s. недостатки, windows машины не принадлежат пользователю, и по желанию майкрософт выводит windows машину из сна (это происходит по ночам, не часто) чтобы установить какое-нибудь обновление или пошпионить.
    Ответ написан
    Комментировать
  • Как создать свой образ Linux для размноживания на других АРМ?

    @rPman
    Настраиваешь pxe загрузчик по сети, прописываешь в default минимальный образ системы (я создавал такие с помощью debootstrap) с единственным скриптом в автозапуске (служба или в сохраненным для совместимости /etc/init.d) который отформатирует диск с помощью parted и копированием, либо восстановит образ, созданный заранее с помощью той же clonezilla (она показывает команду, с помощью которой идет восстановление), в общем на выбор, он же добавит специфические для машин моменты (например на основе mac адреса сетевой карты)

    Настоятельно рекомендую использовать этот подход (или тот что с помощью livecd) только для однократного первичного распространения машин. Дальнейшая поддержка должна осуществляться уже не копированием оригинала, а обновлением, на основе скриптов того же ansible.
    Ответ написан
    Комментировать
  • Какое можно использовать клиент-серверное приложение видеоконференции p2p?

    @rPman
    jitsi meet - не p2p но серверную инфраструктуру запускают у себя. Между клиентами связь прямая. На основе webrtc
    Ответ написан
  • На каком виртуальном сервере процессор мощнее?

    @rPman
    Во первых, виртуальные серверы не подходят для числодробилок (исключение - использование GPU или других сопроцессоров типа FPGA, там обычно они делятся по честному), потому что физический сервер будет разделен между несколькими пользователями, и даже если ты наберешь тарифным планом максимальное количество процессоров/ядер, часть ресурсов (для серверных - 3-5%, а для десктопных железок до 10-30% в очень специфических случаях) будут тратиться на обслуживание виртуализации.

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

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

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

    p.s. тебе верно советуют, не смотреть на гигагерцы.
    Все очень зависит от того как и какая задача запускается. Оптимизация кода, выбор архитиктуры (например 32-битная на 64-битной будет работать по другому, где то хуже где то лучше), глобальные параметры (размеры буферов пакетной обработки, количество запущенных воркеров/потоков, настройки кеширования и тюнинг файловой системы ос или выбор конфигурации хранилища,..). Это вопрос исследования, и только эксперименты могут дать какой то адекватный ответ. Еще раз - тестируй на реальном железе.
    Ответ написан
    Комментировать
  • Поможет ли переустановка Windows при bad блоках на жестком диске?

    @rPman
    BAD блоки это - диск в мусорку.

    Существует мизерный шанс, что новые сбойные сектора не будут появляться (повторяю, этот вариант почти нереален), в этом случае необходимо протестировать диск chkdsk с ключом /r (проверка поверхности), например из консоли восстановления (доступна на установочном диске, выбирай восстановление системы и выбирай запуск консоли), сбойные сектора будут помечены.

    Затем при установке системы нужно выбрать этот диск и не форматировать его.

    p.s. не занимайся садомаза, выброси сломаный диск и купи новый, время, нервы и потерянные данные этот диск тебе не сэкономит
    Ответ написан
    Комментировать
  • Есть ли реальная необходимость использовать Git LFS?

    @rPman
    Мое мнение - абсолютно бесполезен (из-за особенностей реализации и избытка функционала).

    Главная фича git и других систем контроля изменений - это контроль за изменениями, возможность быстро откатиться к нужной версии, мержить версии, переносить изменения из одной ветки в другую и т.п. и все заточено на работу с текстом. большие файлы - это про бинарные или не редактируемые данные. Даже sql дампы таким образом адекватно не будут обработаны (пример - добавлена колонка)

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

    git-lfs работает очень не эффективно, банальный git clone репозитарием из 20-гигабайтовых файлов требует сравнимый объем оперативной памяти, потому что там на любой файл идет diff/patch, что бессмысленно для бинарных файлов в подавляющем большинстве случаев.
    Ответ написан
    Комментировать
  • Варианты объединения двух мониторов в один виртуальный?

    @rPman
    В пределах одного физического компьютера, объединить несколько мониторов в один виртуальный рабочий стол с возможностью запускать одно приложение, расширенное на них.

    Я нашел упоминание о лимите в 10 мониторов у win10 но этот лимит исключительно в штатном интерфейсе и с помощью сторонних приложений его можно обойти, с ходу не нашел как и какой там максимум.

    В linux как я понял лимит на количество мониторов xorg сервера 16

    Но есть другая проблема - в генерации этого контента, я встречал упоминание лимита в 8к пикселов по любой оси, т.е. ты можешь поставить 10 мониторов в ряд в линию, но суммарное разрешение не должно превышать 8к (точнее, как я понял речь идет о 7680). Т.е. если приложение должно быть готово генерировать контент сверх этого лимита, выделяя к примеру по окну (возможно даже в своем virtual desktop с точки зрения win32) на каждый кусок изображения или вообще в оперативной памяти по своим правилам.

    Если у тебя несколько независмых машин, то тебе придется городить какое то удаленное управление. Настоятельно рекомендую запилить свой софт, используя к примеру nvidia remote play (я могу ошибаться с названием, там маркетинг заполонил интернет мусором), когда ты пишешь приложение и его окно или часть транслируется по сети по сети с минимальным лагом, машины, которые это будут проигрывать могут быть максимально простые (формально можно запилить веб клиент под браузер (или приложение) для smart tv и это окажется дешевле чем собирать из мониторов и полноценных pc монстра.

    Точно помню были библиотеки для microsoft rdp, когда ты транслируешь часть экрана виртуального рабочего окна на удаленную машину, т.е. ты можешь запустить сразу несколько трансляций на разные машины, где мониторы объеденены в большой экран до лимита . Само собой libvnc то же самое позволит.. ну тут вопрос в предельно допустимых лагов и возможностей сетей.

    Ну и конечно есть специализированные железки, которые позволяют собирать огромный экран из любого количества модулей, со своими механизмами поставки контента и забористыми ценами.
    Ответ написан
  • Программный Raid 5 + nwme cache?

    @rPman
    bcache отлично работает, как в режиме кеша только для чтения так и как дополнительный буфер для записей (writeback)
    и это лучший способ способ сожрать ресурс записи ssd диска

    у меня так на очень дешевых комплектующих работала следующая схема linux сервер, специально выделенные медленный hdd + 250гб ssd диск в качестве кеша, полученный ускоренный раздел публикуется с помощью iscsi по гигабитной сети, его монтирует windows машина и на этом диске размещены игрушки (ark будь он неладен 400гб с еженедельными обновлениями по 50-100гб), чуть больше чем за год сожрал 250тб ресурса. Итоговая скорость запуска была примерно в 3 раза быстрее чем если hdd подключить напрямую к windows машине.
    Ответ написан
    2 комментария
  • Как правильно расставить права на файлы и директории сайта на VPS?

    @rPman
    Первое число - права для владельца, второе число - на группу, третье - для всех
    5 и 7 отличаются от 6 и 4 тем что там установлен бит x - executable, его нужно ставить на каталоги, но на файлы не обязательно (их ставят на скрипты и бинарники, которые нужно запускать, и в случае скриптов это не обязательное условие, просто запуск +x файлов возможен просто указанием файла /path/file)

    5 - права на чтение и запуск, 7 - права на чтение+запись и запуск, 4 - права только на чтение, 6 - права на чтение и запись.

    скорее всего у тебя по каким то причинам на скрипты твоего бакэнда требуется +x флаг, у тебя там cgi?
    почему у тебя работает? потому что ты ставишь 5 на всех пользователей.

    Веб сервер работает от пользователя www (или apache или http что там у тебя настроено) а файлы ты скорее всего заливаешь от пользователя root или какого ты создал пользователя для работы

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

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

    Правильное решение, грамотно и вдумчиво настроить права доступа, веб сервер должен иметь доступ только на чтение (и на запуск, если этого требует твой бакэнд), еще можно вынести настройки базы данных в какой-нибудь сервис их хранения чтобы простым доступом к файлам этот пароль вытянуть было нельзя. Есть еще практики, запускать веб сервис в chroot/docker с сильно кастрированным окружением, буквально без bash и различных утилит, только веб сервер (помню для ftp точно такие настройки были), следующий этап подписывание скриптов и бинарников с запретом запуска неподписанных, это еще сложнее но повышает уровень безопасности очень высоко.
    Ответ написан
    1 комментарий
  • Какие программы подойдут для резервного копирования клиентских ПК с медленной сетью и большим объемом данных?

    @rPman
    Я помню для машин на windows7 использовал bat-скрипт (он уже не подойдет для win10) который делал примерно то же самое, создавал теневую копию копируемого диска, запускал rsync, который для дубликатов на основе предыдущего копирования создавал символические ссылки.
    rsync -avh --link-dest=previous_backup/ source_directory/ new_backup_directory/

    source_directory/ - это каталог, который нужно скопировать.
    new_backup_directory/ - это каталог, в который будет создана новая резервная копия.
    previous_backup - это предыдущий каталог резервного копирования. rsync будет создавать символические ссылки на файлы в этом каталоге, если они не изменились.

    rsync можно брать как нативный виндовый так и использьзовать linux через wsl, рекомендую нативный (который на основе mingw)

    По поводу работы с этим по сети, лично я делал не стандартно, диск, на который происходило копирование подключался по сети как блочное устройство (.vhd/.vhdx), сам же файл по сети раздавался сервером.

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

    Копируя файлы с нескольких машины по очереди на один и тот же диск у меня появлялась возможность отдельным приложением сканировать диск на одинаковые файлы и делать их так же символическими ссылками (т.е. в пределах резервных копий с одной машины ссылки создавались с помощью rsync, но между машинами нет).

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

    p.s. что значит интерфейс управления резервным копированием?
    Ответ написан
    6 комментариев
  • Как запретить настройку расширений в Chrome?

    @rPman
    Скачиваешь расширение .crx (это zip архив с файлами расширения) либо делаешь это напрямую в каталоге chromium/Default/Extensions/ocgpenflpmgnfapjedencafcfakcekcd/3.5.3_0/

    Просто напросто редактируешь файлы и убираешь все что связано с редактированием настроек.

    Код там без обфускации и минимизации, с комментариями, думаю справитесь, делов на несколько минут
    Ответ написан
    4 комментария
  • Несколько пользователей или контейнеризация?

    @rPman
    будет трудно найти того, кто будет это настраивать и поддерживать
    все ваши проблемы от сюда. Либо ищите готового специалиста, либо выращивайте своего

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

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

    Настоятельно рекомендую организовывать работу с пользователями linux, все инструменты настроены именно на это, а контейнеризация перенесет все под одну гребенку и усложнит.
    Ответ написан
    1 комментарий
  • Настройка нескольких десятков ПК?

    @rPman
    Но потом они все будут в одной доменной сети.
    ключевое место создания себе гемороя - ПОТОМ

    Пользователь windows локальный и доменный это технически разные пользователи, все что ты настраивал для одного, не перенесется в другого (иногда срабатывает копирование профиля но всегда что то вылезет кривое позже)

    Все остальное решается простым настройкой одной машины и клонированием диска на несколько. Если различия в настройках незначительные (типа имя компьютера) то это позже можно сделать скриптом на powershell
    Ответ написан
    2 комментария
  • Как решать конфликты прав между пользователем, выполняющим деплой, и рутом, создающим файлы через docker?

    @rPman
    Причина проблем в том что github-runner запускает docker из под root с помощью sudo, а дальше все права файлов будут рутовые.

    Необходимо разрешить github-runner запускать docker без sudo (добавить в группу docker, погугли подробности, там есть еще нюансы) тогда все остальное так же можно будет разрулить правами доступа
    Ответ написан
    2 комментария
  • Какой программой запустить распределённые вычисления на пользовательских рабочих местах?

    @rPman
    Если задача удобно делится на части (можно разделить на независимые работы по номерам как описано в коментариях) то что-либо разрабатывать для этого не нужно.

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

    Например: в linux есть утилита parallel, ей просто даешь список команд в виде текстового файлика, а она их запускает параллельно с указанным количеством одновременно запущенных процессов, по завершению одного тут же запускает следующий. Никакого контроля за работой нет (т.е. ошибки обрабатывать самостоятельно). Соответственно, настраиваешь беспарольный ssh на машины в сети, затем генерируешь текстовый файл где каждая строка вида ssh случайный_сервер команда и отдаешь его parallel с указанием количества машин -j N (на самом деле если задачи занимают только один поток и на одной машине можно их несколько запускать, то нужно будет посчитать сумму потоков, в этом случае все сложнее, ведь современные процессоры уже не дают линейного увеличения от количества ядер даже в идеальном случае, потребуются бенчмарки). Этот подход не идеален но максимально простой. В качестве развитие этого - список команд генерируется не заранее а на лету, каждая следующая команда дает сервер, нагрузка на который в последние секунды была минимальной, в командной строке это все будет красиво выглядеть с использованием пайпов:
    command_generator | parallel -j 100 >> parallel.log 2>> parallel.err


    Т.е. одна машина у тебя будет управляющей, все остальные - воркеры, ssh ставится на любую ос, а благодаря wsl даже не придется заметно переписывать код

    p.s. Почти наверняка задача требует доступ к данным, которые по сети могут не очень эффективно передаваться (да и многопоточный доступ к данным редко бывает эффективный) поэтому нужно продумать систему кеширования данных, в т.ч. заранее (в linux и windows есть механизмы, разные, с оговорками, иногда проще самому в коде этим заниматься). Результаты тоже нужно куда то записывать, если поток большой, то лучше пусть сначала, по возможности, данные собираются на машинах в сети, там где они получались, позже можно их собрать воедино.

    p.p.s. настоятельно рекомендую делать так чтобы воркеры в данной реализации самостоятельно обрабатывали ошибки, вплоть до вывода в stdout/stderr, иначе разбирать кашу вывода parallel будет сложно
    Ответ написан
    2 комментария
  • Как удалить злосчастную папку "..."?

    @rPman
    Попробуй far commander или total commander, это файловые менеджеры, работают с файлами лучше чем Эксплорер.
    Ответ написан
    1 комментарий
  • Как запретить загрузку с LiveCD?

    @rPman
    Серверные и не дешевые десктопные материнки имеют функционал установки и удаления ключей подписи загрузчика (secure boot), чтобы произвести загрузку в этом режиме, код загрузчика должен быть подписан ключем, указанным как доверенный в биосе. По умолчанию там прописаны ключи, которым подписаны загрузчики всех популярных ОС (windows/linux/...), если добавить свой ключ и удалить общий ключ, то загружаться такая машина будет только операционную систему, загрузчик которой подписан твоим ключом.

    Кстати относительно недавно публичный ключ менялся и в современную материнку не получится загрузиться с очень старой версией windows/linux в режиме efi (только legacy mbr при котором защита отключена)

    Сбросить это батарейкой не получится (как я понимаю можно выпаять чип и впаять свой, но там тоже есть подводные камни). Кстати это намек, что ошибка в настройке secure boot может окирпичить материнскую память (т.е. либо выбрасывать либо дорого чинить).

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

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

    @rPman
    Почти любой современный торент клиент имеет инструменты удаленного управления или command-line утилиты управления и создания торент файлов.

    Например пакет transmission-cli, устанавливает transmission headless daemon и набор утилит командной строки по управлению им
    например transmission-create создаст торент файл а transmission-cli добавит его в список (файл должен быть уже в каталоге загрузки, он будет повторно перехеширован)

    p.s. сам я этим не пользовался, давно давно пользовался deluge, так же помню реверсил протокол общения с utorrent по http (возможно уже стандарт на это дело придумали, так как веб версию все кому не лень добавляют)
    Ответ написан
    Комментировать
  • Xen. Как задать права доступа пользователей к виртуальным машинам в ubuntu для xen?

    @rPman
    через sudo, либо пропиши все используемые пользователями команды либо заверни все в скрипт и его разреши запускать только определенным пользователячм
    Ответ написан
  • Слияние разделов диска на разных физических ssd?

    @rPman
    Да можешь расширить место ntfs раздела, уменьшив разделы с linux, если там достаточно свободного места. Рекомендую делать это с загрузочного диска linux с помощью например gparted. Настоятельно рекомендую перед этим сначала отключить гибернацию на windows машине, так как при ее наличии система ускоряет свою загрузку с ее помощью даже когда ты ее не используешь, и это может создать проблемы при работе из linux с диском c:.

    Красиво объединить два раздела на разных дисках в один в windows можно только при использовании его software raid 0, для этого диски должны быть с GPT разметкой и разделы должны быть равного размера, кстати сделать это с системным диском на лету не получится, нужно будет грузиться в режим восстановления (с установочного диска), пример инструкции (там raid mirror, но идея та же)

    В некоторых случаях можно не делать единый raid а создать два разных диска и вручную перенести объемные каталоги (именно каталоги, не файлы по отдельности) на другой диск, создав для этих каталогов символические ссылки на изначальном месте, если не трогать системные каталоги c:\windows то все будет работать (можно и там кое что перенести, но можно получить тыкву). Символические ссылки удобно создавать в far commander, кнопка alt+f6 интерфейс как копирование.
    Ответ написан
    Комментировать