The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

UNIX FAQ от Vitaly Deriabin (log ipx netware faq howto charset convert quota socks mailbox mail proxy lilo boot dhcp ppp rus traffic squid icq)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: log, ipx, netware, faq, howto, charset, convert, quota, socks, mailbox, mail, proxy, lilo, boot, dhcp, ppp, rus, traffic, squid, icq,  (найти похожие документы)
From : Vitaly Deriabin <nospam@vitalic.glazov.net> Subj : UNIX FAQ от Vitaly Deriabin ------------------------------------------------------------------------------- --> 1. какие есть демоны, смотрящие в логи и производящие указанные действия [исполнение команды], если встретили к-либо событие? swatch logsentry ------------------------------------------------------------------------------ --> 2. Как мне yвидеть и плодотвоpно pаботать с локальной сетью типа нетваpь? 1) Собрать поддержку IPX в ядре или загрузить модуль IPX 2) Вставить в стартовые скрипты что-то типа echo Starting IPX networking... /sbin/ipx_interface add -p eth0 802.3 20000140 /sbin/ipx_interface add eth0 802.2 20000141 3) достать ipxd - демон который манипулирует протоколами RIP/SAP установить бинарники или скомпилить и добавить в скрипты rc.d: if [ -f /usr/sbin/ipxd ]; then echo "Starting IPX RIP/SAP daemon" /usr/sbin/ipxd fi 4) Включить в ядре или загрузить как модуль поддержку ncpfs (Netware Core Protocol fs) - это собственно клиент. 5) достать бинарники или скомпилить ручками пакет ncpfs, в котором есть в частности команда ncpmount. Читаем маны и IPX-HOWTO. Проверка: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:20:AF:3B:BC:94 inet addr:193.244.1.4 Bcast:193.244.1.255 Mask:255.255.255.0 IPX/Ethernet 802.3 addr:20000140:0020AF3BBC94 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42985 errors:3 dropped:3 overruns:2 frame:3 TX packets:37595 errors:0 dropped:0 overruns:0 carrier:0 coll:0 Interrupt:10 Base address:0x300 # cat /proc/net/ipx* Local_Address Remote_Address Tx_Queue Rx_Queue State Uid 20000140:0453 Not_Connected 00000000 00000000 07 000 20000140:0452 Not_Connected 00000000 00000000 07 000 Network Node_Address Primary Device Frame_Type 20000140 0020AF3BBC94 Yes eth0 802.3 Network Router_Net Router_Node 10000140 20000140 00804890FF19 00000140 20000140 00804890FF19 00000123 20000140 00804890FF19 3082C515 20000140 00804890FF19 20000140 Directly Connected linux:/proc/net# ------------------------------------------------------------------------------ --> 3. Подскажите плиз как пеpеключить кодиpовку "на лету"... Hужна дос кодиpовка. конвеpтиpование не годится! Hапиши скриптик на expect, который будет перекодировать туда и обратно и пускай программу под ним. Что то вроде #!/usr/bin/expect spawn $argv interact -nobuffer -regexp { "(\[\x80-\xFF])" {send_user [recode -input cp866 $expect_out(1,string)]} -u "(\[\x80-\xFF])" {send [recode -output cp866 $expect_out(1,string)]} } tcl-расширение recode берется у меня на домашней страничке http://www.ice.ru/~vitus/ ------------------------------------------------------------------------------ --> 4. Как оставить квоты на все, кроме почты? 1) Создать раздел без квот, и подмонтировать к /var/spool/mail, правда могут быть те же проблемы с pop3 - большинство серверов копируют почтовый яшик куда нибудь типа /var/tmp/pop/ 2) Сделать линк /var/spool/mail на раздел, где нет квот. ------------------------------------------------------------------------------ --> 5. Интересует следующее: как это правильно сделать и как правильно раздаются номера в ссылках @K??socks5 и @S??socks5? Вам нужно man chkconfig, дрюг мой разлюбезный. Knn - остановить, Snn - стартовать. Порядок остановки/старта определяется цифрой nn. При входе на runlevel последовательно выполняются все K, потом все S. быстрее было бы сказать - less /etc/rc.d/rc. ------------------------------------------------------------------------------ --> 5. Имеем: diald, ipfwadm, динамический IP. Hастраиваем, запускаем, получаем: Пакет, пришедший с интерфейса eth0, прошедший in-firewall, форвардится и маскарадится для передачи "наружу". При этом он отправляется на интерфейс sl0, что служит сигналом diald для поднятия ppp. После поднятия ppp0 все пакеты ждавшие отправки из sl0 отправляются через интерфейс ppp0. Hовые пакеты сразу отправляются через ppp0. Проблема: Маскарадинг пакета при не поднятом ppp приводит к тому, что пакет получает адрес машины-гейта 10.0.0.1, так как реальный IP адрес будет известен только после поднятия ppp. После этого пакеты начинают маскарадиться правильно. Из-за этого пользователь, запустивший у себя на машине IE и запросивший страничку из Интернета через полторы минуты наблюдает у себя сообщение об отсутствии доступа. Поэтому требуется повторное нажатие на URL. Из этого вытекает следующее - требуется либо увеличить таймауты IE, либо каким-либо образом перемаскарадить пакеты, ждущие своей отправки, после узнавания реального IP адреса. Вариант с получением постоянного адреса очевиден и не рассматривается. YT> less /usr/src/linux/Documentation/networking/ip_dynaddr.txt ------------------------------------------------------------------------------ --> 6. Мне нужно сделать простую штуку, чтобы все входяшие из интернета пакеты на 80й порт линуха, перенаправлялись на 80й порт WinNT. Поищи на sunsite прогу redirect ------------------------------------------------------------------------------ --> 7. lilo boot: linux 1 и получаете root-овый шелл без пассворда. LILO: linux single Впрочем если Single mode требует пароля, что не так уж и ново, есть бронебойный способ: LILO: linux init=/bin/bash Правда, если LILO запаролен, единственный способ войти - загрузиться с дискеты. ------------------------------------------------------------------------------ --> 8. Чем не устраивает su ? Тем, что пути к /sbin; /usr/sbin потерялись? Так надо не просто "su" набирать, а "su -", тогда рутовский .profile отработает. Других причин не могу придумать... ------------------------------------------------------------------------------ --> 9. Поставил модемы и сразу же возникает вопрос! а есть ли софт, который считает время + трафик и т д. для ppp юзеров? Я, конечно, могу написать скрипт, который будет анализировать логи, но зачем писать, если что-то Есть классная вещь - getstatd (pаньше лежала на http://linux.opennet.ru/getstatd/ ) ------------------------------------------------------------------------------ --> 10. Что нужно сказать pppd, что все готово и пора поднимать ppp? > Беру isp-hookup-howto, делаю все по нему. > Есть два провайдера, пытаюсь с ними соединиться, но: > после проверки имени и пароля, машина провайдера говорит ppp ready и лезет > какой-то мусор. Впечатление, что моя машина не понимает, что пора поднимать > ppp. > вот скрипт: > > === Cut === > TIMEOUT 5 > "" "at" > OK "atz" > OK "atdp123456" > ABORT "NO CARRIER" > ABORT "NO DIALTONE" > ABORT "ERROR" > ABORT "NO ANSWER" > ABORT "BUSY" > TIMEOUT 45 > CONNECT "" > "ogin:" "^Umyname" > "word:" "\qmypassword" Posle etogo: "}" "\q" i vseo, bol'she nichego ne nado. > > "PPP ready." "\q^Uppp" > "~-^Uppp-~" > === Cut === > > вызываю pppd командой > > === Cut === > pppd connect 'chat -v -f /etc/ppp/chat-file' -detach crtcsts modem \ > defaultroute user myname /dev/modem 38400 > === Cut === > > у одного из этих провайдеров можно без скрипта (pap авторизация). сокращаю > скрипт (без всяких там имен и паролей) и коннектится нормально, ppp поднимается > и все работает. > > как бы сделать, чтобы коннектиться с тем у кого скриптовая авторизация? > > Alex. >> что нужно сказать pppd, что все готово и пора поднимать ppp? i> Когда скрипт, указанный в connect выходит с нулем, pppd i> считает, что на той стороне все готово. i> "^?}" чем-то похожа на PPP, но точно сказать не берусь. i> Запусти pppd с debug и кидай лог и настройки. === "options" === # debug lock modem crtscts kdebug 0 asyncmap 0 #require-pap noipx noauth lcp-max-configure 20 noipdefault defaultroute ipcp-accept-remote noproxyarp lcp-echo-interval 30 lcp-echo-failure 4 === Cut === команда на соединение: exec pppd 0.0.0.0:0.0.0.0 connect 'chat -v -f /etc/ppp/chat-univer' \ user myname /dev/modem 38400 === chat-univer === TIMEOUT 5 "" "at" OK "atz" OK "atdp123456" ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "ERROR" ABORT "NO ANSWER" ABORT "BUSY" TIMEOUT 45 CONNECT "" "ogin:" "^Umyname" "word:" "\qmypass" "}" "\q" ------------------------------------------------------------------------------ --> 11. Нужно предоставить доступ к Internet для локальной сети через сервер по коммутируемой линии с динамической адресацией. > > Где моя ошибка? > От корки до корки прочитал HOWTO и man по Firewall, маскарадингу и PPP, > поговорил со знающими людьми: говорят, что все должно работать. > > Заранее большое спасибо! > > > > Иди сюда http://www.linuxsupportline.com/~router/ , думаю поможет. По крайней мере, я так сделал и все работает. ------------------------------------------------------------------------------ --> 12. Проблема с Dhcpd после установки PPPD >Жил-был хорошо работающий сервер RedHat 5.1 с DHCP-раздачей. Поставили туда >модем и попытались настроить ppp к ISP. В соответствии с документацией на >pppd, для начала удалили default route, которая до этого указывала на >конкретный адрес (192.168.0.254 netmask 255.255.255.0) в единственном >имевшемся Ethernet-сегменте. Удалили, поскольку, она не особо, вроде бы, и >нужна (адрес был фиктивным), а pppd при загрузке отказывался менять ее на >свой динамически получаемый адрес. В результате, остались 2 записи роутинга: >127.0.0.0 ..... что-то там... lo >192.168.0.0 * 255.255.255.0 ... eth0 >Теперь ppp работает, как доктор прописал, а вот dhcpd хватил Кондратий. >Часть клиентов (как ни странно - WIN95) продолжают получать адреса, а вот >Linux-box'ы и карты HP JetDirect (bootp) - перестали! Причем, dhcpd на >сервере дает такую диагностику на собственную попытку отправить клиенту >DHCPACK: >... send_pkt: Network ureachable >Возвращаем назад фиктивную default route - опять все в порядке! Ничего не >понимаю, помогите, профи! route add -host 255.255.255.255 eth0 ------------------------------------------------------------------------------ --> 13. Как руссифицировать терминалки-звонилки? > Типа seyon или minicom? Очень хочется работать с ББС из Линукса. > cu -l ttyS0 -s 38400 ------------------------------------------------------------------------------ --> 14. Как принимать и посылать сообщения Winpopup в Win сеть? >> Я недавно поставил LINUX и меня мучает одна пpоблема. У нас есть >> сеть Ethernet, в ней 4-е машины WINDOWS и моя LINUX (RH_6.0). >> Скажите пожалуйста, как мне с их WINPOPUP можно соединиться, чтоб >> тоже мессаги слать. > Samba. smbclient -M hostname > Только пpинимать оно не будет. В /etс/smb.conf пpопиши стpоку: message command = /usr/local/bin/linpopup "%f" "%m" %s; rm %s И пpинимать будет и отпpавлять. BTW, почитай Readme к LinPopUp там это все описано. ------------------------------------------------------------------------------ --> 15. Как узнать в каком rpm лежит файл? > > $ for i in `ls *.rpm`; do a=`rpm -qlp $i | grep libXt.so`; [ -z "$a" ] || echo -e "$i\n$a\n"; done Вот! Кстати! Я пользуюсь: for f in *.rpm; do rpm -qlp $f | grep libXt.so && echo $f done ------------------------------------------------------------------------------ --> 16. Как разграничить приоритет машинам по tcp/ip? > > > Схема такая: локалка сидит на Eth0, Интернет подключается к Eth1. > > > Линукс файерволит локалку. Необходимо, чтобы при начале работы некоторых > > > машин локальной сети в интернет, ей выделялась бы вся необходимая > > > толщина интернетовского канала, для остальных машин - что останется. > > > Может стоит эти приоритетные машины на третий езернет посадить? > > > Как тогда устанавливать приоритет интерфейсов? Угу, можно, к сожалению пока это все мало документированно и придется крайне внимательно разбираться, стоит посмотреть вот эту ссылочку ftp://post.tepkom.ru/pub/vol2/Linux/docs - там где-то внутри есть ссылка на страничку Алексея Кузнецова, он как раз автор, там свежие версии и немножко примеров, но не очень информативных. Я сам, за недостатком времени, до конца тоже не добил, так что мудрым советом помочь не в силах. Ключевые слова для поиска информации cbq и iproute2. Пока писал, заодно отыскал и саму страничку ftp://ftp.inr.ac.ru/ip-routing ------------------------------------------------------------------------------ --> 17. Как поставить пароль на Lilo? VD> Возникла у меня необходимость поставить один сервер, в функции которого VD> входила бы периодическая дозвонка с помощью скрипта провайдеру и забор VD> почты. Hо дело в том, что в скрипте придется прописывать и диалапный VD> пароль, VD> а его то как раз бы и не хотелось показывать посторонним. А посторонних VD> вокруг полно. Поскольку взломать линукс при наличии физического доступа к VD> компу - минутное дело (lilo: root=/bin/sh), хотелось бы узнать, как можно VD> защитить этот пароль? Который, разумеется, необходимо в открытом виде VD> передавать при звонке... От рута не спрячешь. По поводу лило - читай его ридми. Ключевые слова - restricted, password. ------------------------------------------------------------------------------ --> 18. Как перестартовать respawn процессы? kill -1 1 - перечитает конфиг inittab, но данные прошлые будет хранить до тех пор пока не сделаешь killall -INT mgetty, вот только тогда новые установки вступят в силу. А killall -HUP mgetty перечитывает только свои конфиги. ------------------------------------------------------------------------------ --> 19. Плз, ткните меня носом в тот софт, котоpый поставит на линухе вpемя, взятое с поpта 37 на удаленной машине. rdate ------------------------------------------------------------------------------ --> 20. При коннекте Виндовым ТелHетом к Linux 2.0.35 в Midnight Commander не работают функциональные клавиши (в частности Все прше простого. Есть такая штука - escape-последовательности.... Т.е. нажимаешь Esc а потом цифирку (просто цифирку, не функциональную клавишу), какую надоть. F3 = Esc 3 ------------------------------------------------------------------------------ --> 21. Человек хочет Линукс на одной дискете > В /usr/doc/HOWTO/Bootdisk-HOWTO написано как это делать > Но может быть проще скачать готовый 1-дискетный Линукс и переделать его под > свои нужды Гдето в инете есть несколько таких проектов Жаль ссылки не сохранил > ───────────────/* Самый удачный imho http://www.toms.net/rb/ Во первых имеет большинство из того, что может понадобиться, уже на себе, а во вторых приналичии рук и головы :-) позволяет переконфигурятьсебя практически подо все, что душе угодно - поменять ядро, набор софта, добавить русификацию, lynx и т.п. :) И, кстати, на той странице большой набор линков на другие проекты подобного рода. P.S.: если принципиально нужно 2.2.х ядро, то ищите RamLinux (? вроде так) на фрешмите. У всех остальных по моим данным до сих пор 2.0.36. ------------------------------------------------------------------------------ --> 22. А вообще - есть ли какая прога, которая позволяет контролировать (ограничивать) по времени и размеру доступ клиентов в Интернет? Соббственно сам squid если к WWW и FTP. Там ACL'ями можно и такое накрутить... ------------------------------------------------------------------------------ --> 23. Русские буквы в Samb'e С латинскими буквами пpоблем нет, но если создаешь из WIN95/98 на VV> сетевом диске под Samba папку или файл с pусскими буквами, то VV> получается нечитаемая еpунда (навеpное идет пеpекодиpовка в КОИ8-Р). VV> Потом удальть эту папку или файл из под WIN не удается. VV> Samba из RedHat 5.2. /etc/smb.conf: client code page = 866 charecter set = koi8-r ------------------------------------------------------------------------------ --> 24. Народ, проясните деталь: когда бинд запускается, он снюхивается со всеми поднятыми на данный момент интерфесами, как заставить его снюхиваться только с определенными? Ссылка #1: BIND Version 8 Online Documentation. Смотреть в разделе "options" на тему опций listen-on и interface-interval. Последний, как я понимаю, нужно задать равным нулю. После этого по SIGHUP named просканирует интерфейсы, и, если опцией listen-on интерфейсы явно не заданы, будет слушать на всех активных интерфейсах. Можно также вместо нуля для interface-interval задать время в минутах (период сканирования интерфейсов). ------------------------------------------------------------------------------ --> 25. Как заставить Sendmail просматривать не только имена класса w в /etc/virtusertable? В файл sendmail.cw домен не вписывать. В sendmail.cf ищешь правило SParse1 # handle virtual users И строчку R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . > поменяй на R$+ < @ $* . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . > (и, естессно, kill -HUP ;-) ------------------------------------------------------------------------------ --> 26. Как удобно считать трафик через роутер? >From Mike.Pechkin@p7.f13.n5100.z2.fidonet.org Wed Aug 4 09:46:14 1999 Newsgroups: fido7.ru.linux From: Mike Pechkin <Mike.Pechkin@p7.f13.n5100.z2.fidonet.org> Date: Tue, 03 Aug 99 22:11:00 +0400 Subject: Логи тpаффика чеpез router - IPDump Organization: "Go West, Riga, Latvia IPDump v0.0.0.7b 03.08.99. Главной целью написания этой _маленькой_, но очень мощной программы, было желание облегчить жизнь сисадминам, а так же самим себе ;), по контролю траффика проходищий через router. Программа разрабатывалась и тестировалась на ядре Linux 2.0.36, хотя в будущих версия появится поддержка 2.2.10xxx. (дело в том, что я меня стоит Linux 2.0.36, а у моего компаньона Linux 2.2.10, поэтому и придется делать под 2.2.10xxx ;)) Приемущества и возможности программы: * разбиение по группам; (делаем две группы, одна на входящий, другая на выходящий траффик. Одна на международный, другая на местный траффик и т.д. и т.п.) * для каждой группы можно указать свой отдельный лог-файл; * для каждой группы можно указать свой формат вывода в лог-файл; * указывание бесконечного количества правил; (ограничение память) * указывание любых протоколов; (ограничение на протоколы которые _не_ поддерживает программа, пока !) поддерживаются: TCP, UDP. В ближайшее время ICMP. * указывание одного или диапазона портов; (23 или 1:1024) * задание исключающих правил, например "ВСЕ ПОРТЫ, КРОМЕ 23" "ВСЕ ПРОТОКОЛЫ КРОМЕ TCP" и т.д. * технология SmartOrder; (е надо указывать, как в Apache: "order deny, allow", что просматривать первым src или dst, это все делает программа) <*> больше фишек нет, фантазия кончилась. Если что, пишите... P.S. Чеpез несколько дней на сеpвеpе будет выложена публичная пpе-бета, а пока пишется документация. А пока нужны тестеpы... Если кто хочет заняться тестеpованием, то пpосим Вас пpисылать свои адpеса, для pассылки. Если пpога понpавиться и будет иметь спpос, то можно заняться kernel developerom под ядpо 2.4.xxx P.S.S. У меня pаботает уже 3 дня, как pезеpвный демон по подсчету тpаффика, и пока все ОК, но это пока ;) Mike ------------------------------------------------------------------------------ --> 27. Подскажите, plz, IRC-клиента, котоpый могy бы на ходy пеpекодиpовать в cp1251,так чтобы понимали подмастдайные юзеpы. И еще ICQ-клиент, котоpый мог бы ноpмально общаться с оpигинальными mirabilis'овскими клиентами (icq98a,99a). Желательно _не_ под X (текст-моде). Если таких нет, то под Иксы (но не под gnome или kde или gtk или qt и дp.) - пpосто под xlib. Сходи сюда http://www.portup.com/~gyandl/icq/index.html Здесь лежит полный список всех ICQ для Линуха, в том числе и текстовых. ------------------------------------------------------------------------------ --> 28. Как по нуль модему два линукса связать? Поставь pppd и в /etc/ppp/options.ttyS1 пропиши вот это: lock local debug persist passive 10.10.10.1:10.10.10.2 115200 Потом сделай в /etc/ppp файл options с нулевой длиной. Далее проделай все вышеописаное на 2-й машине, с одним лишь отличием: строчку "10.10.10.1:10.10.10.2" замени на "10.10.10.2:10.10.10.1". Потом на обоих машинах напиши из под рута pppd ttyS1 - тут на обоих машинах должен появится сетевой интерфейс ppp0, соответственно на первой машине интерфейсу ppp0 будет присвоен адрес 10.10.10.1, а на второй 10.10.10.2. Команда ifconfig показывает состояние сетевых интерфейсов. Если ppp0 не появился - смотри в логи(обычно это /var/log/messages), pppd там должен написать в чем проблема. Если ppp0 появился, попробуй ping 10.10.10.2 - если все ок, то telnet 10.10.10.2 и вот тебе и логин... ;-)) Примечания: 1. я подразумеваю что у тебя нульмодемный шнурок на обоих машинах воткнут в ttyS1. 2. вышеприведенный конфиг для pppd версии 2.3.8, возможно, для ранних версий pppd придется внести какие-то изменения чтоб он работал. 3. я подразумеваю что в ядре скомпилена поддержка PPP протокола, иначе сначала перекомпиль ядро. Возможно, у тебя есть модуль ppp и его придется загрузить ручками: напиши из под рута modprobe ppp перед запуском pppd. Дополнительное чтение: man pppd, PPP-HOWTO. ------------------------------------------------------------------------------ --> 29. Где в Москве найти свежую версию Линуха? В IPLabs. http://www.iplabs.ru. Географически это Профсоюзная, Кржижановского, 13, тел. 728-4101. Они сейчас за наиболее русифицированные считают Mandrake и BlackCat. И 175 руб. прихвати за Mandrake-6.0 RE - два диска и описание. Отличная вещь. Если книжечку не поленишься прочесть, то работает сразу, с русским проблем нет. А телефон они еще 728-4102 дают. ------------------------------------------------------------------------------ --> 30. Как я открыл в Linux 2000 файлов". Всем, кто любит 1C посвящается. Привожу детальное описание действий по шагам. Hеобходимо: 1. Обнаружить что 1024 файлов на процесс для эксплуатации этого угребища маловато. 2. Прочитать /usr/src/linux/Documentation/proc.txt возле волшебного слова file-max. Обнаружить, что для изменения лимита per-process надо изменить NR_OPEN в limits.h и fs.h находящихся в /usr/src/include/linux. 3. Поменять их скажем на 2048. 4. сказать make zImage && make modules && make modules_install 5. прописать в lilo новое ядро, сказать lilo и перегрузиться. 6. обнаружить вопль get_unused_fd: тра-ля-ля и нежелание грузиться 7. Hажать Reset, загрузить старое ядро. 8. Вместо того, чтобы запускать newsreader и ныть в ru.linux что звиздец эхотагу и флеймить о его пригодности для той или иной задачи, зайти в /usr/src/linux/. 9. сказать rgrep get_unused_fd *. 10. Обнаружить эту функцию в fs/open.c 11. Обнаружить в ней следующий код: === struct files_struct * files = current->files; int fd, error; error = -EMFILE; fd = find_first_zero_bit(&files->open_fds, NR_OPEN); === 12. Исследовать include/asm на предмет current и обнаружить что это struct task_state 13. Исследовать include/linux/sched.h на предмет struct task_state и увидеть что ее поле files представляет собой struct file_struct 14. Обнаружить, что поле open_fds в struct file_struct представляет собой fd_set, что есть ни что иное, как __kernel_fd_set. Последняя в свою очередь определена в include/linux/posix_types.h. 15. Обнаружить в include/linux/posix_types.h такой кусок кода: === #undef __NFDBITS #define __NFDBITS (8 * sizeof(unsigned long)) #undef __FD_SETSIZE #define __FD_SETSIZE 1024 #undef __FDSET_LONGS #define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS) #undef __FDELT #define __FDELT(d) ((d) / __NFDBITS) #undef __FDMASK #define __FDMASK(d) (1UL << ((d) % __NFDBITS)) typedef struct { unsigned long fds_bits [__FDSET_LONGS]; } __kernel_fd_set; === 16. Применив /dev/head сообразить, что стоило бы поставить FD_SETSIZE >= NR_OPEN, например 2048. 17. Повторить шаги 4 и 5. 18. Сказать ulimit -n и увидеть 2048 19. Если еще не верится - скомпилить нижеприведенный суперпрограм: === #include <stdio.h> main () { FILE *fp; int i; char name[100]; mkdir("testdir"); for(i = 0; i < 2000; i++) { sprintf(name, "testdir/%d", i); if ( (fp = fopen(name, "wb")) == NULL) break; } printf("%d", i); } === 20. Запустить ее и увидеть что в testdir - 2000 файлов. Все это заняло у меня 40 минут, включая 2 компиляции ядра. Примечания: 1) от шага 3 можно сразу перейти к шагу 16 2) передайте тем, кто заведует proc.txt и posix_types.h что не помешало бы сделать __FD_SETSIZE зависимым от NR_OPEN или хотябы это описать. 3) Внесите это в FAQ 4) В эксперименте принимали участие: ядро - 2.2.10, без ac-XXX , glibc-2.0.7-13, SysVinit-2.76-1. Дистрибутив - RH 5.1 ------------------------------------------------------------------------------ --> 31. РРР и дозвон по нескольким номеpам Я в свое время сделал для себя скрипт. Точнее для diald. Он за один запуск звонит по одному из списка номеров. Hе знаю, может быть сейчас есть более продвинутые методы. ---------------------------------------------------- #!/bin/sh ############################################################ # Usage: pppd connect <this_script_name> # # Kirill Pushkin, kirill@aanet.ru # ############################################################ # Configuration parameters SCRIPTNAME=`basename $0` MEMOFILE=/tmp/$SCRIPTNAME.last # The phone number to dial MAX_PHONES=3 PHONES="111-1111 222-2222 333-3333" # The initialization string for your modem MODEM_INIT="AT&F1M1L0" # The chat sequence to recognize that the remote system # is asking for your user name. USER_CHAT_SEQ="ogin:--ogin:--ogin:--ogin:--ogin:--ogin:--ogin:" # The string to send in response to the request for your user name. USER_NAME="*******" # The chat sequence to recongnize that the remote system # is asking for your password. PASSWD_CHAT_SEQ="word:--word:--word:--word:--word:" # The string to send in response to the request for your password. PASSWORD="*******" # Pass a message on to diald and the system logs. function message () { [ $FIFO ] && echo "message $*" >$FIFO logger -p local2.info -t connect "$*" } # Initialize the modem. Usually this just resets it. message "Initializing Modem" chat TIMEOUT 5 "" $MODEM_INIT TIMEOUT 45 OK "" if [ $? != 0 ]; then message "Failed to initialize modem" exit 1 fi # Dial the remote system. COUNTER=0 LAST_COUNTER=`cat $MEMOFILE` if [ $LAST_COUNTER -ge $MAX_PHONES ]; then TO_DIAL_NO=1 else TO_DIAL_NO=$[$LAST_COUNTER+1] fi for i in $PHONES; do COUNTER=$[$COUNTER+1] if [ $TO_DIAL_NO = $COUNTER ]; then #echo $COUNTER - $i PHONE_NUMBER=$i fi done echo $TO_DIAL_NO > $MEMOFILE message "Dialing system at $PHONE_NUMBER" chat \ TIMEOUT 45 \ ABORT "NO CARRIER" \ ABORT BUSY \ ABORT "NO DIALTONE" \ ABORT ERROR \ "" ATDP$PHONE_NUMBER \ CONNECT "" case $? in 0) message Connected;; 1) message "Chat Error"; exit 1;; 2) message "Chat Script Error"; exit 1;; 3) message "Chat Timeout"; exit 1;; 4) message "No Carrier"; exit 1;; 5) message "Busy"; exit 1;; 6) message "No DialTone"; exit 1;; 7) message "Modem Error"; exit 1;; *) esac # We're connected try to log in. message "Loggin in" chat \ TIMEOUT 5 \ $USER_CHAT_SEQ \\q\\p$USER_NAME \ TIMEOUT 45 \ $PASSWD_CHAT_SEQ $PASSWORD PPP \\d if [ $? != 0 ]; then message "Failed to log in" exit 1 fi # Success! message "Protocol started" ------------------------------------------------------------------------------ --> 32. Скрипт для синхронизации time и монтирования сетевых дисков Поднял SAMBA Primary Domain Controller под Red Hat 6.0 (Samba 2.03). Win98 входят в домен нормально как в NT, но хочется скрипт для синхронизации time и монтирования сетевых дисков как "Выполняется макрос поключения к Windows NT". Рассмотрим простейщий случай 1. Добавляем в smb.conf в секцию [global] : ... time server = yes logon script = logon.bat ... 2. Добавляем в smb.conf ресурс netlogon : [netlogon] comment = Samba Network Logon Service path = /home/netlogons case sensitive = no guest ok = yes locking = no read only = yes 2. Создаем в RH соответствующее оглавление cd /home mkdir netlogons # имя из поля path = ... (см.выше) chmod 755 netlogons 3. Создаем в этом оглавлении файл logon.bat , имеющий содержимое: @echo off net time /set /yes net use H: /home /savepw:no net use W: \\SMBSRV\winapps /savepw:no !!! ВНИМАНИЕ. Этот файл должен быть в MS-DOS'овском представлении, то есть в конце каждой строки д.б. CR-LF , а не просто LF, как это принято в UNIX'ах . ------- Более сложный вариант, когда в smb.conf написано: [global] ... logon script = %m.bat ; или же logon script = %U.bat ... Тогда в /home/logons надо надо заводить свой файл для каждой Win-машины ( если %m.bat ) или для каждого пользователя ( если %U.bat ) . Отсутствие файла ошибкой не являестя (просто ничего не будет выполняться). И еще несколько полезных советов: а. Крайне не рекомендуется использовать в logon-файлах диск Z: . б. Не советую устанавливать/изменять в smb.conf параметр logon path, т.к. в файле-образце содержится неверный пример . в. советую добавить в [global] ... client code page = 866 preserve case = yes character set = koi8-r ... г. Не советую ставить в [global] ... case sensitive = yes ... ------------------------------------------------------------------------------ --> 33. ppp и дозвон по нескольким номеpам? Сходить на http://www.nitek.ru/~igor/pppd/ , прочитать и сделать. Владимир E-mail: karamba2@com2com.ru ------------------------------------------------------------------------------ --> 34. Что обозначает комманда type ? Вы можете использовать комманду 'type' для того что бы узнать какую программу выполнит шелл. % type netscape netscape is /usr/local/bin/netscape ------------------------------------------------------------------------------ --> 35. Коротко о Bash. Для того что бы обновить содержимое экрана нажмите Ctrl-L. Ctrl-A поместит курсор в начало строки, Ctrl-E в конец. Ctrl-U очистит текст от текущей позиции курсора до начала строки. Ctrl-R - поиск в истории комманд. Ctrl-C удобна тогда, когда вы набрали комманду и не желаете ее выполнить, вместо нажимания [Enter] нажмите Ctrl-C. Появиться новое приглашение в следующей строчке. Ctrl-C так же прерывает текущее выполнение комманды. Если у вас длинные, повторяющиеся задачи, проще использовать цикл для их выполнения. Пример: 'for test in 1 2 3 4 5 6 7 ; { touch $test; }' Создаст 7 файлов с именами 1, 2, ..., 7 в текущей дирректории. Более практичное применение: 'for file in .procmailrc .fetchmailrc .muttrc ; { scp user@myhost.com:/home/user/$file .; }' Это скопирует 3 файла с myhost.com на локальный хост. 1999.07.29 - Hадоели почтовые уведомления? Мне надоело в bash получать сообщения о новой почте каждый раз, когда я нажимаю Enter после ввода комманды, при использовании X-ов и одного терминала как почтовое окно. Я добавил 'unset MAILCHECK' в мой .bashrc для того что бы избавиться от этого. ------------------------------------------------------------------------------ --> 36. Вопрос по поводу настройки SQUIDa. > Заполняя формы я не могу передать эти данные WEB серверу. Нетскэйп > выдаёт Connection Failed и пишет, что сервер занят. Характерный пример > - http://pingwin.net.ru. Классный сайт, вот только при попытке в поле > ввести имя и отправить его - возникает через некоторое время > вышеописанная ошибка. > Я нахожусь за фаирволом, и когда переключаю нетскапе на прокси моего > провайдера - то всё работает. > Раньше я избавился от похожей проблеммы выставив в /etc/squid.conf > такие строки: > > hierarchy_stoplist > cache_stoplist cgi-bin ? > > Но что ещё можно сделать? Спасибо, уже всё настроил. Нужно было прописать строку: passthrough_proxy TYT.IP.MOY.PROVIDER После этого всё зарабоьало просто исключительно! Ура! ------------------------------------------------------------------------------ --> 37. Рисование графиков статистики. [skip] > 1 Считать с какого IP сколько байт считали. При этом должно получаться два > числа: сколько взяли из кеша и сколько скачали из сети. http://www.unimelb.edu.au/pwebstats/pwebstats.html > 2 Уметь суммировать указанную статистику по спискам IP адресов > Я смог найти две штуки: calamaris и spa, но это не совсем то что надо :( > Ткните пальцем, pls, что можно попробовать? Для этого подходит фраервол -- ipfwadm или ipchains (урлу не помню, но он должен быть в поставке линуха) с флагом -F. Можно еще приспособить mrtg (http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html), что бы оно рисовало графики по собраной им статистике. ------------------------------------------------------------------------------ --> 38. Чем можно огpаничивать входящий поток http и ftp? > Потому как выделенка всего-лишь > 33.6, а клиентов в локалке штук 10 + 2 модемных входа. А надо > чтобы беp тоpмозов pаботал smtp и еще нечто подобное. > Т.е. видимо д.б. нечто огpаничивающее потоки с > поpтов-источников: 20, 21, 80, 3128, 8080. 8081 и т.п. Используй policy routing и traffic shaper - подробнее в /usr/src/linux/Documentation/networking. Ядро должно быть 2.2.x. ------------------------------------------------------------------------------ --> 39. mail to news? > приходящих на почтовый ящик в определённую ньюс группу. Когда у меня был > inn я просто в aliases писал: anekdot: "inews -h -n anekdot". А сейчас > стоит dnews и я нефига не нашёл как там можно перенаправлять. Может кто > знает. Или опишите процедуру переправки сообщений на ньюс, просто например > с оутглюка. Есть dposter и drobot, один из них пеpехватывает почтy и кидает в каталог, дpyгой из этого каталога беpет и кидает в ньюс-гpyппy. Читай FAQ на netwinsite.com, и кажется на них маны есть ------------------------------------------------------------------------------ --> 40. apache statistic > где можно сабж заиметь, чтоб отображало кто/куда/когда ? :) на freshmeat.net в разделе лог анализаторов. ------------------------------------------------------------------------------ --> 41. Может кто подскажет как юниксах просмотреть какой файлик какой пользователь юзает на данный момент? Под FreeBSD - fstat. Под Linux - fuser или lsof ------------------------------------------------------------------------------ --> 42. Как ограничить скорость клиента squid в случае если канал забит? >Как правило канал забивает один клиент устанавливающий кучу соединений, >используя какой-нибудь reget. 1-ый ответ: Второй squid умеет. Комментарии в самом файле достаточно туманны, лучше почитать FAQ на http://squid.nlanr.net - там все достаточно подробно описано. 2-ой ответ: Допустим у нас есть крутые юзвери, неограниченые в скорости и все остальные, которых нужно ограничить. acl cool_users src 10.0.0.1 10.0.0.28 10.0.0.61 acl other_users src 10.0.0.13 10.0.0.19 10.0.0.86 10.0.0.111 acl all src 0.0.0.0/0.0.0.0 delay_pools 2 # Допустим 2 delay pools delay_class 1 1 # Допустим pool 1 is a class 1 pool delay_class 2 2 # Допустим pool 2 is a class 1 pool delay_access 1 allow cool_users delay_access 1 deny all delay_access 2 allow allowed_hosts delay_access 2 deny all delay_parameters 1 -1/-1 # Неограничено delay_parameters 2 6000/6000 6000/6000 # Допустим -- 6 КБод Это для squid-2.2STABLE4. Для 1-й версии нужен какой-то патч. Подробности -- в доке и FAQ-е по squid. ------------------------------------------------------------------------------ --> 43. Что хочется: утилитку для Linux'а, чтобы распозновала кодировку входящего файла и создавала перекодированный файл с другим расширением/добавлением (например koi8). all2koi из комплекта cyrutils - пытается угадать исходную кодировку и перекачивает в кои. Почти не врет - врет только на нетекстовых файлах (где байты идут каккие попало и есть вкрапления русских слов). Там еще комплект жестких перекодировщиков - alt2koi, win2alt и так далее, правда вход и выход у них со стандартных потоков, но напишешь скриптик с подстановкой имен файлов и все пойдкет. У меня этот алл2кои стоит в фильтре просмотрщика в mc - все тексты (за некоторым исключением :)) показывает по русски - даже не знаю - какая кодировка у многих из них. :) ------------------------------------------------------------------------------ --> 44. А не будет ли так любезен многоуважаемый all, подсказать мне, есть ли под Linux такого типа программулька, которая бы автоматически рассылала квитанции о прочтении почты. К примеру, юзер по pop3 забрал почту, а она разослала квитанции тем кто ему зту почту прислал. OpenMail - это хорошо делает. ------------------------------------------------------------------------------ --> 45. Лучше всего работает tn (by Dmitry Maloff). Путем подкрутки terminfo удалось заставить его работать нормально под mc,slrn,ncurses. Да в-общем-то легко... Зачем народу заниматься сексом с этим делом еще и еще? 1. Лучше не трогать системное описание at386 (еще пригодиться может) и создать новый тип терминала. Hапример, at386-tn. ------------- cut here ----------------------------------------- # Reconstructed via infocmp from file: /usr/share/terminfo/a/at386-tn at386-tn|TN console emulation, am, bw, eo, xhp, xon, colors#8, cols#80, lines#25, pairs#64, acsc=-\^.v0\215`\226a\220f\234g\277h\221i\276j\205k\203l\202m\204n\ 212q\0t\206u\207v\211w\210x\201y\257z\262{\320|\274}#~\224, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S, indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%; ?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m, sgr0=\E[0;10m, smacs=\E[11m, smso=\E[7m, smul=\E[4m, tbc=\E[2g, ------------- cut here ----------------------------------------- Внимание: перенесенные строки acsc и sgr надо объединить! 1.Пара строк вдогонку. 1.0. Вырезать и положить в файл at386-tn.tic . Зайти рутом. выполнить tic -s at386-tn.tic . root обязателен т.к. иначе скомпилированное определение ляжет не в общую базу, а в локальный каталог. 1.1. Опытным путем установлено что добавление xhp (коррекция аппаратного глюка стирания до конца строки на HP терминалах) хотя и притормаживает вывод, но позволяет правильно выполнять отрисовки в ncurses. Проверялось на тестовой программе sample. 1.2. acsc имеет немного странный вид, это из-за приколов с termcap на Informix. 1.3. mc несмотря на указание атрибутов colors, setab, setaf все равно запускается в b/w режиме. Что ему надо чтобы он распознался как цветной я разбираться не стал. Решается при помощи mc -c. Дальше все работает без проблем, я им пользуюсь не часто, так что -c меня не раздражает. Hормально работают все скроллинги и кнопки. 1.4. Hормально работает vi. 1.5. В vim есть глюк, если дойти до конца редактируемого файла и начать возвращаться назад, то все красится в синий цвет. Можно сделать PgDn вверх/вниз и все вернется на свои места, но иногда раздражает. Все остальное вроде работает нормально. В принципе vim можно обесцветить. Для этого надо переменные его внутреннего termcap Setab и Setaf установить в "" или поставить ^[[39;40m и там и там. 1.6. slrn работает прекрасно. нормально показываются треды, нормально идет заполнение до конца строки, нет проблем с 25 строкой (как в irlex) мелкие усовершенствования: в файл .slrnrc добавлено: ------------- cut here ----------------------------------------- color header_name "blue" "white" color headers "black" "white" ignore_quotes "^[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[><:|=]" interpret ".slrn.sl" ------------- cut here ----------------------------------------- первые две строки выставляют более или менее нормальный цвет в отличие от кислотного по умолчанию. 3-я строка выполняет подсветку строк в соответствии с регулярным выражением 4-я строка подгружает макросы. из /usr/doc/slrn/examples распаковал slrn.sl.gz в $HOME/.slrn.sl и добавил туда ttyprint.sl из /usr/doc/slrn/examples/macros. Теперь можно по ^P печатать статьи на локальный принтер, который подключен к Win9x, где собственно и работает tn. Только надо придумать как почикать ненужные headers. Макрос что ли написать? 2. У меня немного странная перекодировочная таблица. Она отличается от авторской. Это все из-за Informix IDS, иначе там корявые одинарные рамки. Положить туда где лежит tn.exe. Кто работает с Informix DS for Linux - надеюсь поможет. begin 644 koi8-alt M``$"`P0%!@<("0H+#`T.#Q`1$A,4%187&!D:&QP='A\@(2(C)"4F)R@I*BLL M+2XO,#$R,S0U-C<X.3H[/#T^/T!!0D-$149'2$E*2TQ-3D]045)35%565UA9 M6EM<75Y?8&%B8V1E9F=H:6IK;&UN;W!Q<G-T=79W>'EZ>WQ]?G_$L]J_P-G# MM,+!Q=_<V]W>L+&R]/[Y^_?S\O_U^/WZ]LVZU?'6R;BWN]33R+Z]O,;'S+7P MMKG1TLO/T,K8U\[\[J"AYJ2EY*/EJ*FJJZRMKJ_OX.'BXZ:B[.NGZ.WIY^J> ?@(&6A(64@Y6(B8J+C(V.CY^0D9*3AH*<FX>8G9F7F@`` ` end 3. termcap entry для Informix DS. --------------------------------------------------------------------------- # TN emulator console with koi8-r russian code table. # This is terminal definition for TN console # color control of this terminal emulator differs from ANSI standard: # ESC[7m does not select reverse video, reverse video programmed by stack # machine # ESC[1m selects bold fg \ these attribs still active until reset by ESC[0m # ESC[5m selects bold bg / # # use of blink is undefined (blink is possible to embed in to tn) # underscore emulated by fg bg highlighting, so black looks like grey # tn|at386-tn|at386|at386-koi8-r:\ :pa#64:Co#8:op=\E[x:\ :ac=q\200x\201m\204v\211j\205t\206n\212u\207l\202w\210k\ 203y\230z\231f\234~\225a\220h\221`^D.^Y-^XI^U0\215:\ :al=\E[L:am:bs:NP:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:co#80:\ :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:li#25:cb=\E[1K:\ :ms:nd=\E[C:pt:rs=\E[x\E[m\Ec:so=\E[7m:se=\E[m:\ :k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:k4=\EOT:k5=\EOU:k6=\EOV:k7=\EOW:\ :k8=\EOX:k9=\EOY:kA=\EOs:kB=\EOt:kC=\E[H:kE=\E[F:\ :ki=\E[L:kj=\177:kf=\E[G:kg=\E[I:\ :kb:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:\ :le=^H:eo:sf=\E[S:sr=\E[T:\ :nw=\E[E:ec=\E[%dX:\ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:bw:\ :bl=^G:ut:it#8:gs=\E[12m:ge=\E[10m:gb=\202\204\203\205\200\201:\ :ZA=\E[%?%p4%t%?%p2%t5%e1%;%e0%;;%?%p2%t30;4%e40;3%;%?%p1%{0}%=%t7 %e%p1%{1}%=%t3%e%p1%{2}%=%t5%e%p1%{3}%=%t1%e%p1%{4}%=%t6%e%p1%{5}%=%t2 %e%p1%{6}%=%t4%e%p1%{7}%=%t0%;m: --------------------------------------------------------------------------- Внимание: перенесенные строки ac и ZA строку надо объединить, только не удалите лишнего! Тоже пара строк в догонку. Я предполагаю, что если сесть и помедитировать, то можно подогнать termcap под стандартную таблицу koi8-alt (поправить ac и gb). Hо и так все работает, так что менять ничего не хочется. Informix 4GL-программы в данном варианте termcap опознают кнопки дополнительной клавитуры Ins, Del, Home, End, PageUp, PageDown. Home и End распознаются как F13 и F15 соответственно. Цвет в Informix кодируется в ZA entry, которая суть нестандартное расширение termcap. По видеоатрибутам Informix 4GL: указываемый цвет по умолчанию нормальной интенсивности (не-bold), reverse выбирает reverse (пришлось научиться программировать на стек-машине :) чтобы это правильно сделать). blink не используется, так как его возможно реализовать в tn. В ansiw95 это сделано, кстати. При указании underline выбирается повышенная интенсивность (bold), я вынес это на underline так как его обычно нет на цветных терминалах и он с извращением делается на стандартной VGA при работе с эмуляторами (опять же в ansiw95 он сделан, хотя и только в b/w режиме) ------------------------------------------------------------------------------ --> 46. Как сделать автоответчик на входящие письма? > В .procmailrc записывается :0 c * !^FROM_DAEMON |(formail -rt ;\ echo "X-Envelope-From: vacation daemon";\ echo "";\ echo "Thanks for your letter.";\ echo "I am temporarily out on town. Will be back tomorrow";\ ) |$SENDMAIL -oi -t }

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, ruslan, 20:32, 14/04/2008 [ответить] [смотреть все]
  • +/
    привет всем! я работаю в SUSE 10.2
    помогите установить и настроить squid, и ограничить траффик на интернет DSL до 1 мега байта...буду благодарен...у нас в городе Ош...Кыргызстан только интересуюсь Линуксом....не с кем посоветоваться все новости только с инета
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor