Назад в раздел
UNIX FAQ.
UNIX FAQ от Vitaly Deriabin
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 "$in$an"; 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
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 = NR_OPEN, например 2048.
17. Повторить шаги 4 и 5.
18. Сказать ulimit -n и увидеть 2048
19. Если еще не верится - скомпилить нижеприведенный суперпрограм:
===
#include
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 #
# 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: \SMBSRVwinapps /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=-^.v0215`226a220f234g277h221i276j205k203l202m204n
212q t206u207v211w210x201y257z262{320|274}#~224,
bel=^G, blink=E[5m, bold=E[1m, cbt=E[Z, clear=E[2JE[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=rE[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[10mE[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 ]?[>
|
|
|
|