Ответы пользователя по тегу Linux
  • Как собрать установочный пакет на Linux для Linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    0) Желательно все упаковать в virtuelenv, если используете pip. Или использовать стандартные пакеты системы.
    1) Создаете каталог для своего пакета, например myservice-0.001
    2) Кидаете все свои исходники в этот каталог, пути ставите, как они у вас будут в целевой системе
    Например:
    etc/systemd/system/myservice.service
    opt/myservice/...
    opt/.myservice-venv/...
    usr/bin/myservice

    И т.д.
    3) Создаете там же каталог DEBIAN, в него кладете файл control - https://www.debian.org/doc/debian-policy/ch-contro...
    , и файл postinst (опционально) - https://www.debian.org/doc/debian-policy/ch-mainta...

    В control описываете свои зависимости и название пакета, какие пакеты замещает
    postinst - исполняемый, запускается после установки пакета, пользхователей там создать, сервис запустить и т.д.
    root@xxx:~/xxx-2.40# cat DEBIAN/control
    Package: xxx
    Version: 2.40
    Section: custom
    Priority: optional
    Architecture: all
    Essential: no
    Installed-Size: 171700
    Maintainer: xxx.ru
    Description: XXX DS system
    Depends: samba, isc-dhcp-server, python-twisted, libdate-manip-perl, libio-socket-multicast-perl
    Replaces: isc-dhcp-server, samba
    Recommends: sudo, vim, nano

    и
    root@xxx:~/xxx-2.40# cat DEBIAN/postinst
    #!/bin/sh
    # postinst script for webpy-example
    #
    # see: dh_installdeb(1)
    
    set -e
    
    # summary of how this script can be called:
    #        * <postinst> `configure' <most-recently-configured-version>
    #        * <old-postinst> `abort-upgrade' <new version>
    #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
    #          <new-version>
    #        * <postinst> `abort-remove'
    #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
    #          <failed-install-package> <version> `removing'
    #          <conflicting-package> <version>
    # for details, see http://www.debian.org/doc/debian-policy/ or
    # the debian-policy package
    
    # source debconf library
    . /usr/share/debconf/confmodule
    
    case "$1" in
    
      configure)
        adduser --quiet --system --home /inbox  xxx || echo "User xxx existed!"
        usermod -p yyyy xxx
        (echo new123; echo new123) | smbpasswd -as xxx
        smbpasswd -e xxx
        systemctl enable xxx
        systemctl start xxx
      ;;
    
      abort-upgrade|abort-remove|abort-deconfigure)
        exit 0
      ;;
    
      *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
      ;;
    
    esac
    
    # dh_installdeb will replace this with shell code automatically
    # generated by other debhelper scripts.
    
    #DEBHELPER#
    
    db_stop
    exit 0

    4) идете на каталог ниже и выполняете
    dpkg-deb --build myservice-0.001
    Рядом получаете файло myservice-0.001.deb

    Доне.

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

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    А как зависает-то? Наглухо? Виснет только графика? Или полностью система?
    У меня большое подозрение, что зависает именно графика, проверить очень просто, если при "зависании" в систему можно попасть по ssh, то причина в драйверах графической карточки. Да, через ping проверять иногда бесполезно, так как на ping иногда может отвечать сетевой адаптер аппаратно.
    В любом случае, какую бы систему вы не поставили, будут проблемы, если не локализуете ваши зависания.
    По дистрибутиву, ставьте любой, мне нравится и debian и ubuntu и fedora, а вот графическую оболочку - тоже можно любую, только с драйверами разберитесь.
    Из графических оболочек предпочитаю XFCE в составе Xubuntu.

    Если тормозит система, то добавьте памяти, тем более для эластика (LEMP)!
    Ответ написан
  • Есть ли толковые аналоги планировщика заданий AT?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Еще порекомендую celery, он хоть и написан на python, но для него есть клиент под PHP
    www.celeryproject.org и https://github.com/gjedeer/celery-php
    Ответ написан
    Комментировать
  • Почтовый сервер для дома?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    1. Без dns и подключения к интернету выйдет полная фигня, с работоспособностью 0%.
    2. Сервер рекомендую для ваших нужд opensmtpd - простой и поддреживает все что нужно.
    3. Для imap - dovecot
    4. Для забора почты с внешних адресов - fetchmail по крону
    5. Хранить почту в формате maildir, никакие базы для этого не нужны!
    6. Бекапить - простым копированием ящиков-папок maildir, ну или прикрутить urbackup или bareos.

    Для вебморды почты ничего не посоветую, так как не пользую.

    На настройки обратить внимание, dkim + spf в dns!

    Самый простой выход, которым я пользуюсь давно, держать всю почту на яндексе, ставить слейв-сервер с отправкой почты через ключи dkim яндекса (они по api яндекса отдаются).
    Итого, почта приходит на яндекс, мейл сервер тянет с нужных аккаунтов через fetchmail почту, сам раздает эти ящики по dovecot-imap, отправляет почту от имени домена, прикидываясь вторичным сервером. Получаем полностью функциональный сервер с возможностью отправки и хранения почты, а всю работу со спамом и вебмордами отдаем яндексу.
    Ответ написан
    4 комментария
  • Что лучше в качестве backup-сервера — Samba или NFS?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую поставить urbackup.org , особенно если сеть небольшая.
    Все будет делаться автоматически, сервер есть под линукс, клиентов, практически под все платформы.
    PS. Ну, или оставить самбу, в nfs могут теряться разные атрибуты, которые несовместимы с ntfs. В самбе они правда тоже теряться могут.
    Так что лучше ставьте ПО для бекапов, которое будет правильно сохранять атрибуты.
    PPS. Ну и если сильны духом, то можно и bareos развернуть. Тоже есть клиент под виндовс.

    И да, и тем и тем пользуюсь, bareos стоит на кластере, а urbackup в офисах.
    Ответ написан
    Комментировать
  • Что лучше в для терминальной станции и тонких клиентов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В общем случае, браузер потянут и сами терминальные клиенты (!).
    Другими словами, просто грузите клиентов по TFTP + NFS, запускайте на них графику, и вуаля. У нас терминальные клиенты загружаются по сети, стартуют Xserver, ну а затем по XDMPC коннектятся к кластеру (немного сложнее конечно).
    90 клиентов что на xrdp, что на xdmcp ваш сервер не потянет, боюсь...
    Ответ написан
    Комментировать
  • Как посмотреть список подключенных хостов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    iwinfo wlan0 assoclist
    или
    iw dev wlan0 station dump
    Ответ написан
    Комментировать
  • Почему не проходит большой пакет?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Если включаете jumbo frame, то на всех устройствах сегмента он должет быть ключен.
    Иначе, устройства, на которых он не включен, не смогут работать, стеми, у кого jumbo frame.
    Другими словами, в кадрах ethernet никакой фрагментации не предусмотрено, и когда большой кадр приходит на устройство, которое его не ждет, то этот кадр просто будет отвергнут. Более того, один JF будет принимающей стороной воспринят, как два кадра, что еще сильнее усугубит ситуацию.
    https://ru.wikipedia.org/wiki/Jumbo-кадр
    Ответ написан
    2 комментария
  • Какая причина аномально больших логов в xUbuntu?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Такое ощущение что проблема с USB WiFi адаптером и/или его драйвером. Также жизнь может портить драйвер nvidia (хотя непохоже). Попробуйте или переставить ядро, или поменять WiFi.
    Ну и хотелось бы знать конфигурацию компухтера, версию ядра и системы, что запущено. Также, какие драйверы установлены, вывод lsmod.
    Ответ написан
    Комментировать
  • Почему зависает и НЕ зависает консоль в Linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Проблема как раз в переключении режимов из графики в текст и обратно, при работающей графике. Проявляется иногда не только на драйверах интел, но и на других карточках, кому как повезет. Но интельные драйверы здесь в лидерах. Да, проявляется очень часто из-за включенного скринсейвера с какими нибудь фракталами и очень активным GPU. Подробно описывать суть проблемы не буду, но связана она с распределением ресурсов графической памяти в разных драйверах, отвечающих за консоль и собственно Xwindow, и загрузкой дополнительных ресурсов (расширение буфера, подгрузка фонтов и т.д.) в "текстовую" (codepage) часть карточки. При этом графический драйвер вполне может переписать часть информации, аллокированной консольным драйвером.

    Самый простой выход из положения, отказаться от красивостей в консоли, если используете Xwindow. Выбирайте что-то одно...

    Если графика (XWindow) не запущена, то проблем с modeset никаких нет!
    Ответ написан
  • Как в iptables открыть порт только для частной сети?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вы все еще пишете iptables руками?! Тогда мы идем к вам!
    Поставьте наконец firehol или ufw, или какой другой аналог автогенераторов правил.

    Мой фаворит - firehol - https://firehol.org
    # apt-get install firehol
    # vi /etc/default/firehol
    # /etc/init.d/firehol start|stop|restart|status

    Ну и конфигурирования под ваши нужды
    server_redis_ports="tcp/6379 udp/6379"
    client_redis_ports="default 6379"
    
    redirect to 22 proto tcp dport 2244
    
    interface eth0 internet
        policy drop
        protection strong
        server smtp accept
        server http accept
        server ftp  accept
        server ssh  accept ### (!) проверить сначала работу по 2244, не выключать текущую сессию ssh!
        client ping accept
    
    interface eth1 myprivatelan
        policy reject
        server "ping ssh redis" accept src 10.0.0.0/24
        server dhcp accept
        client "ssh ping redis dhcp"  accept
    Ответ написан
  • Должен системный администратор знать теорию сетей?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В принципе можно ничего не учить. Но настанет день, когда ваша почта затрещит по швам, а сервак замрет под нагрузкой. День, два, три... и вы, батенька, без работы. А как же было хорошо года два назад, когда и сервак и почта крутились....
    И интересно, как же это вы сервак настраиваете, если не знаете ни о размерах окон и буферов приема/передачи, ни о количестве открытых файлов и где их поменять, как оно там внутри крутится на эвентах или тридах или процессах, ни как поднять внутренний интерконнект и сделать самый простой фейловер. Я уж не говорю про кластеризацию, распределенность, и прочие вещи...
    А чо вам дадут джамбофреймы, а стоит ли городить виланы, а чо делать с десятком-другим виртуалок, ospf поднимать или ручками маструбировать? И это только 1% от вопросов, которые в реальных случаях решаются. Что делать с удаленным офисом, двумя, тремя? Что делать с сотней удаленных компов в магазинах или заправках?
    Как быть, если кабель прокинуть нельзя?
    Поставить две стойки с серверами, чо делать-то будем? А поставим два сервера или три? Как диски подключать к ним FC или IB или iSCSI с multipath?
    А!!! Да хер бы с ним! "Сервак" настроил, почту поднял.

    PS. Мне 45, программировать начал в 14. и до сих пор обучаюсь чему-то новому. И я не боюсь поменять работу.

    PPS. Касательно винды. Чо делать, если 2 сетевухи в нее воткнут из разных подсетей?
    Вы же на собеседование собрались. А я вот помню, как MSSQL в такой конфигурации ерзал, как уж на сковороде.

    Да, вот "простая" задачка, два офиса объединить, в обоих офисах сеть 192.168.0.xxx
    Ответ написан
    1 комментарий
  • Хочу сделать свой дистрибутив linux на основе существующего?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Все достаточно просто - https://ru.m.wikipedia.org/wiki/Linux_From_Scratch
    Ответ написан
    Комментировать
  • Как сделать синхронную запись в пайп?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Так понятно. Вам лучше всего перейти на "сообщения" со свое структурой.
    В заголовке сообщения просто ставите его длину, а уже в цикле считываете само тело до достижения длины. Таким образом вы не будете зависеть от буферов и прочей асинхронности записи.
    Собственно с сокетами такая же история, да и с остальными потоками.
    Ответ написан
  • Как фиксировать время движения курсора?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Посмотрите в сторону wxwidgets или qt и биндингов этих библиотек с питоном. Есть стандартное демо-приложение под названием xeyes (глаза), это приложение как раз и следит за курсором и рисует глазки. Изначально это приложение написано на C на чистом xlibs, но функционал должен присутствовать в любом фреймворке.

    Вот как раз класс в wxwidgets, перехватывающий события мышки - docs.wxwidgets.org/3.1.0/classwx_mouse_event.html

    Ну и на всякий случай - docs.wxwidgets.org/3.1.0/overview_events.html
    Ответ написан
    Комментировать
  • Как организовать общесистемный мониторинг чтения определенных файлов с контролем объемов прочитанного?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В линуксе есть прекрасный механизм наблюдения за файлами и директориями inotify. Так что можно не уходить с самбы и не писать свою fs на fuse.
    https://ru.m.wikipedia.org/wiki/Inotify
    Ответ написан
  • Возможно ли включить пользователя в группу sudo без прав root?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Обычно я добавляю группу командой
    adduser myuser mygroup
    Ну а для того, чтобы восстановить справедливость, достаточно загрузиться с флешки и поправить группу в /etc/groups и /etc/passwd
    Ну и можно загрузиться и без флешки, просто добвив в параметры загрузки ядра init=/bin/bash
    А потом перемонтировать корневую систему
    mount / -o remount,rw
    Ответ написан
    7 комментариев
  • Какой тип агрегации каналов использовать для максимальной пропускной способности?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ох.
    1) Уходите с гластера. Используйте CEPH. Не делайте наших ошибок, он не расширяемый практически, да и с производительностью были проблемы. Тем более будут использовать его как хранилище образов, здесь CEPH на порядок лучше, отдает сразу блочное устройство.
    2) Агрегацию - LACP, во первых это стандарт, во вторых, поддерживается на коммутаторах.
    3) А еще лучше - две сети, одну на клиентов, вторую на гластер/ceph, причем не поскупитесь, ставьте 10Gb или Infiniband.
    Ответ написан
    Комментировать
  • Почему приложение не получает видеопоток, поступающий на сетевой интерфейс?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Пропишите на нужный интерфейс роутинг на адреса мультикаста
    Например
    ip route add 224.0.0.0/4 via dev eth2
    Ну и для того, чтобы мультикаст маршрутизовался с интернфейса на интерфейс, нужно ставить специального демона, иначе маршрутизации мультикаста не будет!
    smcroute и igmproute.
    Ну и статья на всякий случай - https://www.altlinux.org/Static_Multicast_Routing
    ну и - http://xgu.ru/wiki/Multicast_в_Linux
    Ответ написан
  • Как увидеть содержимое папки var/www?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Папка /var/www, начинающаяся с / - это папка относительно корня файловой системы.
    Папка var/www, начинающаяся с www - это папка относительно текущего каталога.
    Текущий каталог можно узнать командой pwd.
    Ответ написан
    Комментировать