Задать вопрос
Ответы пользователя по тегу Linux
  • Какие есть простенькие скрипты "HTTP over Email", чтоб поставить у себя на серваке?

    @rPman
    Эту задачу сможет решить даже слабый современный ИИ, бесплатный доступ к которому сейчас есть у всех, даже без vpn (ну а с vpn например майкрософтовский copilot который в win11 уже встроен в браузер)
    Промпт
    Нужен скрипт, который будет раз в 5 секунд по CRONу на Linux-овом VPS`e
    читать email-почтовый ящик, забирать оттуда письма с темой "url" и
    брать из текста таких писем список url`ов, скачивать эти урлы,
    класть их в zip и отсылать через почтовый ящик обратно.

    для скачивания используй внешнюю утилиту что бы можно было настраивать, в коде прописать списком констант а потом в тексте указывать какой утилитой скачать (по умолчанию подставь вариант скачать одну страницу со всеми картинками и вариант со вложенностью 1 (с помощью wget).
    Осторожно! код не проверял, если он не будет работать, нужно с ИИ поговорить, давать ему исходный промпт, текущий скрипт и сообщения об ошибках или описание что не так работает.
    duckduckgo:gpt5 скорее всего там gpt5-mini

    Ниже — готовый демон-скрипт на Python 3, который требует минимум зависимостей и выполняет описанное: каждые 5 секунд (через cron не нужно — лучше запускать как демон или systemd service; если хотите именно CRON каждые 5 секунд — cron не поддерживает интервал <1 мин, поэтому используйте loop) проверяет почту по IMAP, берет письма с темой "url", парсит список URL в теле, скачивает их с помощью настраиваемой внешней утилиты (по умолчанию два варианта с wget: "single-page-with-images" и "recursive-depth-1"), собирает скачанные файлы в ZIP и отправляет назад через SMTP. Константы вверху файла легко менять.

    Требования:

    Python 3.8+
    pip install python-dotenv requests python-magic (опционально) beautifulsoup4 lxml
    Встроенные модули: imaplib, smtplib, email, subprocess, zipfile, tempfile, os, time, re, logging

    Файл: mail_url_worker.py https://pastebin.com/AwPgiMj9

    Инструкция по использованию:

    Поместите файл, сделайте исполняемым: chmod +x mail_url_worker.py
    Установите зависимости: pip install python-dotenv beautifulsoup4 lxml
    Отредактируйте константы сверху (IMAP/SMTP/пользователь/пароли). Можно заменить на чтение из окружения.
    Убедитесь, что в DOWNLOADERS указаны те утилиты, которые установлены на сервере (wget доступен по умолчанию в большинстве Linux). Можно добавить команду для httrack, curl или иной утилиты — шаблон должен включать {url} и, при необходимости, {outdir}.
    Запустите как демон или systemd service. Пример systemd unit (коротко):
    Создайте /etc/systemd/system/mail_url_worker.service с запуском python3 /path/to/mail_url_worker.py, затем systemctl enable --now mail_url_worker

    Пояснения про выбор downloader в письме:

    Если в тексте письма есть строка типа "downloader: recursive-depth-1" или "downloader=single-page-with-images", скрипт использует соответствующий ключ из DOWNLOADERS. Иначе — DEFAULT_DOWNLOADER.

    Безопасность и ограничения:

    Скрипт запускает внешние команды — убедитесь, что принимаемые URL безопасны и что у пользователя, под которым работает скрипт, нет лишних прав.
    Таймаут на скачивание — 300 секунд для каждого вызова.
    Для больших сайтов/много URL может потребоваться больше места/памяти — адаптируйте.

    Если хотите — могу:

    Привести версию с чтением настроек из .env,
    Добавить обработку вложенных команд (например, скачивание по списку из вложения),
    Подготовить systemd unit и инструкции по безопасности.

    p.s. просьба отписаться тут, работает это или нет
    Ответ написан
    1 комментарий
  • Почему Linux Ubuntu после установки не запускается без загрузочной флешки?

    @rPman
    загрузил ПО на свой ноутбук
    нужно не загрузить а установить.

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

    Еще момент, некоторые (все чаще вижу) производители материниских плат, скорее всего по требованию майкрософт, ломают процедуру настройки загрузочных записей UEFI, таким образом, что бы только установщик windows мог его менять (т.е. записываешь загрузочную запись, биос отвечает что все ок, записалось, но после перезагрузки все возвращается назад, а если это сделать из windows setup то все работает), в этом случае загрузчик придется создавать вручную из windows. Так же альтернатива, перевести bios в режим загрузки не UEFI а CSM (это еще может называться Legacy MBR или Legacy DOS или compatibility), что бы этот режим работал, нужно будет либо создавать тип разбиения дисков DOS (когда 4 раздела только можно, и лимит размера диска 2тб) либо в режиме GPT добавлять еще один раздел (настоятельно рекомендую в первых секторах) - biosboot.

    grub по умолчанию пытается установить оба доступных режима, и UEFI и CSM (если биос не будет загружен в режиме UEFI то будет доступна установка только CSM)

    Установить загрузчик можно вручную после установки, из командной строки linux:
    grub-install /dev/sda --root-directory=/mnt

    тут /dev/sda - это диск, на котором должен быть загрузчик (раздел biosboot либо диск с разбиением dos, если есть UEFI то нужно еще 100мб EFI загрузчик, диск типа efi boot и отформатированный fat32), а /mnt это диск, в который нужно вручную смонтировать установленную ОС (причем если она состоит из нескольких разделов, то смонтировать все, включая /mnt/boot/EFI раздел efiboot)

    p.s. повторюсь, тебе нужны разделы - biosboot (автоматически 1мб), efiboot (минимум 100мб), опционально /boot (обычно не меньше 500мб, и в 99% случаев он не нужен) и корневой /
    Это все можно сделать из мастера установки, когда будет предложено выбрать диск для установки (там будет отображены все диски и нужно будет указывать какой раздел какой точкой монтирования / или /boot является)
    Ответ написан
    Комментировать
  • Как запустить две копии программы в Linux?

    @rPman
    Если речь об обходе ограничений этой программы на повторный запуск, то универсально с помощью виртуальной машины или контейнеров lxc... и иногда это не будет работать как ожидается.

    Или, другой пример с wine (тоже выступает как песочница), у меня есть вполне удачный опыт, на машине linux с двумя gpu nvidia (проприетарные драйвера) настроен multiseat (штатно с помощью loginctl), в каждом рабочем месте свой пользователь linux, каждый пользователь установил steam (штатный linux) и каждый пользователь может запускать независимо друг от друга игры и приложения (работает все само с помощью proton - форк wine), даже если используется какой-нибудь античит, с запретом запуска. Но к примеру игра throne and liberty работает в два клиента с оговорками (на базе unreal engine 4, там постоянно добавляют багов и косяков, которые чаще заметнее именно на linux).

    Типовой баг - игра может самостоятельно обнаруживать несколько видеокарт и для каких-то своих задач принудительно выбирать первую, а не ту что используется X-сервером (частично решается установкой DRI_PRIME и MESA_VK_DEVICE_SELECT) из-за чего одновременно перестают работать, в частности, этот баг у меня стал вылезать, когда я скомбинировал песочницу steam proton и сетевой конфиг в cgroup (я попробовал запустить каждую игру со своим ip адресом и настройками шлюза по умолчанию, это прекрасно работает с любыми программами, включая linux steam и даже windows steam внутри wine, к примеру я сервер ark survival так запускал, но не throne and liberty, она начинает виснуть при запуске так же как это было без настроек переменных указывающих какую видеокарту использовать, причем виснет не только игра но и воспроизведение видео в браузерах на обоих рабочих местах).

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

    @rPman
    Начал писать полный ответ и понял что он будет ну очень объемным, советую гуглить и пообщаться с gpt.

    Итак, удаленные сообщения слать запуском notify-send (он шлет сообщение не пользователю а в $DISPLAY, так что прописывать его вручную на случай multiseat) по ssh, он позволяет отсылать сообщения пользователям, в gui они будут отображаться с помощью текущего установленного демона (например xfce - xfcs4-notifyd) и возможности этого демона будут разные. Некоторые позволяют добавлять в уведомление кнопки (скорее всего одну) и настраивать запуск приложения по их нажатию. Например dunst для x11 позволяет вызвать свой скрипт, указав в аргументах выводимое сообщение (а по нему уже определить что это было за действие если их будет много). Приложение для gui может быть тот же zenity.

    Еще вариант, у xfce штатный notify-send не умеет делать действия, но демон умеет.. гуглится скрипт, который эту проблему решает и позволяет несколько кнопок действий задавать прямо в уведомлении
    Ответ написан
    Комментировать
  • Как исправить неработающие Fn клавиши после suspend?

    @rPman
    В биосе ищи что то типа не отключать usb питание в режиме сна (это по разному называют), как результат - батарейка будет сильнее разряжаться но скорее всего проблема с клавиатурой исчезнет
    Ответ написан
  • Как настроить proxy + VPN в Linux?

    @rPman
    Все зависит от того, какие именно технологии тебе нужны.

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

    * socks прокси сервер (локальный, любая ОС), достаточно подключиться к ssh серверу с ключом -D1080 и у тебя появится локальный socks5 прокси без атворизации (будет localhost:1080)
    Это все что нужно для работы прокси, никаких настроек (максимум озаботиться об автоматическом запуске без пароля). Но прокси требует наличие поддержки в приложениях (браузеры поддерживают все).

    * tap или tun туннель (не windows машины) с помощью ключа -w 0:0 (цифры тут это номер tap или tun устройства, создаваемого локально и на удаленной машине
    для создания tap туннеля нужно добавить опцию -o Tunnel=ethernet в этом случае сетевое устройство будет полноценным ethernet подключением, его можно добавить в сетевой мост со всеми вытекающими от сюда плюсами.
    ssh только создает tap/tun сетевое устройство, но дальнейшую его настройку (ip адрес, настройка nat) нужно делать уже по тем правилам как у тебя организована сеть.
    Например на удаленном сервере можно организовать сетевой мост, в него поместить аппаратный сетевой адаптер и при ssh подключении добавлять созданный им tun/tap интерфейс, в этом случае туннель подключится к удаленной (корпоративной) локальной сети как машина в этой сети и ей будет выдан ip адрес согласно настроек этой сети
    То же самое можно делать и на клиенте, собственно нет никакой разницы как именно было организовано ssh подключение (у меня был конфиг когда ssh сервер из удаленной сети, к которой мне нужен доступ но на нем не было выделенного открытого порта, только доступ в интернет за nat) подключался к моей домашней машине (ssh сервер), подключив таким образом мою домашнюю машину в удаленную сеть, при этом в локальной домашней сети я сделал то же самое, поместил ее сетевой адаптер в сетевой мост и добавил в него tun от ssh, отключив dhcp в моей локальной сети, я получил единую локальную сеть, управляемую удаленно (т.е. ip адреса выдавались удаленной сетью, а так же настройки шлюза, т.е. интернет работал удаленный), в довесок я прописывал на машинах таблицу маршрутизации route add ... указав какие подсети нужно отправлять через мой локальный шлюз а не удаленный.

    p.s. ssh туннель полнофункциональный, удобный, универсальный... но это tcp подключение (т.е. при проблемах в сети будут большие лаги, ping может легко стать 5-секундным) , а еще российские провайдеры периодически (полагаю не 'со зла' а как последствия 'ковровых бомбардировок' других протоколов) замедляют именно ssh подключения

    Исторически в linux есть socat, инструмент поднятия туннеля любого типа через любой тип соединения, сам он по себе не шифрует подключения но можно нагородить конструкцию любой сложности другими утилитвми, попробуй его
    Ответ написан
    Комментировать
  • Как проверить доступность web ресурса из терминала Linux?

    @rPman
    про curl и lynx уже ответили, добавлю от себя вариант с созданием скриншота
    chromium --headless --disable-gpu --hide-scrollbars --window-size=1280,800 --screenshot=myscreenshot.png http://localhost

    тут же можно замерить время загрузки, правда алгоритм определения окончания загрузки может неверно распознать формируемые на javascript страницы (но он все еще работает в большинстве случаев)
    Ответ написан
    5 комментариев
  • Чем выполнить резервное копирование диска Debian 13?

    @rPman
    получил отлуп - разделы ext4 содержат ошибки

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

    Необходимо загрузиться в любую систему linux с возможностью запуска командной строки (собственно подойдет любой liveusb установщик того же debian) и выполнить:
    * dd if=/dev/sda of=/path/to/backup/file.raw bs=1024k status=progress
    замени sda на свой диск, а /path/to/backup/ на каталог, куда копировать (смонтировать внешний или другой диск или по сети)
    * сделать fsck /dev/sda для починки диска

    собственно никаких систем резервного копирования не нужно, clonezilla использует утилиту partclone (ну и другие для удобства копирования структуры разделов) для создания посекторного бакапа но с учетом особенностей файловых систем (не копирует свободные сектора, очень удобно), но она так же не станет работать со сломаной файловой системой, т.е. fsck нужен (она кстати и предложит)
    Ответ написан
  • Какую операционную систему можно поставить на старый нетбук?

    @rPman
    порядка 6-8 лет назад я реанимировал eeepc900 с более чем в 2 раза тормознее процессором чем ваш и ставил на него gentoo с DE awesome, простенькая оболочка, там конфиг - это кусок ее кода, с суммарным потреблением всей ОС после запуска - 54мб (аналогичный конфиг на базе ubuntu требовал 250мб и уже не хватало браузеру), и после этого firefox запускался и работал с приемлемой скоростью типа почитать habr или полистать rss ленту (пользовался веб клиентом), youtube адски тормозил, просто на загрузке файла, притом что тег video работал на 480 контенте без проблем. Я помню был плагин, запускающий на видео на странице системный mplayer (теперь нужно mpv или что то типа yt-dlp + ffplay запускать) и это работало без проблем, собственно для видео я его и использовал, даже был набор скриптов на компьютере в локальной сети, для онлайн перекодирования HD видео в 480p формат (использовал divx кодек)... пока он молча не сломался а починка ожидалась по цене дороже его на вторичном рынке.
    Ответ написан
    Комментировать
  • Планшет на Windows как второй экран к Linux?

    @rPman
    На планшете установи linux в минимальной комплектации, тебе не нужен даже DE, только xserver.
    Затем с помощью xhost + разреши подключение по сети (в добавок в настройках запуска xserver убери ключ -nolisten это тоже нужно для работы в сети)

    Теперь можно запускать приложения на удаленном мониторе (целиком, но не растянуть на несколько), изображение и клавиатура с мышью будут также этой удаленной машина, но процессор и видеокарта (с оговорками) будут использоваться локальные.
    DISPLAY=ip:0.0 your_app

    Есть старый не поддерживаемый проект https://manpages.ubuntu.com/manpages/focal/man1/Xd... который позволяет объединить несколько xserver в один большой монитор, хз на сколько поддерживается сейчас

    Ещё есть x2x, тоже хз как поддерживается.

    Для wayland такого нет, так что это ограничит выбор DE
    Ответ написан
  • Как лучше настроить DE и службы в Linux на слабом планшете-трансформере?

    @rPman
    Рекомендация, поставить дополнительно firefox, он с памятью лучше дружит, и конечно не открывать миллион вкладок... если какой то веб сайт не будет работать с ним (а я такое встречаю периодически, типа тот же skype работал онлайн только в chromium-браузерах) то установить чистый chromium (например из snap)

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

    штатная ubuntu заточена под сенсорное управление, большие кнопки для пальцев и т.п... но по мне так очень тяжелая (тормозная и кушает память)

    p.s. когда то очень давно на 1гб eeepc900 я ставил awesome de (есть в репах), маленький экран, очень мало требует памяти (кажется 50мб против 300мб ubuntu), все окна автоматом раскрывались fullscreen, но она заточена на клавиатуру, не думаю что кто то пилил в ней хорошую поддержку именно тача... попробовать вам ничего не стоит
    Ответ написан
  • Как настроить iscsi диск чтобы инициатор мог редактировать диск, но при переподключении диск сбрасывался к исходному состоянию?

    @rPman
    сам iscsi так не умеет, как минимум мне не известны такие сервера

    Нужно создать блочное устройство на сервере, умеющее снапшоты, и уже этот снапшот раздавать по iscsi (на выбор от штатного lvm - не эффективно но просто, до btrfs/zfs - эффективно но фрагментирует образы, ну и как пример - qemu nbd на базе cow образов со снапшотами)

    Так же нужна детекция перезагрузки клиента для последующего перезапуска istgtd (для пересоздания снапшота потребуется сначала остановить демона, плюс демон кеширует в памяти содержимое устройства, хотя это отключается) - (тут идей не много, например читать логи dhcpd/tftpd, или, pxe умеет загружать файлы по http, а это значит на сервере можно в http сервере прописать логику на определенные запросы и дергать соответствующие скрипты)
    Ответ написан
    3 комментария
  • Какие возможны проблемы при установке linux системы на гибрид планшета и ноутбука?

    @rPman
    У меня был планшетник+отстегивающаяся клавиатура на этом процессоре (жаль, сломался экран, чинить дороже нового), на нем прекрасно шел linux (кажется 18.04 ubuntu) из странного, какой то непонятный процесс изредка отжирал одно ядро процессора (что то там intel в названии) я не разбирался тогда, посчитал его частью стандартных драйверов... особо ничего не настраивал но не работало hibernate (обычный сон работал), сенсорный экран и wifi/bluetooth тоже работали.

    p.s. обычно linux не легче windows, но у вас ЕСТЬ возможность сделать его легким, в отличии от windows, и при этом продолжать получать обновления и свежий софт.
    Ответ написан
    Комментировать
  • Как изменить расширение экрана в Live Oc Linux mint 22.1?

    @rPman
    Зачем вам live система? Устанавливаете система как обычно на флешку в обычном режиме как на диск.

    Почти наверняка проблема с драйверами nvidia, как следует будет работать только официальные проприетарные, мало того, настоятельно рекомендую устанавливать не те что предлагает linux в настройках, а загрузить с офф сайта nvidia
    Ответ написан
    4 комментария
  • Аналог xrandr для терминала не заходя в gui?

    @rPman
    xrandr только меняет видеорежим (разрешение, частоту и т.п.) но не влияет на 'скорость воспроизведения', для работы этой утилиты требуется xserver, а точнее переменная DISPLAY, можно посмотреть ее значение из графической консоли и вручную установить в терминале... типа так:
    DISPLAY=:0.0 xclock
    это должно запустить xclock в графическом терминале, даже если ты сейчас в текстовом.

    правда если текстовый терминал это ssh подключение, то может потребоваться настройка прав доступа к xserver (утилита xhost +).

    Если проигрывание тормозит в таком разрешении, то скорее всего mpv у тебя работает в режиме процессора. Ты пробовал другие плееры? fflay (от ffmpeg), vlc или попробовать встроенный плеер в chromium (гугл прилично в поддержку видео вложил при его разработке, я помню на моей странной старой слабой машиной с почти не поддерживаемой линуксом встройкой intel, только так работало видео.)
    upd. https://forums.raspberrypi.com/viewtopic.php?t=317511
    Ответ написан
    1 комментарий
  • Как установить Linux Mint на все ssd диски?

    @rPman
    Во время установки тебя спросят, куда устанавливать, небольшой менеджер раздела, где можно создать раздел, отформатировать и указать, какая точка монтирования будет на нем. Например на одном диске корень /, на другом /usr, на третьем /home

    Полагаю вопрос задан не корректно, так как диски большие, типовая установка linux пара десятков гигабайт, все влезет на один диск.

    Подключить диски можно вручную после установки, отредактировав /etc/fstab

    Какую именно задачу решаешь?
    Ответ написан
    1 комментарий
  • Успевает ли Rapberry записать в лог при краше?

    @rPman
    Логи и отладка, само собой логи настроить проще.

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

    @rPman
    формально, можно приобрести wifi адаптер и штатно настроить в ОС точку доступа, но аппаратно устройство должно поддерживать access point режим, что не всегда имеется и оказывается до сих пор практикуется.

    искать информацию этой поддержки по форумам
    (мне понравилось как с этим справился гугловский deep research, но не пытайся просить его найти список, дай ему список из интернет магазина и спроси, какие из них поддерживают AP)
    Ответ написан
    Комментировать