LINUX.ORG.RU

Сообщения suuaq

 

KVM с федоркой жрёт процессор

Запустил в гномофедоре в этом их boxes гномофедору.

Это оно в хосте в idle:

$ ps -C qemu-system-x86_64 um
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
username  3697 54.8 13.8 3504936 2245724 ?     -    12:31   8:42 /usr/bin/qemu-system-x86_64 -machine accel=kvm -name guest=fedora25-wor,debug-threads
username     - 16.8    -      -     - -        Sl   12:31   2:40 -
username     -  0.0    -      -     - -        Sl   12:31   0:00 -
username     - 15.0    -      -     - -        Sl   12:31   2:23 -
username     - 12.1    -      -     - -        Sl   12:31   1:55 -
username     -  4.6    -      -     - -        Sl   12:31   0:44 -
username     -  5.4    -      -     - -        Sl   12:31   0:52 -
username     -  0.3    -      -     - -        Sl   12:31   0:03 -
username     -  0.0    -      -     - -        Sl   12:31   0:00 -
username     -  0.0    -      -     - -        Sl   12:32   0:00 -
username     -  0.0    -      -     - -        Sl   12:32   0:00 -
username     -  0.0    -      -     - -        Sl   12:32   0:00 -
username     -  0.0    -      -     - -        Sl   12:32   0:00 -
username     -  0.0    -      -     - -        Sl   12:35   0:00 -
username     -  0.0    -      -     - -        Sl   12:44   0:00 -
username     -  0.0    -      -     - -        Sl   12:44   0:00 -

А внутри гостя htop пару процентов cpu. Как дальше жить?

 , ,

suuaq
()

virt-manager vs gnome, битва за клавиатуру

Хост - федора 25 с гномом, гость любой. Соединение по spice.

Любые клавиши, на которые реагирует хостовый гном до гостя не доходят. Т.е. на alt+f3 гость реагирует, на alt+f4 окно virt-manager закрывается. В 24 федоре так было, потом починилось без моего вмешательства.

Как чинить багополигон?

 , , , ,

suuaq
()

В django orm вытащить объект вместе с последним объектом по внешнему ключу

Есть Foo. У Foo есть лог с его статусами.

from django.db import models


class Foo(models.Model):
    name = models.CharField(max_length=32)


class FooStatus(models.Model):
    foo = models.ForeignKey(Foo, on_delete=models.CASCADE, related_name='statuses')
    timestamp = models.DateTimeField(auto_now_add=True)
    value = models.CharField(max_length=32)

Нужно вытащить все Foo вместе с их последними статусами.

Что есть:

In [16]: list(Foo.objects.all().annotate(timestamp=F('statuses__timestamp'), status=F('statuses__value')).values('name', 'status', 'timestamp'))
Out[16]: 
[{'name': 'Foo1',
  'status': 'valid',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 42, 19, 548072, tzinfo=<UTC>)},
 {'name': 'Foo1',
  'status': 'invalid',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 42, 25, 953250, tzinfo=<UTC>)},
 {'name': 'Foo2',
  'status': 'ok',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 43, 54, 546427, tzinfo=<UTC>)},
 {'name': 'Foo2',
  'status': 'broken',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 43, 59, 507559, tzinfo=<UTC>)}]

Что нужно:

[{'name': 'Foo1',
  'status': 'invalid',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 42, 25, 953250, tzinfo=<UTC>)},
 {'name': 'Foo2',
  'status': 'broken',
  'timestamp': datetime.datetime(2016, 11, 7, 18, 43, 59, 507559, tzinfo=<UTC>)}]

Т. е. для каждого объекта нужен его статус с позднейшей датой. И всё это хозяйство хочется одним запросом к б. д.

 , ,

suuaq
()

django, postgresql, считать значение во время insert

Есть django с postgresql.

Есть модель:

class Bryak(models.Model):
    year = models.PositiveSmallIntegerField()
    number = models.PositiveSmallIntegerField()

    class Meta:
        unique_together = (
            ('year', 'number',),
        )

Каждый год номер должен начинаться с единицы, т. е

2015, 1
2015, 2
2015, 3
...
2016, 1
2016, 2
2016, 3
...
2017, 1

При добавлении новой инстанции модели должен браться текущий год и автоматически подсчитываться номер.

Как это сделать красиво?

 , ,

suuaq
()

KVM/QEMU ВМ подвисает

Сделал значит одну виртуальную машину и возникло ощущение, что она иногда подвисает. Запустил пинг с хоста, распарсил выхлоп, получилось забавно.

ВНЕЗАПНО возникает лаг на несколько секунд и каждый следующий пакет задерживается РОВНО секунду меньше. Максимум через час повторяется снова.

Куда тут вообще копать?

64 bytes from 192.168.101.202: icmp_seq=15639 ttl=64 time=0.172 ms
64 bytes from 192.168.101.202: icmp_seq=15640 ttl=64 time=0.170 ms
64 bytes from 192.168.101.202: icmp_seq=15641 ttl=64 time=0.194 ms
64 bytes from 192.168.101.202: icmp_seq=15642 ttl=64 time=22804 ms
64 bytes from 192.168.101.202: icmp_seq=15643 ttl=64 time=21804 ms
64 bytes from 192.168.101.202: icmp_seq=15644 ttl=64 time=20804 ms
64 bytes from 192.168.101.202: icmp_seq=15645 ttl=64 time=19804 ms
64 bytes from 192.168.101.202: icmp_seq=15646 ttl=64 time=18804 ms
64 bytes from 192.168.101.202: icmp_seq=15647 ttl=64 time=17804 ms
64 bytes from 192.168.101.202: icmp_seq=15648 ttl=64 time=16804 ms
64 bytes from 192.168.101.202: icmp_seq=15649 ttl=64 time=15804 ms
64 bytes from 192.168.101.202: icmp_seq=15650 ttl=64 time=14804 ms
64 bytes from 192.168.101.202: icmp_seq=15651 ttl=64 time=13804 ms
64 bytes from 192.168.101.202: icmp_seq=15652 ttl=64 time=12804 ms
64 bytes from 192.168.101.202: icmp_seq=15653 ttl=64 time=11804 ms
64 bytes from 192.168.101.202: icmp_seq=15654 ttl=64 time=10804 ms
64 bytes from 192.168.101.202: icmp_seq=15655 ttl=64 time=9804 ms
64 bytes from 192.168.101.202: icmp_seq=15656 ttl=64 time=8804 ms
64 bytes from 192.168.101.202: icmp_seq=15657 ttl=64 time=7804 ms
64 bytes from 192.168.101.202: icmp_seq=15658 ttl=64 time=6804 ms
64 bytes from 192.168.101.202: icmp_seq=15659 ttl=64 time=5804 ms
64 bytes from 192.168.101.202: icmp_seq=15660 ttl=64 time=4804 ms
64 bytes from 192.168.101.202: icmp_seq=15661 ttl=64 time=3804 ms
64 bytes from 192.168.101.202: icmp_seq=15662 ttl=64 time=2804 ms
64 bytes from 192.168.101.202: icmp_seq=15663 ttl=64 time=1804 ms
64 bytes from 192.168.101.202: icmp_seq=15664 ttl=64 time=804 ms
64 bytes from 192.168.101.202: icmp_seq=15665 ttl=64 time=0.163 ms
64 bytes from 192.168.101.202: icmp_seq=15666 ttl=64 time=0.167 ms
64 bytes from 192.168.101.202: icmp_seq=15667 ttl=64 time=0.204 ms
64 bytes from 192.168.101.202: icmp_seq=15668 ttl=64 time=0.186 ms

 ,

suuaq
()

хочу резольвить гостей по имени в jessie с libvirt, но отсутствует nss-плагин

Есть debian jessie с libvirtом и kvm в качестве хоста. Хочу писать ping mylittlevm вместо ping 10.0.100.1.

Пробую через nsswitch.conf вот так, но оно не работает.

man nsswitch.conf говорит:

A service named SERVICE is implemented by a shared object library named libnss_SERVICE.so.X that resides in /lib.

       /etc/nsswitch.conf       NSS configuration file.
       /lib/libnss_compat.so.X  implements "compat" source.
       /lib/libnss_db.so.X      implements "db" source.
       /lib/libnss_dns.so.X     implements "dns" source.
       /lib/libnss_files.so.X   implements "files" source.
       /lib/libnss_hesiod.so.X  implements "hesiod" source.
       /lib/libnss_nis.so.X     implements "nis" source.
       /lib/libnss_nisplus.so.X implements "nisplus" source.

find говорит:

# find /lib/ -name libnss*
/lib/x86_64-linux-gnu/libnss_dns-2.19.so
/lib/x86_64-linux-gnu/libnss_dns.so.2
/lib/x86_64-linux-gnu/libnss_nis-2.19.so
/lib/x86_64-linux-gnu/libnss_hesiod-2.19.so
/lib/x86_64-linux-gnu/libnss_hesiod.so.2
/lib/x86_64-linux-gnu/libnss_files-2.19.so
/lib/x86_64-linux-gnu/libnss_nis.so.2
/lib/x86_64-linux-gnu/libnss_files.so.2
/lib/x86_64-linux-gnu/libnss_compat.so.2
/lib/x86_64-linux-gnu/libnss_nisplus.so.2
/lib/x86_64-linux-gnu/libnss_nisplus-2.19.so
/lib/x86_64-linux-gnu/libnss_compat-2.19.so

Подозреваю, что нет нужной либы, но не могу её в репозитории найти.

Таки либы нет или я не прав? Что делать?

 , ,

suuaq
()

Системд не грузит подписанные модули ядра

Таки делать было нефиг, решил посмотреть на этот ваш secureboot. Включил, накатил свежую федору. Установил virtualbox из rpmfusion. А он при инсталяции свои модули компилирует и они не подписаны.

Короче подписал, импортировал mok, как редхатом написано.

Дальше началось странное. Гружу модули через modprobe - у меня всё работает. Перезагружаю хост - модули не загружены, virtualbox рекомендует systemctl restart systemd-modules-load.service.

# systemctl restart systemd-modules-load.service 
Job for systemd-modules-load.service failed because the control process exited with error code. See "systemctl status systemd-modules-load.service" and "journalctl -xe" for details.

# journalctl -xe --no-pager
...
Aug 03 17:43:37 orion.dwir.net systemd[1]: Stopped Load Kernel Modules.
-- Subject: Unit systemd-modules-load.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-modules-load.service has finished shutting down.
Aug 03 17:43:37 orion.dwir.net systemd[1]: Starting Load Kernel Modules...
-- Subject: Unit systemd-modules-load.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-modules-load.service has begun starting up.
Aug 03 17:43:37 orion.dwir.net systemd-modules-load[8004]: Failed to insert 'vboxdrv': Operation not permitted
Aug 03 17:43:37 orion.dwir.net systemd-modules-load[8004]: Failed to insert 'vboxnetflt': Operation not permitted
Aug 03 17:43:37 orion.dwir.net systemd-modules-load[8004]: Failed to insert 'vboxnetadp': Operation not permitted
Aug 03 17:43:37 orion.dwir.net systemd-modules-load[8004]: Failed to insert 'vboxpci': Operation not permitted
Aug 03 17:43:37 orion.dwir.net systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Aug 03 17:43:37 orion.dwir.net systemd[1]: Failed to start Load Kernel Modules.
-- Subject: Unit systemd-modules-load.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-modules-load.service has failed.
-- 
-- The result is failed.
...

Как так, если вручную всё работало? Решил посмотреть, что этот ваш сервис делает.

# cat /usr/lib/systemd/system/systemd-modules-load.service | grep ExecStart
ExecStart=/usr/lib/systemd/systemd-modules-load

Запускаю это вручную.

# /usr/lib/systemd/systemd-modules-load
Inserted module 'vboxdrv'
Inserted module 'vboxnetflt'
Inserted module 'vboxnetadp'
Inserted module 'vboxpci'

И опять всё работает.

Объясните, что за фигня? Любопытство гложет.

ЗЫ

# ls -la /usr/lib/modules/4.6.4-301.fc24.x86_64/extra/VirtualBox/
insgesamt 1168
drwxr-xr-x. 2 root root   4096  2. Aug 21:18 .
drwxr-xr-x. 6 root root   4096  2. Aug 19:47 ..
-rw-r--r--. 1 root root 538937  2. Aug 21:18 vboxdrv.ko
-rw-r--r--. 1 root root 400529  2. Aug 21:18 vboxguest.ko
-rw-r--r--. 1 root root  15865  2. Aug 21:18 vboxnetadp.ko
-rw-r--r--. 1 root root  37401  2. Aug 21:18 vboxnetflt.ko
-rw-r--r--. 1 root root  35617  2. Aug 21:18 vboxpci.ko
-rw-r--r--. 1 root root  70689  2. Aug 21:18 vboxsf.ko
-rw-r--r--. 1 root root  76137  2. Aug 21:18 vboxvideo.ko

 , , ,

suuaq
()

Достаточно ли экранировать <> против XSS

Да ясно, что недостаточно. У нас тут спор о специфичном случае.

<!doctype html>
<title>hello world</title>
<div>
злобный код писать сюда
</div>

Значит код вставляется вне атрибутов, вне стилей и вне скриптов. Достаточно ли экранировать <> в этом случае? Если нет, то прошу эксплойт в студию.

 

suuaq
()

Аутентификация через LDAP с пользователями в реляционной бд.

Есть таблица (username, passwordhash) в реляционной бд. Есть софтина, которая умеет аутентификацию пользователей через LDAP. Как это красиво-эстетично скомбинировать?

 , ,

suuaq
()

django orm, хочу джойны

from django.db import models
from django.contrib.auth.models import User


class Task(models.Model):
    name = models.CharField(max_length=16, null=None, blank=None)
    max_score = models.PositiveIntegerField(null=None, blank=None)

    def __str__(self):
        return '{}{}'.format(self.name, self.max_score)


class Achievement(models.Model):
    task = models.ForeignKey(Task, null=None, blank=None)
    user = models.ForeignKey(User, null=None, blank=None)
    score = models.PositiveIntegerField(null=None, blank=None)

    def __str__(self):
        return '{} achieved {} in {}'.format(self.user, self.score, self.task)

Есть юзеры. Есть список задач.

Юзер выполнят задачу - создаётся новая ачивка «задача, юзер, набранные очки».

Нужно получить для конкретного юзера список «задача: набранные очки». Если ачивки ещё нет, то набранные очки=0.

 ,

suuaq
()

Разжёвывание sql-инъекций и xss студентоте на практике

Надо сабж.

Хотел запилить пару мелких приложений из серии «как не надо делать» и спустить на них студиоузов, пусть ломают.

Конкретных вопросов не имею, интересны советы/мысли по этому поводу.

 , , ,

suuaq
()

Проброс ssh с сервера на виртуальные машины

Есть сервер, на сервере несколько виртуальных машин. У каждой виртуальной машины свой пользователь. Белый ip-адрес один.

Пользователям надо заходить на свои виртуальные машины по ssh. Шелл на хосте пользователям не нужно.

Можно банально выделить каждому пользователю по порту.

Ещё варианты есть из коробки? По субдомену или по имени пользователя?

 

suuaq
()

Нужно RFID, только дальше

Хочется отслеживать перемещение приборов по зданию. Так, чтобы на прибор шлёпнуть наклейку, пронести его через дверь, а на двери какая нибудь штука засекала, что наклейку пронесли. Чтобы потом было проще узнать, в каком помещении прибор находится.

Я было подумал на RFID, но на всяких ардуинах там дальность только 10см дают.

Но в магазинах же эти пищалки есть на дверях. Это ещё RFID или что-то другое? Где найти?

Интересует набор для самоделкиных, готовое решение не нужно.

 ,

suuaq
()

Архивирование данных надолго

Есть организация. В эту организацию прилетают данные, 1-2 террабайта в год. Эти данные надо бы раз в год куда-нибудь заархивировать и там десять лет хранить. Доступ к данным нужен редко.

Что по этому поводу лучше-надёжней-дешевле? Поставить пару серверов с рейдами? Или какие-нибудь магнитные ленты?

 , ,

suuaq
()

32 Chaos Computer Congress идёт третий день

Например сейчас тётка рассказывает, как вычислить по ip исходникам.

https://streaming.media.ccc.de/

 

suuaq
()

Странные окна в GNOME 3

Поставил я от скуки эту вашу федору с третьегномом. И что-то как-то странно в ней себя некоторые окна ведут, которые видимо не на гтк3.

Допустим файловый диалог в фаерфоксе. Я его по экрану двигаю, а родительское окно двигается вместе с ним. Или я его хочу увеличить, тяну за правый край вправо, а левый край сам симметрично тянется влево. Таже фигня в vlc, virtualbox.

Это нормально вообще?

 

suuaq
()

Рисовать Qt на встраивемом дисплее через серийный порт

Дано: какая-то плата с линуксом, дисплей подключённый через usb-serial, желание рисовать на дисплее кьютешные окошки.

Куда копать?

 , , ,

suuaq
()

Что с безопасностью в языкоспецифичных репозиториях (pip, npm, etc)?

pip, npm, gem, nuget, maven, тысячи их. А ещё есть какие-то docker, vagrant, которые тоже норовят что-то там скачать из интернетов.

В инструкции от каждой первой питоновской либы стоит, чтобы установить, сделай pip libname. А в пипе никаких тебе подписей и вроде даже соединение с сервером не шифруется. Выходит это из области вредных советов, как make install?

Что с остальными?

 , ,

suuaq
()

Стереть прозрачные места в пнг

Есть пнг, всё полупрозрачное надо убрать совсем. Как?

 , ,

suuaq
()

Поймать исключение из коллбэка

Как?

from gi.repository import GLib as glib

def foo():
    print('bar')
    return True

def bar():
    raise Exception('fail')

glib.timeout_add_seconds(1, foo)
glib.timeout_add_seconds(2, bar)
# on exception in bar: print "hello world"

glib.MainLoop().run()

 ,

suuaq
()

RSS подписка на новые темы