Ответы пользователя по тегу Linux
  • Возможно написать аналог bash на PowerShell?

    @rPman
    В windows встроено (устанавливается из коробки) несколько языков программирования, начиная с javascript/vbasic в древнем windows scripting host (запускать программу в виде текстового файла .js или .vbs с помощь cscript.exe //nologo имя_файла.js) и заканчивая полноценного .net c#/vbs#/js# собираемого в .exe одной строчкой (никаких проектов, никаких студий, просто в редакторе пишешь код и запускаешь)

    Но люди продолжают ломать свои мозги, используя неадекватный ему инструмент что в windows (cmd и спасибо powershell лучше но все равно извращение, лучше он только потому что предоставляет больше доступа к windows-specific функционалу но не как язык программирования) так и в linux (когда я вижу, как люди в очередной раз пишут многостраничные простыни на bash чтобы работать с датами, вместо того чтобы написать код в пару строчек на python/php/..., мне становится грустно, куча всего в linux буквально написано на bash, поддерживать это неадекватное месиво ужасно.

    И да, я знаю, что бывает код на bash/powershell проще, но только потому что там уже есть решение проблемы, и весь этот код - просто способ описания этой проблемы.
    Ответ написан
    4 комментария
  • Какая утилита root доступа для Linux работает в консольном режиме без белого ip?

    @rPman
    почти полная замена teamviewer/anydesk - это rustdesk, можно настроить свои сервера, открытый, доступный, достаточно шустрый

    p.s. штатный инструмент удаленной работы с linux - x2go (аналог msrdp в windows), а для доступа можно настроить обратный ssh с перенаправлениями (это когда все ваши машины за NAT подключаются к одному вашему серверу с белым ip) а вы уже через свой сервер подключаетесь., но лучше конечно vpn свой поднять, то же самое только будет локальная сеть.
    Ответ написан
    Комментировать
  • LPT внутрь виртуальной машины KVM?

    @rPman
    proxmox использует kvm
    kmv позволяет пробрасывать pci и pci-e (очень старое железо без pci с isa скорее всего не получится, но там и kvm запустить нормально не получится) контроллеры в виртуальную машину, с помощью lspci посмотри, на какой именно контроллер повешан lpt и пробрось его (в биосе нужно будет включить iommu кажется называется), гуглить по ключевым словам kvm pci passthrough

    upd. совсем забыл, сейчас погуглил, в старых компьютерах lpt подключался через южный мост или PCH контроллер, а вот его непонятно как пробрасывать.

    в общем сначала нужно удостовериться что на материнке для lpt не развели отдельного pci контроллера (как это делают с usb), в windows можно посмотреть прямо в диспетчере устройств (в меню выбрать - по подключению)

    p.s. у virtualbox вроде бы есть проброс lpt
    Ответ написан
    1 комментарий
  • Как запустить Electron на Linux удалённо по ssh?

    @rPman
    Если нужно что бы приложение работало и выводило изображение на удаленном сервере, можно указать в переменной окружения сеанса ssh DISPLAY=:0 (точнее посмотреть это значение из уже запущенной сессии на машине).

    Если графической оболочки на сервере не запущено, то ее нужно запустить, вручную долго и нужно, поэтому советую готовый сервер удаленной работы x2go

    X2go сам создаст сеанс, при отключении приложения могут продолжать работать. Клиенты есть подо все, кроме может только android.
    Ответ написан
    Комментировать
  • Как восстановить конкретную папку на btrfs если нет снапшотов?

    @rPman
    Ты не пробовал гуглить? первый же ответ:
    btrfs restore -v -i /dev/sdaX /path/to/recovery/ --path /path/to/deleted/file
    Ответ написан
    2 комментария
  • Как в Linux полностью программно сменить основную видеокарту?

    @rPman
    Уходите от Wayland, например к xfce или gnome, бонусом возвращения будет возможность, используя штатный loginctl, настроить два рабочих места, по отдельности на каждую видеокарту (и не важно что второе рабочее место с intel ark не будет использоваться). Доступ к второй видеокарте в числодробилках останется, а вот графический интерфейс будет привязан к указанному gpu железно.
    spoiler
    Исключение wine (ну и его потомки типа proton), я столкнулся с проблемой именно со вторым рабочим местом, wine видит первую видеокарту и часть работы перекладывает на нее, как не указывай.
    Ответ написан
    Комментировать
  • Какие альтернативы Rufus под Linux?

    @rPman
    консольный
    dd if=win.iso of=/dev/sdX bs=1024k status=progress


    замени /dev/sdX на имя устройства с флешкой (внимание не /dev/sdX1 т.е. разделов не будет) список получи с помощью lsblk

    bs=1024k заставит писать блоками по 1мб, а status=progress будет выводить какую то информацию о прогрессе
    Ответ написан
    1 комментарий
  • Как правильно бэкапить в этом случае?

    @rPman
    ACL - во всех современных linux дает дополнительный слой прав поверх привычных chown/chmod.

    Можно с помощью setfacl выдать дополнительные права на файловую систему специально созданному пользователю backup и тогда rsync с удаленной машины сможет залогиниться под этим пользователем и скопировать файлы.
    Типа так:
    sudo setfacl -R -m u:backup:rx /
    а копирование с удаленной машины типа так:
    rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} backup@remote:/ /path/to/destination

    дополнительно нужно будет настроить без парольную аутентификацию под пользователем backup на эту машину

    p.s. резервное копирование больших объемов данных, особенно если файлы большие или, к примеру, во время резервного копирования могут быть записаны, потребует заморозку файловой системы с помощью снапшотов, выбор технологии которых накладывает различные ограничения, например LVS кратно роняет скорость работы файловой системы, на которой создан снапшот. Я бы рекомендовал cow файловые системы btrfs/zfs, у них из коробки максимально эффективная система снапшотов (на основе которой можно создать инкрементальные бакапы на порядок удобнее и быстрее чем с помощью rsync) но они роняют (десятки процентов на hdd) скорость работы баз данных в принципе... в общем нужно думать и правильное решение - исключить файлы баз данных из резервного копирования и настройка этого копирования уже средствами базы данных.

    В общем полностью абстрагироваться от клиентских машин не получится, что то на них настраивать придется
    Ответ написан
    1 комментарий
  • Как получить федеральный цифровой канал DVB-T2 и стримить его через Linux?

    @rPman
    На сколько я знаю все в одном есть в vlc и в ffmpeg, они могут брать поток из любого источника (будь то pci плата захвата или usb) а так же позволяет публиковать поток

    p.s. ubuntu 24.04 lts может получиться нежданчик с поддержкой железа, еще года с выхода не прошло, но я очень давно такой фигней не занимался, может там уже все хорошо

    p.p.s. пожалей свои мозги и мозги своих пользователей в сети, не нужно множить зло федеранльный мусор

    Раз в неделю собирай список раздач с какого-нибудь торрент трекера, скачивай его консольным rtorrent, отправляй на трансляцию, удаляй, скрипты по 2-3 строчки.

    Там тебе и развлечения, и новости, и фильмы,.. без рекламы, по твоему выбору.
    Ответ написан
    9 комментариев
  • Как можно запустить одну программу с windows сервера через Linux?

    @rPman
    Не использовать server ревизии windows.

    Использовать рабочие ревизии windows, с ibik aster, настраивая на каждого пользователя свое рабочее место (формально достаточно порта на видеокарте, но DP при наличии соответствующего хаба может умножить это значение в несколько раз. Как минимум 12 рабочих мест организовать так можно.
    spoiler
    Помню был большой и абсурдно выглядящий спор, по поводу легальности такого способа использования windows, у майкрософт очень сильно подгорало, что одна лицензия буквально позволяет работать с компьютером нескольким человек, но это вопрос философии... ведь к примеру нельзя запретить играть в компьютерную игру в несколько человек на одном экране (например hotsit), и в чем разница, с помощью какой программы и с какими целями это разделение происходит. В общем полагаю как то разобрались и ibik aster формально легален, а их софт получает подписи от майкрософт.

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

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

    @rPman
    Телепатствую.

    Главная причина, чаще всего, это не отключенные индексы, запись в таблицу с ними это n*log(n), а без индексов это n или даже log(n).

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

    Отдельно в sql коде можно расставить commit через некоторое количество (десятки тысяч +-) insert-ов, что бы лог не переполнялся.

    Следующий вариант - оптимизация дисковой записи, найди способ принудительно включить lazy writes на диске с базой, например с помощью виртуализации или хотя бы ext4 опция data writeback. Внимание! в этом режиме любая проблема с ос (например отключили питание) испортит данные. Т.е. на время импорта создай файловую систему для таблиц отдельно, потом данные тупо скопируешь. Но если у тебя норм ssd или дисковый контроллер с хорошим кешем, то это не актуально.

    И если говорить об самым экстремально большом ускорении, размести файлы базы в tmpfs (оперативка, сотня гигабайт сейчас даже дома не проблема)... Можно для этого арендовать в облаке vps-ку, но желательно в этом же датацентре, а то копировать сотню гигабайт может быть долго. И да, следи за тем что бы была та же архитектура процессора и версия mysql
    Ответ написан
    Комментировать
  • Как установить Винду через Линукс?

    @rPman
    Почти в любой установке linux есть приложение Диски (kde другое, например etcher, ну и никто не мешает gnome-disk-utility, это для тех кто ленится написать в консоли dd....), оно позволяет в 5 кликов мыши записать iso образ на флешку как есть (без распаковки, просто записывая его в режиме dd сектор в сектор). Выбрать целевую флешку в списке слева, нажать меню справа (кнопка три точки) - восстановить образ диска - выбрать iso образ и нажать - начать восстановление (проигнорировать предупреждение если флешка больше iso-шки)

    Этот режим поддерживается наверное всеми материнскими платами, как новыми uefi (тем вообще пофиг) так и очень старыми, у меня была материнка со времен только только появившегося usb2, точнее когда с usb заработала загрузка, так вот этот режим записи iso прекрасно сработал (правда пришлось выбирать режим usb cdrom в биосе)... когда как многие другие методы создавали кучу проблем.

    Это работает, потому что файлавая система iso, используемая на cdrom поддерживается всеми биосами во всех режимах, а в efi режиме никто не заморачивается проверкой типа файловой системы соответствию типа носителя, лишь бы драйвер был в биосе
    Ответ написан
    Комментировать
  • Какой Linux ещё поддерживает роботу и синхронизацию 32 bit Chrome и Firefox?

    @rPman
    Debian все ещё поддерживает i386, так же firefox ещё выпускается под эту архитектуру

    Если тебе нужно выджать проценты эффективности и экономить сотни мегабайт ram, то выбери Gentoo, в ней все собирается пот установке, да ещё и оптимизировано под текущую архитектуру (бинарные сборки застыли на i386), но собирать браузер придется сутками ждать
    Ответ написан
    Комментировать
  • Как сделать резервное копирование archlinux?

    @rPman
    Исторически в linux резервную копию делают с помощью tar, но никто не мешает делать архивацию обычным cp или rsync или 100500 инструментов копирования файлов.
    Например если установка состоит из одного корневого раздела (даже без /boot) то, смонтировав хранилище для резервной копии в /mnt:
    tar --one-file-system --sparse -cpzf /mnt/backup.tar.gz /

    создаст архив в /mnt, исключив все левые файловые системы, включая /dev /proc и т.п.

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

    После восстановления, скорее всего потребуется восстановить загрузчик, что можно сделать так же с livecd, смонтировав восстановленную систему в какой-нибудь каталог типа /mnt и сделав
    grub-install /dev/sda --root-directory=/mnt
    при условии что /dev/sda - это диск, куда нужно ставить загрузчик (при смене uuid разделов, потребуется править /etc/fstab и возможно /boot/grub/grub.cfg на новые значения, а позже, загрузившись, обновить загрузчик grub-update
    Ответ написан
    Комментировать
  • Как перенести свободную память с sda3 на sda2?

    @rPman
    грузишься с livecd/liveusb любой linux и запускаешь gparted, в gui нормально все двигаешь и пермещеаешь
    Ответ написан
  • Перенос Linux c vhdx на hdd?

    @rPman
    Для начала метка активного диска это очень устаревшая методика, работает только с legacy mbr boot и только с dos и старыми windows.

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

    Самое простое и универсальное (не важно какой биос), загрузиться с livecd/liveusb (любую систему linux той же архитектуры, т.е. x86/x64/... в идеале той же версии но не обязательно), смонтировать корневой раздел в какой-нибудь каталог типа /mnt (причем если root состоит из нескольких разделов типа /boot /home и т.п. то нужно смонтировать их все в правильном порядке) и запустить команду
    grub-install /dev/sda --root-directory=/mnt
    где /dev/sda это устройство с диском с которого нужно грузиться (где лежит efiboot или biosboot или для старых mbr дисков где будет загрузочный сектор)
    а /mnt - каталог, в который смонтирован корневой раздел файловой системы твоей перенесенной ОС.

    p.s. grub все сам проверит, восстановит и настроит, и если какая ошибка - напишет

    Дополнительно удостовериться, что в /etc/fstab указаны верные устройства монтирования а лучше перевести на UUID
    Ответ написан
  • Как настроить работу через VPN только одного приложения KRDC в Manjaro Linux?

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

    Формально для данной задачи подойдёт cgroup network namespace, достаточно сложно для настройки
    Ответ написан
  • Возможно ли поставить Ubuntu 18.04 на Irbis nb267?

    @rPman
    mint 20.1 основан на ubuntu 20.04, на их базе пакетов и том же ядре... т.е. ubuntu (или xubuntu или kubuntu,...) 20.x версии.

    Ожидать что все будет работать на другой версии, и тем более старее - опрометчиво.

    С другой стороны, для проверки потребуется от силы час времени, а если честно - просто использовав liveusb вариант можно проверить все за минуту. Очень странно что народ лезет в интернет и спрашивает, вместо простой проверки.
    Ответ написан
  • Почему время выполнения программы так сильно различается?

    @rPman
    Любой вопрос о производительности своего приложения нужно начинать с профилирования.
    google: c++ profiler, первая же статья с хабра как пример.

    И да отсутствие 100% нагрузки на все ядра уже повод задуматься что что то делаешь не так (или приложение упирается в недостаточно высокую скорость чтения файлов как пример). Кстати напоминаю, современные ядра что у intel что у amd - виртуальные, мало того, есть модели десктопных процессоров, где некоторые ядра не такие же как остальные (читай медленнее) а значит выкачивать 100% эффективности не так просто. Например многопоточные приложения числодробилки я сразу запускаю на 1/2 от количества ядер процессора (иначе можно получить замедление вместо ускорения).

    Для начала попробуй зафиксировать для своего однопоточного приложения определенные ядра, например с помощью taskset (google: linux cpu core affinity for specified application). Если делать тупо, то перебирай доступные ядра по одному (может быть по два, так как асинхронные методы могут внутри себя использовать потоки, для реализации асинхронности тех действий для которых они в ОС не реализованы), иначе нужно проанализировать свои ядра по отдельности бенчмарками и принимать решение обосновано.
    Ответ написан
    Комментировать
  • На убутободобном linux установил драйвера wifi, как вернуть родные?

    @rPman
    Универсально, устанавливаешь систему, делаешь резервную копию (на самом деле достаточно создания снапшота, это 1 команда и заранее устанавливать систему на btrfs), затем ставишь свой драйвер с помощью make install, делаешь еще один снапшот, и сравниваешь эти два снапшота, например с помощью diff -ru, или получив список различий чем то типа btrfs-diff (он вместо сканирования всего, будет анализировать буквально различия снапшотов).

    Таким образом ты быстро поймешь, что именно сломано и даже как. Мало того, сломанные библиотеки (когда подменяется файл вместо установки рядом с новым именем) можно откатить с помощью штатного дебиановского dpkg:
    # получить имя пакета, в котором указанный файл, работает только для установленных пакетов, иначе apt-file
    dpkg -S /path/to/your/file

    чтобы переустановить пакет (не советую, так как такие пакеты помечаются как нужные и если они были установлены не вами а как зависимость, то эта информация будет потеряна)
    apt install --reinstall package_name
    либо
    # 1. Скачать пакет
    apt-get download package_name
    # 2. Извлечь содержимое пакета во временный каталог
    dpkg-deb -x package_name_version.deb /tmp/package_contents
    # делать с этим файлами что угодно по одному, в т.ч. копировать
    # либо установить пакет без отметки его важности
    dpkg -i package_name

    Альтернатива, изучать исходники конфига устанавливаемых драйверов и помнить, что огульно ставить что либо в систему с помощью make install очень и очень дурная практика, прямой путь все сломать без возможности восстановить.
    Ответ написан