eManual.ru - электронная документация
Секция 2 из 2 - Предыдущая - Следующая
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 ]?[><:|=]"
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'EZ>WQ]?G_$L]J_P-G#
MM,+!Q=_L+&R]/[Y^_?SO_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*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=q200x201m204v211j205t206n212u207l202w210k
203y230z231f234~225a220h221`^D.^Y-^XI^U0215:
:al=E[L:am:bs:NP:cd=E[J:ce=E[K:cl=E[HE[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[xE[mEc: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=202204203205200201:
: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
}
Секция 2 из 2 - Предыдущая - Следующая
|