Задать вопрос
Ответы пользователя по тегу Linux
  • Кто сталкивался с сертифицированным ПО для скриншотов?

    @rPman
    на windows воспользуйся скриптом powershell (нагуглил первое попавшееся, не рповерял)
    на linux используй штатную утилиту imagemagic
    import -window root /path/filename.png
    еще проще, штатная утилита xwindow - xwd
    xwd -silent -root > /path/filename.xwd
    а там изображения в этом формате можно конвертировать уже со своей машины с помощью imagemagic

    написать скрипт из 2 строчек, который будет периодически делать скриншоты сумеешь?

    Ты не обязан сертифицировать свои же powershell/bat скрипты (хотя возможно в последние годы на windows свои скрипты powershell надо будет подписывать, меня вообще очень веселит, в сотне гигабайт мусора windows есть тысячи способов сделать нужное, но оно недоступно без документации, т.е. есть библиотеки где этот функционал реализован но ими воспользоваться не получится, они сохранены только для мифического легаси)
    Ответ написан
    Комментировать
  • Какую использовать утилиту на linux для создания waweform?

    @rPman
    sox (штатно идет с любым linux), если я верно понимаю ключ synth
    Ответ написан
  • Есть диски, бывшие частью массива, как начать использовать?

    @rPman
    ты отключи сначала mdadm, он же монопольно держит диск и не отдает (но тогда должны были бы быть ошибки!)
    cat /proc/mdstat
    выдаст что то типа

    Personalities : [raid1] [raid6] [raid5] [raid4]
    md1 : active raid1 sdb2[1] sda2[0]
    136448 blocks [2/2] [UU]

    md2 : active raid1 sdb3[1] sda3[0]
    129596288 blocks [2/2] [UU]

    md3 : active raid5 sdl1[9] sdk1[8] sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
    1318680576 blocks level 5, 1024k chunk, algorithm 2 [10/10] [UUUUUUUUUU]

    md0 : active raid1 sdb1[1] sda1[0]
    16787776 blocks [2/2] [UU]

    unused devices:

    определяешь какой из массивов из твоихдисков попытался построиться (но не смог скорее всего) и делаешь ему stop
    mdadm --stop /dev/md1

    и вот тогда уже манипулируешь с дисками и стираешь их
    Ответ написан
    Комментировать
  • Как ввести ограничения для использования сети для windows10?

    @rPman
    Штатно задача решается с помощью cgroup, но настраивать сложно.
    Просто - виртуализация или паравиртуализация lxc (собственно это фактически gui к cgroup).

    Недостатки виртуализации - придется заморочиться с настройкой gui, обычная виртуализация будет работать но 3d ускоритель не будет доступен и можно встретить проблемы даже с проигрыванием видео выше fullhd@30

    Все это есть в любых linux, почему бы и не ubuntu (lxc доставляется вручную в libvirt, создание файловой системы виртуальной машины тоже вручную, но зато максимальная производительность и почти ноль накладных расходов).

    Кстати snap предлагает так же систему контейнеризации приложений, основанную на cgroup, т.е. установив приложение из snap оно уже сидит в своей песочнице, и ей нужно выдавать соответствующие права для доступа ко всему, от принтера до файлов на диске (рабочая директория пользователя доступна но все иное кроме root нет, т.е. нет флешек, нет смонтированных дисков и т.п.). В ubuntu firefox например уже поставляется в snap.
    p.s. лично мне не нравится, но скорее всего я не умею его настраивать

    Для доступа к gui из lxc песочницы есть 2 способа, настроить доступ к xserver (при использовании xubuntu например) или использовать ssh с ключом -X, в этом случае песочница воспринимается как удаленная машина и трафик gui шифруется и сжимается как бы по сети (правда localhost)

    Главный принцип - размести опасные приложения внутрь песочницы. К сожалению игры это отдельная проблема и правильно их размещать на другой физической машине. Настройка сети в данном сценарии это просто не давать доступ к ней всем кроме избранных, на уровне виртуальной машины/песочницы достаточно не прописать или выдать неверный шлюз по умолчанию. Обновлять такие машины придется вручную (например настроив свой сервер обновлений, либо временно включать для них интернет)
    Ответ написан
    Комментировать
  • Как перенести базу данных из СУБД Postgresql в MySQL?

    @rPman
    Если ты программист, то написать программу в 10 строчек, копирующую содержимое заданной таблицы из одной базы в другую для тебя не должно быть проблемой. Как минимум на php с использованием PDO проблем не возникнет.

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

    p.s. экспортировать и импортировать данные в своем формате умеют некоторые универсальные GUI для баз данных, например та же WorkBench, там тоже можно сделать экспорт отдельно в виде insert-ов и отдельно структуру.

    p.p.s. ну перенесли вы данные, но данные это самое легкое, запросы тоже переносить нужно, а вот тут совместимость может быть слабая.
    Ответ написан
    Комментировать
  • Как настроить инкрементное резервное копирование папки linux?

    @rPman
    rsync -avh --link-dest=previous_backup/ source_directory/ new_backup_directory/

    добавить ключей по вкусу

    Эта команда будет делать резервную копию source_directory/ копируя файлы в new_backup_directory/ проверяя параллельно предыдущую копию в previous_backup/ и пропуская копирование не изменившихся файлов, создавая для них символические/жесткие ссылки.

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

    По сети чтобы все работало рекомендуется установить rsync демона (как минимум создавать жесткие ссылки через всякие nfs оно не умеет но можно проверить ssh scp/sftp)

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

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

    @rPman
    однозначно причина в том что на реальной машине у тебя используется efi а в виртуалке legacy mbr (ну или наоборот но это странно), они используют разные процедуры загрузки.

    у тебя случайно там не два разных загрузчика типа grub и selinux (который только для legacy существует)?

    но вот почему именно у тебя по разному отрабатывает настройка пункта по умолчанию, хз, показал бы конфиг что ли
    Ответ написан
    Комментировать
  • Как копировать/переносить виртуальную машину с Linux без правки загрузчика?

    @rPman
    при инициализации диска, создании и форматировании раздела можно задать свой uuid, тебе где из этого надо?

    вот например так я это делаю с lvm
    pvcreate --norestorefile -u xxx-xxx-xxx-xxx-xx-xxxx /dev/sda2

    а так с файловой системой
    mkfs.xfs -m uuid=xxx-xxx-xxx-xxx-xx-xxxx /dev/sda1
    Ответ написан
    Комментировать
  • Возможно ли установить freeradius на android?

    @rPman
    ты пробовал псевдопесочницы типа debian_no_root?

    radius сервер работает по udp, по уму это не требует каких то особых умений от ядра
    Ответ написан
    Комментировать
  • Как отправить сообщение с Linux на windows в локальной сети?

    @rPman
    Раньше использовался штатный майкрософтовский Messagener Service, в майкрософтовской сети можно отправлять сообщение командой msg, но после windows 7 майкрософт что то сломало в этом протоколе и ранее рабочий smbclient -M имя_компьютера теперь не работает, попробуй поищи в этом направлении

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

    @echo off
    setlocal enabledelayedexpansion
    set "dir_path=c:\messages"
    
    :loop
    
    for %%f in ("%dir_path%\*") do (
        set /p msg_text=<"%%~f"
        msg "%%~nxf" "!msg_text!"
    	del "!dir_path!\%%~nxf"
    )
    
    ping -n 2 localhost
    
    goto loop


    в данном случае чтобы отправить сообщение нужно будет создать на этой машине (можно расшарить папку c:\messages и работать с ней через samba) файл с именем пользователя и содержимым с текстом сообщения (кажется в кодировке cp1251 если нужен русский, советую поэкспериментировать). Осторожно с пробелами в имени пользователя

    p.s. Еще проще, установить на windows машине ssh сервер, и запускать удаленно команды msg. OpoenSSH есть в windows 10 как штатный дополнительный компонент в настройках приложений
    Ответ написан
    Комментировать
  • Какая файловая система наиболее устойчива к сбоям?

    @rPman
    Ваша задача решается только аппаратными средствами. При ненадежном окружении машину нужно буквально выносить на расстояние, подальше от этого окружения (т.е. у клиента только монитор+клавиатура а редактировать документы на флешках запретить, я серьезно), это реально и не так дорого как кажется, но все же необходимо обеспечить место где железо не будет зависеть от электрика Васи и 'супер-чайника бабы Глаши'.

    На самом деле тут несколько проблем, каждая из которых решается разными способами:
    * сбои в железе, т.е. буквально смерть диска или флешки (нельзя на них работать, никак нельзя), в частых случаях это решают резервированием, спасибо для дисков существует RAID5, когда за счет добавление 1 диска к массиву (начиная с 3 дисков до 32 шт) обеспечивает работоспособность при потере любого 1 диска, а при добавлении 2-ух дисков, соответственно переживает потерю любых двух дисков.
    * сбои в электропитании - качественный бесперебойник и настройка на автоматическое сохранение работы. Система резервного электропитания - отдельный большой разговор и дешевым это не будет, в зависимости от того, какие бывают сбои, может оказаться что единственный вариант - дорогой online ups + дизельный генератор.
    Для рабочих windows и иногда и linux можно настроить hibernation по сигналу с UPS, это как минимум спасет не только файловую систему но и не сохраненную работу.
    Так же есть механизмы у систем виртуализации, если гостевая операционная система не умеет hibernation, то это сможет сделать сервер виртуальной машины (кажется любой)
    * сбои в софте и кривые руки пользователя - самый интересный сбой, когда по ошибке одним движением пользователь уничтожает важные данные, ошибка конфигурации отправляет базу в ноль или безвозвратно портит данные. На это тоже есть два решения, в обычном случае это регулярные бакапы, причем если есть база данных то можно сделать очень оперативный инкрементальный бакап прямо средствами БД (что то типа прерванной репликации например) и регулярные снапшоты (как еще одна форма бакапа, только не покидающая машину).
    И вот тут выбор файловой системы может сильно помочь, например cow fs типа btrfs или zfs умеют делать снапшоты бесплатно, без деградации скорости работы (до этого был lvm но его снапшоты кратно! замедляли запись, пока снапшот не удалишь), у windows ntfs тоже есть shadow copy но там какие то особенности есть, не делающие это чистым снапшотом, т.е. пользовательские файлы так резервируются а система не всегда, ну через нее делают бакап перед установкой обновлений.
    Можно настроить буквально поминутные снапшоты с удалением тех что старее часа/суток/... и фоновым переносом их на бакап сервер, т.е. это сочетание системы резервного регулярного и оперативного копирования
    Ответ написан
    Комментировать
  • Как правильно сделать загрузочную флешку с win11 на линуксе?

    @rPman
    Данная ошибка не связана со способом создания загрузочной флешки, если вы видите это окошко то 'проверку на формат уже прошли'.

    Данное сообщение говорит что в системе нет драйверов например на USB или дисковый контроллер и дальше работать не будет.

    Есть следующие решения:
    * найти в биосе usb-cdrom режим (видел такой в паре материнок старых), в довесок, чтобы с гарантией, сделать копию диска простым копированием iso образа прямо в устройство флеш-накопителя (условно если он будет /dev/sdb вот в него и копируй с помощью dd), и пофиг какого этот диск размера (лишь бы было больше или равно размеру iso), этот метод кстати универсальный и позволяет загружать liveusb как на EFI так и на legacy mbr.

    * переключить систему в режим EFI или Legacy mbr, в зависимости от ситуации, драйвера могут использоваться разные в т.ч. из BIOS для режима EFI

    * Заранее разбить диск на два раздела (либо добавить в систему еще один диск) и чтобы с гарантией (это если будет еще проблема в обнаружении диска, т.е. установщик покажет пустой список) использовать SATA устройство, а в биосе переключить в режим IDE (драйвера для этого режима с гарантией есть в установщике), но не забыть позже установить драйвера на материнку и вернуть AHCI режим. Первый раздел использовать как целевой для установки а на второй, отформатировав его в fat32/ntfs/exfat, скопировать в корень содержимое установочного iso образа. Дело в том что установщик windows будет искать свои файлы в корне всех дисков системы, если не найдет их на загрузочном диске (не удивлюсь если эта фича поддерживается еще с тех времен, когда систему устанавливали с флопи-дисков)

    * если ничего не помогает, тогда соверши первую фазу установки (когда идет копирование файлов до перезагрузки) или даже всю, создав виртуальную машину в работающем linux (рекомендую qemu прямо из командной строки, ее проще новичку для данной задачи использовать) и прописав в ней весь используемый жесткий диск. К сожалению без дополнительных телодвижений это сработает только при использовании legacy mbr, так как для efi установщик должен еще прописать информацию об установленной системе в биосе, но это можно будет сделать позже средствами linux (у меня опыта нет, гугли, утилита efibootmgr)
    Ответ написан
    Комментировать
  • Развертывание VPS из локально настроенного образа. Так вообще делают?

    @rPman
    Некоторые провайдеры предоставляют такую возможность, так как linux дистрибутивы изначально ориентированы не только на реальное железо но и на виртуальное, поддержка обычно хорошая. Единственное, это доступно только если используется виртуализация kvm/vmware/vbox/hyperv/... но не паравертуализация (lxc/virtuozzo/...)

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

    Совет, выбирай ядро с пометкой cloud/vps/kvm и т.п., а то универсальные ядра долго грузятся.

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

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

    p.s. Самое смешное когда я это делал, мне это нужно было делать ради единственного отличия от провайдерского конфига - файловая система btrfs с поддержкой сжатия на лету (у меня были очень объемные текстовые дампы, сжимаемые 10х). В общем все в твоих руках.
    Ответ написан
    2 комментария
  • Как выполнить копирование данных в каталог?

    @rPman
    не монтируй сетевые каталоги при нестабильных сетевых соединениях, это проблема linux, как не крути она будет вылезать странными способами.

    Правильно, использовать ssh или специализированные протоколы и синхронизировать каталоги через них, вот на вскидку варианты:
    * scp, штатная утилита, работает через ssh, по сути это то же самое что cp только по ssh
    * rsync, продвинутая cp, может работать в т.ч. через ssh, умеет передавать дельту (но там вопрос про эффективность в быстрых сетях)
    * инкрементальные снапшоты btrfs, максимально эффективно позволяет получать и соответственно передавать дельту изменений в файловой системе (на уровне кластеров), скорость файловой системы не деградирует при использовании снапшотов, а в момент сбора дампа разницы диск не нагружен (все остальные способы сканируют каталоги и файлы чтобы выявить дельту)
    идеален для случаев если нужно синхронизировать огромное количество файлов либо огромные файлы.
    * кластерные/распределенные файловые системы, позволяют синхронизировать каталоги буквально один к одному в реальном времени (идеальны если нужно много читать и мало писать, типовая сетевая файловая система при чтении полезет к файлу в сеть, а кластерная - в локальную копию), есть нюансы и сложности. Например DRBD
    Ответ написан
    Комментировать
  • Почему некорректно выводятся символы utf-8 в linux?

    @rPman
    , ccs=UTFxxx это придумка Майкрософт с целью диверсии на стандарты (часть из плана по монополизации мира, успешного).

    В стандарте c++ есть методы конвертации из одной кодировки в другую std::convert....
    Ответ написан
    Комментировать
  • Процесс загрузки ОС на виртуальную машину не работает застряв на установке. Что делать чтобы продолжить?

    @rPman
    У меня все работает.
    Захожу на сайт Parrot OS, выбираю загрузки, Security Edition, Torrents, версия для VirtualBox,.. скачивается .ova файл, выбираю в интерфейсе VirtualBox в меню импорт машины, выбираю скачанный файл, импортирую, запускаю... все работает, все дополнения уже установлены...

    На каком шаге у тебя не так?
    Хост система linux, версия virtualbox 7.0
    Ответ написан
    1 комментарий
  • Как раздать блочное устройство с linux-компьютера через usb-c порт?

    @rPman
    jcmvbkbc дал отличный ответ

    я же предлагаю альтернативный вариант для расширения горизонтов, на steamdesk нужно установить istgt - демон для публикации дисков по протоколу iscsi, для загрузки по сети поддерживается в т.ч. и windows, для загрузки понадобится еще настройка DHCP сервера и разместить где то EFI загрузчик по протоколу tftp либо при должном красноглазии можно по http.

    p.s. для бездисковой linux машины (ты же не сказал что собираешься загружать) для загрузки по сети существует тьма тьмущая других вариантов, основа та же DHCP и tftp для ядра и initramfs, но вот сам диск можно монтировать практически по любому протоколу от nbd (блочное устройство но проще чем iscsi) до nfs
    Ответ написан
    1 комментарий
  • Несколько пользователей или контейнеризация?

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

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

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

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

    @rPman
    android - это 'полноценный' linux, с заменой окружения на свое и проприетарным загрузчиком (это не вина android как ОС, это вина производителей и возможно скрытых договоренностей с гугл) и зачастую с особым (не linux) способом работы с периферией.

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

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

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

    p.s. есть проекты запуска привычного linux окружения как приложение android, ищи termux/debian_root и т.п.
    Ответ написан
    2 комментария
  • Как симулировать сбои в файловой системе?

    @rPman
    Гугл qemu hardware failure simulation.

    Также дополнительно добавляй тесты на случайное изменение в кластерах файловой системы просто скриптом, причем не в этой же vm, а подключив один и тот же диск к двум машинами, что бы учесть влияние Кеша

    Тесты проводить автоматические, очень много
    Ответ написан
    Комментировать