LINUX.ORG.RU

Сообщения chegeware

 

Fork и память

Форум — Admin

Доброго всем,

Есть желание форкнуть огромный процесс и дочерний процесс полностью заменить другим огромным процессом.

Например, в Перле:

fork == 0 && exec "foo huge";

Так вот, задумался, а хорошая ли это практика? В плане утилизации ресурсов памяти.

Спасибо.

 

chegeware
()

mysql 2014-00-00

Форум — Admin

Мускуль, зачем?

select cast('2014-00-00' as date) + interval 1 day
select cast('2014-03-00' as date) + interval 1 day

 

chegeware
()

PHP model часть через websocket

Форум — Web-development

Доброго.

Вот, допустим, сидит один чувачок на PHP со всякими джомла, дизайнерство любит и пусть любит.Но не любит писать сложные запросы к базе.

Хотелось бы завернуть получение данных в PHP из базы через некое АПИ, которое реализовано, допустим, на работу через вебсокет. Данные будут возвращаться JSONом. Естественно на стороне АПИ все круто, быстро, кэшировано.

Насколько такое решение на вебсокет оправдано? Какие еще возможны решения?

Exec не нужен.

Спасибо.

 , ,

chegeware
()

Определить выполнение дампа mysql

Форум — Admin

Доброго мира.

Нужно узнать когда делается дамп баз mysql. Только средствами самого мускуля. В принципе, что-то гуглится, но может кто подскажет конкретно.

Спасибо.

 ,

chegeware
()

Все модули ядра загружены, но не нужны

Форум — Linux-install

Доброго, всем.

Допустим, установка gentoo. Собрано ядро:

genkernel --menuconfig --lvm --mdadm --install  all

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

Загружается нормально, есть initrd. Но

lsmod
показывает ВСЮ тонну модулей, которые еще не нужны. Короче, загружены ПОКА ненужные модули. Никаких конфигов по модулям не трогалось.

Как убрать автозагрузку ВСЕХ собранных модулей ядрышка? Где это происходит?

Спасибо.

 kernel modules gentoo

chegeware
()

Grub2 не ставится

Форум — Admin

Доброго.

Ставится gentoo на lvm+raid1

Boot раздел отсутствует, вот схема устройств:

rescue / # lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                              8:0    0   2.7T  0 disk  
|-sda1                           8:1    0     2T  0 part  
| `-md0                          9:0    0     2T  0 raid1 
|   |-vg_mirror-lv_root (dm-0) 253:0    0    50G  0 lvm   /mnt/gentoo
|   `-vg_mirror-lv_var (dm-1)  253:1    0     2T  0 lvm   /mnt/gentoo/var
`-sda2                           8:2    0 746.5G  0 part  
sdb                              8:16   0   2.7T  0 disk  
|-sdb1                           8:17   0     2T  0 part  
| `-md0                          9:0    0     2T  0 raid1 
|   |-vg_mirror-lv_root (dm-0) 253:0    0    50G  0 lvm   /mnt/gentoo
|   `-vg_mirror-lv_var (dm-1)  253:1    0     2T  0 lvm   /mnt/gentoo/var
`-sdb2                           8:18   0 746.5G  0 part  
loop0                            7:0    0   1.5G  1 loop  

Усрановлен grub

[ebuild   R   ~] sys-boot/grub-2.00_p5086:2  USE="device-mapper multislot nls -custom-cflags -debug -doc -efiemu -libzfs -mount -sdl -static {-test} -truetype" GRUB_PLATFORMS="coreboot pc -efi-32 -efi-64 -emu -ieee1275 -multiboot -qemu -qemu-mips -yeeloong" 0 kB

Теперь сама проблема. Запускаю установку grub и ступор:

rescue / # grub2-install --modules="lvm raid mdraid1x reiserfs" --no-floppy /dev/sda
Path `/boot/grub2' is not readable by GRUB on boot. Installation is impossible. Aborting.

А до этого тоже конфиг ругался:

rescue / # grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-genkernel-x86_64-3.8.13-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.8.13-gentoo
mdadm: cannot open /dev/md0  : No such file or directory
/usr/sbin/grub2-probe: error: cannot open `/dev/md0  ': No such file or directory.
mdadm: cannot open /dev/md0  : No such file or directory
/usr/sbin/grub2-probe: error: cannot open `/dev/md0  ': No such file or directory.
mdadm: cannot open /dev/md0  : No such file or directory
/usr/sbin/grub2-probe: error: cannot open `/dev/md0  ': No such file or directory.
done

Отдельно проба и тоже самое:

rescue / # grub2-probe -v -t fs /boot/grub2
grub2-probe: info: cannot open `/boot/grub2/device.map': No such file or directory.
grub2-probe: info: changing current directory to /dev/mapper.
grub2-probe: info: /dev/dm-0 is an LVM.
mdadm: cannot open /dev/md0  : No such file or directory
grub2-probe: error: cannot open `/dev/md0  ': No such file or directory.

Как так? Ведь raid на месте:

rescue / # mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Thu Aug  8 05:47:17 2013
     Raid Level : raid1
     Array Size : 2147479651 (2048.00 GiB 2199.02 GB)
  Used Dev Size : 2147479651 (2048.00 GiB 2199.02 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Thu Aug  8 13:24:53 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : rescue:0  (local to host rescue)
           UUID : a192dc51:120fd3d2:f677d519:8e915e11
         Events : 22

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

Понять не могу.

Вопрос: как починить установку загрузчика?

Спасибо кто откликнется.

 , , ,

chegeware
()

perlbrew + cron

Форум — Admin

Доброго всем.

Crontab никак не может .bash_profile .bashrc для perlbrew

Пока сделал так (crontab -e):

# init perlbrew
PB=source ~/perl5/perlbrew/etc/bashrc; perlbrew use perl-5.x.x
x x x x x eval $PB; perl ...
x x x x x eval $PB; perl ...
...

Если сделано perlbrew switch, тогда perlbrew use в строке PB не надо.

 ,

chegeware
()

DB2 Express-C

Форум — Development

Доброго, други.

Поделитесь, пожалуйста, своими впечатлениями об IBM DB2 Express-C для бесплатного пользования, если я правильно понял.

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

Ну и разные замечания, отзывы, сравнения с PostgreSQL...

Спасибо.

 ,

chegeware
()

Пид запущенного процесса

Форум — Admin

Доброго, други!

Дано: запускаю в скрипте

#!/bin/bash
...
ssh -f -N -L $tunn_port:$access_host:22  $tunn_login@$tunn_host
...

Задача: завершить туннель в конце скрипта.

killall - не годится.

Туннель со sleep делал.

Пробовал start-stop-daemon - получает не тот пид.

Т.е. хорошо бы получить пид команды туннеля.

Парсить ps?

Спасибо.

 bash pid

chegeware
()

Тормозится и не идет трафик шлюза

Форум — Admin

Доброго, други.

Было: TP-Link коробочка-шлюз с PPPoE.

Поставил: системный блок с двумя сетевыми карточками. ОС - Gentoo, ядро собирал руками. PPP поднимается без проблем. Iptables настроил для нужд NAT и FORWARD. Все это делал это много раз.

Проблема: из LAN медленно, а часто вообще не открываются многие сайты, даже Гугл иногда (именно - иногда) не идет. Все пингуется.

До этого с китайской коробочкой не было проблем. Из самого gentoo-шлюза любой сайт без проблем. Смотрел tcpdump, пакеты LAN набегают очень медленно, но какой-то трафик идет.

Сталкиваюсь с таким впервые, вообще без понятия, что может быть.

Прошу помочь и подсказать, в чем может быть причина? Может быть проблема, что драйвер сетевых интеловских карт поставил e1000e, а есть еще e1000?

Спасибо.

 ,

chegeware
()

Пулл соединений с базой

Форум — Web-development

Доброго всем.

Пробую на Питоне3 + uwsgi-сервер простое приложение, где естестественно нужно иметь пулл соединений с БД (Postgresql). Причем остановился на драйвере py-postgresql, потому, что в распространенном драйвере Psycopg была ошибка и речь сейчас не о ней. Сразу выяснилось, что драйвер py-postgresql не является threading safe и делаю попытку блокировки при извлечении соединения из пула.

#!/usr/bin/python3
import postgresql
import threading

lock = threading.Lock()
db = []
db.append(postgresql.open("pq://postgres@127.0.0.1/postgres"))
for i in range(10):
    db.append(db[0].clone())

class App(object): #threading.local
    def run(self, env, start_response):
        lock.acquire(1)
        self.db = db.pop()
        lock.release()
        self.st = self.db.prepare('select $1::text')
        resp = ['<h1>Работает</h1>'.encode('utf-8'), str(self.st('тест 1')).encode('utf-8')]
        lock.acquire(1)
        db.insert(0, self.db)
        lock.release()
        start_response('200 OK', [("Content-type", "text/html; charset=UTF-8"),])
        return resp

def application(env, start_response):
    return App().run(env, start_response)

Проблема драйвера py-postgresql для treading так и не решилась для числа worker`ов uwsgi больше чем 1 (processes=1 работает).

Поэтому хочу спросить, что еще можно попробовать сделать, чтобы нормально работать в тредах uwsgi с подготовленными соединениями таких драйверов и вообще общих разделяемых данных?

Что-то слышал еще про threading.local для моего класса App(), но тоже не работает.

Пробовал еще pgbouncer, но и тут py-postgresql не хотел соединяться с прокси.

Не ругайте, если в чем-то ошибаюсь, в терминологии.

 , , ,

chegeware
()

Буферизация на POST-запросах

Форум — Web-development

По какой-то причине Nginx «зажевывал» отклики от uWSGI-сервера (режим uwsgi) на POST-запросы.

Отключил буферизацию uwsgi_buffering off - тогда все нормально заработало.

В доке http://wiki.nginx.org/HttpUwsgiModule сказано:

For Comet applications based on long-polling it is important to set uwsgi_buffering to off, otherwise the asynchronous response is buffered and the Comet does not work.

Не понял о чем речь.

 , ,

chegeware
()

Свое WSGI-приложение

Форум — Web-development

Доброго всем.

Тут товарищ поделился сообщением о быстром wsgi-сервере bjoern Pythons фрэймворки. Скорость. .

Bjoern пока не идет на Питоне3, а мне жаба давит на хороший драйвер Postgresql http://python.projects.postgresql.org/ .

Я остановился на связке Nginx+uWSGI+свое WSGI-приложение.

Естественно перерыл много документации, но не во всем разобрался до конца. Так вот, не могу настроить uWSGI на работу в режиме fastcgi или uwsgi для своего приложения.

Пока получилось только в режиме http-сервера.

Вот часть конфига Nginx:

                location / {
                         proxy_pass http://127.0.0.1:8081;
                }

Вот конфиг uwsgi.ini:

[uwsgi]
http=127.0.0.1:8081
module = test_wsgi:application

Вот основа приложения:


class App(object):

    def run(self, env, start_response):#
        start_response('200 OK', [("Content-type", "text/html; charset=UTF-8"),])
        return ['<h1>Работает</h1>'.encode('utf-8'),]

def application(env, start_response):
    return App().run(env, start_response)

Пробовал передавать uwsgi параметры типов протоколов uwsgi и fastcgi и соответственно делал в nginx.conf uwsgi_pass ... или fastcgi_pass ... и include uwsgi_params; или include fastcgi_params; Запросы просто повисали, ответа не получал.

Подскажите, как настроить Nginx и uWSGI для работы по протоколам uwsgi или fastcgi. Или может у меня структура приложения неправильная.

Спасибо.

 , ,

chegeware
()

Поборол ИЕ, когда в адресной строке и в ссылках (GET) кириллические буквы

Форум — Web-development

 , ,

chegeware
()

[html][form] Динамическая форма отправляет не все элементы

Форум — Web-development

Доброго, всем.

Короче, html-форма с динамическим содержимым, элементы добавляются по ходу действий пользователя. Добавление - простым .innerHTML внутри блоков формы из другого места.

Сначала все работало. Потом смотрю динамические элементы не попадают в POST-запрос (обычный, не ajax).

Смотрел расширением ФФ [Web developer] - нормально показывает всю информацию о форме.

Проверил банальным:

for (var i in this.form.elements) {alert(this.form.elements[i].name);}
Тоже все нормально.

Что может быть? Спасибо.

 ,

chegeware
()

[freeradius] wi-fi доступ по паролю (WPA)

Форум — Admin

Доброго, всем.

Вот есть, допустим, дом отдыха, гостиница. Посетитель при вселении получает пароль к беспроводной сети и доволен. Установили точки доступа с freeradius авторизацией. Настроил freeradius для авторизации, проверил в линуксе через redtest, radeapclient, wpa_supplicant/eapol_test, все прошло успешно (после небольших проблем, не суть).

И вот выясняется, что виндовс клиенты (еще не знаю про айфоны) нуждаются в установке самоподписанного сертификата из конфига радиуса. Но это не реально по жизни.

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

Спасибо. С уважением, Михаил

 

chegeware
()

Доступ WPA по паролю через freeradius, пользователи в sql

Форум — Admin

Доброго всем.

Задача: доступ в беспроводную сеть (WPA) по паролям через freeradius.

Настроил и работает доступ через файл пользователей raddb/users c одной строчкой на пользователя:

...
пользователь    Cleartext-Password := "пароль"
...

Проверил утилитой wpa_supplicant/eapol_test протоколы PEAP, EAP-TLS, EAP-TTLS-MD5 и EAP-TTLS-MSCHAPv2, все нормально - SUCCESS.

Теперь хочу сделать проверку записей пользователей из sql, как написано в http://wiki.freeradius.org/SQL-HOWTO. Делаю одну запись для пользователя в таблице radcheck

...
пользователь          | Cleartext-Password | :=            | пароль 
...

Radius нормально коннектится к базе, на первом же запросе в цепочке авторизации выдает:

...
++[sql] returns ok
....

Дальше продолжается цепочка запросов уже без участия sql.

И вот оно, на 8 запросе вижу, что срабатывает конфиг inner-tunnel:

...
server inner-tunnel {
# Executing section authorize from file /usr/local/etc/raddb/sites-enabled/inner-tunnel
+- entering group authorize {...}
...

В случае с доступом через файл raddb/users вижу такое:

...
[mschap] Told to do MS-CHAPv2 for test with NT-Password
[mschap] adding MS-CHAPv2 MPPE keys
++[mschap] returns ok
MSCHAP Success
...

А вот в случае с sql доступом хуже:

...
[mschapv2] # Executing group from file /usr/local/etc/raddb/sites-enabled/inner-tunnel
[mschapv2] +- entering group MS-CHAP {...}
[mschap] No Cleartext-Password configured.  Cannot create LM-Password.
[mschap] No Cleartext-Password configured.  Cannot create NT-Password.
[mschap] Creating challenge hash with username: test
[mschap] Told to do MS-CHAPv2 for test with NT-Password
[mschap] FAILED: No NT/LM-Password.  Cannot perform authentication.
[mschap] FAILED: MS-CHAP2-Response is incorrect
++[mschap] returns reject
[eap] Freeing handler
++[eap] returns reject
Failed to authenticate the user.
...

Естественно предположение, что не хватает прописать sql в raddb/sites-enabled/inner-tunnel, но об этом ни слова в http://wiki.freeradius.org/SQL-HOWTO

Другое предположение, что может надо прописать какие-то записи отклика в sql-таблицу/ы radreply/radgroupreply

Буду рад комментариям, может кто делал подобное. Спасибо.

С уважением, Михаил

chegeware
()

Samba PDC LDAP добавление компов в домен

Форум — Admin

Доброго всем.

Извиняюсь, проблему ранее постил, но без конфигов и логов, никак не могу решить. Хочу повторить.

Поднят PDC Samba + LDAP. Пользователей авторизует нормально.

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[netlogon]"
WARNING: The "share modes" option is deprecated
Processing section "[profiles]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[work]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

[global]
	workgroup = MULTI
	server string = Samba Server
	interfaces = 127.0.0.1/8, 192.168.1.1/24
	bind interfaces only = Yes
	map to guest = Bad User
	passdb backend = ldapsam:"ldap://127.0.0.1/"
	client NTLMv2 auth = Yes
	log level = 3
	log file = /var/log/samba/log.%m
	max log size = 50
	time server = Yes
	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
	printcap name = cups
	add user script = /usr/sbin/smbldap-useradd -m -a "%u"
	delete user script = /usr/sbin/smbldap-userdel "%u"
	add group script = /usr/sbin/smbldap-groupadd -p "%g"
	delete group script = /usr/sbin/smbldap-userdel "%g"
	add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
	delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
	set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
	add machine script = /usr/sbin/smbldap-useradd -w -i "%u"
	logon path = \\%L\profiles\%U
	logon drive = M:
	logon home = 
	domain logons = Yes
	os level = 65
	preferred master = Yes
	domain master = Yes
	dns proxy = No
	wins support = Yes
	ldap admin dn = cn=root,dc=multi,dc=local
	ldap delete dn = Yes
	ldap group suffix = ou=groups
	ldap idmap suffix = ou=idmap
	ldap machine suffix = ou=hosts
	ldap suffix = dc=multi,dc=local
	ldap ssl = no
	ldap user suffix = ou=users
	idmap backend = ldapsam:ldap://127.0.0.1/
	idmap uid = 10000-20000
	idmap gid = 10000-20000
	hosts allow = 192.168.1., 192.168.2., 127.0.0.1

[homes]
	comment = Home Directories
	valid users = %S
	read only = No
	browseable = No

[netlogon]
	comment = Network Logon Service
	path = /var/lib/samba/netlogon
	guest ok = Yes
	browseable = No
	share modes = No

[profiles]
	path = /var/lib/samba/profiles
	read only = No
	guest ok = Yes
	profile acls = Yes
	browseable = No

[printers]
	comment = All Printers
	path = /var/spool/samba
	printable = Yes
	browseable = No

[public]
	path = /var/lib/samba/shares/public
	read only = No
	create mask = 0777
	directory mask = 0777

[work]
	path = /var/lib/samba/shares/work
	valid users = "@Domain Users"
	force group = Domain Users
	read only = No
	create mask = 0770
	directory mask = 0770

Возникли проблемы с включением компов в домен, как виндовых, так и линуксовых.

Добавляю комп с виндовс 7 в домен. Задал два ключа реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters] DomainCompatibilityMode=dword:00000001 DNSNameResolutionRequired=dword:00000000. Винда в окошке пишет такую ошибку:

При присоединении к домену .... произошла ошибка:

Указанная учетная запись компьютера не найдена...

в логах самбы на сервере следующее:

...
[2011/09/27 00:42:08.907676,  2] passdb/pdb_ldap.c:572(init_sam_from_ldap)
  init_sam_from_ldap: Entry found for user: kappa-win$
...

[2011/09/27 00:42:08.908633,  0] passdb/pdb_get_set.c:212(pdb_get_group_sid)
  pdb_get_group_sid: Failed to find Unix account for kappa-win$
...

В лдапе запись компьютера kappa-win$ создается. При повторной попытке включения в домен винда ругается, что компьютер с таким именем уже есть в домене. Смотрел getent passwd, там пользователя kappa-win$ нет (может должен и там появляться?).

Делаю включение другой линукс-самбы в домен $ net rpc join -S LINUXSERV -U root с первого раза не джойнится, в логах:

...
[2011/09/19 21:59:11.027840,  3] passdb/pdb_interface.c:348(pdb_default_create_user)
  _samr_create_user: Running the command `/usr/sbin/smbldap-useradd -w -i "dzeta$"' gave 0
[2011/09/19 21:59:11.028549,  3] passdb/pdb_interface.c:365(pdb_default_create_user)
  pdb_default_create_user: failed to create a new user structure: NT_STATUS_NO_SUCH_USER
...

Запись в лдапе самба-компа тоже создается, но не джойнится. Ввожу второй раз команду $ net rpc join -S LINUXSERV -U root Удачно включает стороннюю самбу в домен со второго раза.

Где накосячил? Подскажите, пожалуйста. Спасибо.

chegeware
()

Openfire s2s

Форум — Admin

Доброго всем.

Имеется собственный jabber-сервер OpenFire.

В файрволе открыты порты:

ACCEPT     tcp  --  anywhere             anywhere            multiport dports xmpp-client,xmpp-server 

В доменной зоне прописаны сервисные записи dig -t SRV _xmpp-*._tcp.xxxxx.ru

_xmpp-server._tcp.xxxxx.ru. 3600 IN	SRV	20 0 5269 jabber.xxxxx.ru.
_xmpp-client._tcp.xxxxx.ru. 3600 IN	SRV	20 0 5222 jabber.xxxxx.ru.

jabber.xxxxx.ru.	3513	IN	A	x.y.z.a

Подключаюсь издалека к своему серверу нормально. Хочу добавить собеседника из другого домена. Получаю ошибку 404 - не найден сервер.

Смотрю на сервере tcpdump -i eth1 port 5269:

07:52:02.114006 IP xxxxx.ru.50822 > hermes.jabber.org.xmpp-server: S 111626482:111626482(0) win 14520 <mss 1452,sackOK,timestamp 81233551 0,nop,wscale 7>
07:52:02.304799 IP hermes.jabber.org.xmpp-server > xxxxx.ru.50822: S 3794059739:3794059739(0) ack 111626483 win 5792 <mss 1460,sackOK,timestamp 847510294 81233551,nop,wscale 7>
....
....

Т.е. мой сервер связывается с сервером собеседника, но что-то не срастается. В логах ничего нет.

Кто-что не нашел? Ничего понять не могу. Поясните, пожалуйста. Спасибо.

chegeware
()

dhcp установить hostname

Форум — Admin

Доброго всем.

Есть сетевая загрузка десктопов с одного образа с корнем в NFS. Хочу сделать, чтобы каждому компу присваивалось свое имя (hostname). Делаю на сервере в dhcpd.conf такие записи:

...
host comp163 {
        hardware ethernet 00:25:02:14:23:2b;
        fixed-address 192.168.1.163;
       option host-name comp163;
}
...

Запускаю загрузку и после запуска init-скрипта dbus выдается [ok] и полный ступор.

Без опции option host-name компы нормально грузятся, но имена выставлены как их IP-адреса.

С дури еще пробовал ставить dhcpcd-dsub, но без толку.

Отладить по логам не получается - /var в ram'е, да и не понятно, что смотреть. Сначала думал на dbus, но что-то после него перестает работать. Пробовал отключать dbus, тогда ступор после старта local.

Генту, config_eth0=(«dhcp»), что еще - покажу.

Помогите, кто чем. пожалуйста.

Спасибо.

chegeware
()

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