Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

За 2004-11-25

Проблемка с pppd

Доброго времени суток, LUG.

У меня возникли проблемы при подключении из под ОС FreeBSD:

Соединяюсь c parma.ru (komifree.ru) - провайдер такой, в республике Коми.
Проозвонка и соединение идёт нормально, дальше
авторизация (как я понял PAP) в ответ на "гостевые"
login password
card komi
Выдаёт [User not found].
(При попытке войти под своим логином/паролем - аналогично).

Для большей ясности привожу фрагмент логов:
Nov 24 00:06:39 bytesoft pppd[1263]: pppd 2.3.5 started by pashelper, uid 0
Nov 24 00:07:09 bytesoft pppd[1263]: Serial connection established.
Nov 24 00:07:10 bytesoft pppd[1263]: Using interface ppp0
Nov 24 00:07:10 bytesoft pppd[1263]: Connect: ppp0 <--> /dev/cuaa0
Nov 24 00:07:10 bytesoft pppd[1263]: sent [LCP ConfReq id=0x1 <asyncmap 0xa0000>
<magic 0x12f6d18a> <pcomp><accomp>]
Nov 24 00:07:10 bytesoft pppd[1263]: rcvd [LCP ConfReq id=0xad <asyncmap 0xa0000>
<auth pap> <magic0xa018327> <pcomp> <accomp>]
Nov 24 00:07:10 bytesoft pppd[1263]: sent [LCP ConfAck id=0xad <asyncmap 0xa0000>
<auth pap> <magic0xa018327> <pcomp> <accomp>]
Nov 24 00:07:10 bytesoft pppd[1263]: rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000>
<magic 0x12f6d18a> <pcomp><accomp>]
Nov 24 00:07:10 bytesoft pppd[1263]: sent [PAP AuthReq id=0x1 user="card" password="komi"]
Nov 24 00:07:10 bytesoft pppd[1263]: rcvd [PAP AuthNak id=0x1 "User not found"]
Nov 24 00:07:10 bytesoft pppd[1263]: Remote message: User not found
Nov 24 00:07:10 bytesoft pppd[1263]: PAP authentication failed
Nov 24 00:07:10 bytesoft pppd[1263]: rcvd [LCP TermReq id=0xae]
Nov 24 00:07:10 bytesoft pppd[1263]: LCP terminated by peer
Nov 24 00:07:10 bytesoft pppd[1263]: sent [LCP TermAck id=0xae]
Nov 24 00:07:10 bytesoft pppd[1263]: Modem hangup, connected for 1 minutes
Nov 24 00:07:10 bytesoft pppd[1263]: Connection terminated, connected for 1 minutes

Nov 24 00:07:11 bytesoft pppd[1263]: Exit.

и настройки PPPd:
/dev/cuaa0 115200
modem
crtscts
asyncmap a0000
connect "/etc/ppp/chat.sh"
noipdefault
defaultroute
user card
nodetach
debug

При соединении под Windows (WindowsXP, SP1) - никаких проблем.

Буду благодарен за любую информацию, которая может быть полезна.
Или любой намёк на то, куда копать.

   2004-11-25 22:34:08 (#270413)

Бешеной собаке 7 миль - не крюк, или как я привёл ссылки в lindocs к Правильному

Бешеной собаке 7 миль - не крюк, или как я привёл ссылки в lindocs к Правильному
виду.

Колотову Александру в честь его дня рождения посвящается.
С днём рождения, Саня! :)

Некоторое время назад, на одной из линуксовок мы обсуждали проект
lindocs - замечательная подборка документации в котрой можно
найти очень много полезного. Однако, вероятно, часть документации
была собрана по Win* системой или перенесена оттуда, поэтому
при работе по *nix системами не работала часть ссылок из-за
несоответсвия регистра имён файлов.

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

Собственно именно этот способ я и использовал до того как
нашёл ещё одно "решение", о котором и хочу рассказать.

Недавно я решил провести эксперимент, на предмет обнаружения
"лишних" файлов, т.е. файлов которые лежат в lindocs, но на
которые, по тем или иным причинам нет ссылок с html страниц.

Для этого я... написал скрипт? Хм, конечно хорошо, но уж больно
лень. :) Да и хочется чего то такого... Unix Way-ного.
Что у нас тут на машине... ага, apache завалялся, для
экспериментов на подопытных браузерах...
Вот ему и придётся работать, ему и ещё... wget
Что может быть лучше! ...и неэкономнее :)
Собственно - за дело. Делаем в каталоге апача ссылку на
lindocs (они, как Вы, наверно, помните лежат на fat):
%ln -s /mnt/doc/lindocs/ lindocs

и командуем whet-у:
%wget -c -T 5 -o log -k -r http://inode/lindocs/

Строку, я, так и быть объяснять не буду, для того чтобы не
занимать место, и дать Вам, при необходимости, возможость
самостоятельно почитать документацию, что (по моим личным
наблюдениям) всегда полезнее :).

[ После нескольких часов работы... ]

Результаты:

Размер файлов:

%du -cd 1
842M ./inode
306K ./inode.bytesoft.hvn
856M .
856M total

(При стартовых)
%du -cd 1
1.2G total

Количество файлов:

%find ./ >../lindocs.before
%wc -l ../lindocs.before
65138 lindocs.before

(Аналогично для результирующего каталога)
%wc -l ../lindocs.after
36868 lindocs.after

Разница чувствуется? :)

Значит не зря, всё таки. Хм, а поконкретнее, кто, где, куда пропал?

%cat ../lindocs.before > lindocs.test; cat ../lindocs.after >>lindocs.test
%sort -f lindocs.test | uniq -i -u > result.log
%wc -l result.log
30138 result.log

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

Что то потерялось?
Да. В частности, выяснилось, что очень много места занимают,
и нигде не упоминаются man pages к ASPLinux, хотя представлены
они в html, и часть howto тоже с ASPLinux Documentation CD.
Также были и другие файлы список которых слишком длинен,
чтобы приводить его здесь, но они занимали на порядок меньше чем
man-pages.

А чуть позже я обнаружил ещё один положительный эффект этого
"эксперимента" - wget создавал каталоги и файлы так, как
на них ссылались (хотя трудно было ожидать от него другого ;))
и в результате все ссылки стали работать!

p.s. Вот такой "ленивый" способ разрешить проблему с регистрами в
подборках гипертекстовых документов, который к тому же может,
иногда, сэкономить Вам место на диске.

p.p.s. Конечно, всё это можно было сделать гораздо более эффективнее, но
всегда есть более одного способа сделать это :)

(There is more than one way to do it.)

04/11/24
Author:Stan S. Krupderov mailto:pashelper[AT]mail.ru

   2004-11-25 22:33:59 (#270412)

Сборка SQLite из исходников под ASPLinux 9.2

Исходники были получены с официального сайта SQLite -
http://www.sqlite.org/
Для сборки в качестве основы был взят spec-файл, найденный у
известного сборщика RPM пакетов для Fedora Core - Dag Wieers
(http://dag.wieers.com/packages/).

Начнем (работаем относительно /usr/src/asplinux/).

Архив с исходными кодами (sqlite-3.0.8.tar.gz) кладем в SOURCES. В
SPECS помещаем spec-файл (sqlite.spec).

Немного подправим spec-файл:
Первое это поле "Version". Меняем "Version: 2.8.15" на "Version: 3.0.8".
Второе - изменим "Packager" и "Vendor". Были
Packager: Dag Wieers <dag@w*****.com>
Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Станут
Packager: Alexandr Kolotov <akmyo***@m*****.ru>
Vendor: Local Repository
Попробуем собрать:

# rpmbuild -bb --target athlon --clean sqlite.spec
Платформы для сборки: athlon
Сборка для платформы athlon
ошибка: Неудовлетворенные зависимости сборки:
readline-devel нужен для sqlite-3.0.8-1
tcl-devel нужен для sqlite-3.0.8-1
Ну что ж, установим...

# yum install readline-devel tcl-devel

Все хорошо. Снова

# rpmbuild -bb --target athlon --clean sqlite.spec

Собралось. Значит, можно устанавливать.

# cd ../RPMS/athlon
# rpm -ihv sqlite*

Для проверки работоспособности напишем два простеньких
скрипта на shell (за основу взяты скрипты с
http://www.sqlite.ru/). Первый скрипт создает базу и одну таблицу:

begin create_db.sh create_db.sh
#!/bin/sh

cat << EOF | sqlite3 test.db
BEGIN TRANSACTION;

-- создаем базу данных
create table test(name TEXT, bday varchar(10));

-- заполняем
INSERT INTO test VALUES('Vasiliy Leushin','1976-09-01');
INSERT INTO test VALUES('Andrey Eslukov','1981-07-20');
INSERT INTO test VALUES('Max Vasilyev','1979-01-01');
INSERT INTO test VALUES('Alexandr Kolotov','1980-11-24');
-- заканчиваем транзакцию
COMMIT;
EOF
end create_db.sh второй - осуществляет выборку:

begin select_db.sh select_db.sh
#!/bin/sh
cat << EOF | sqlite3 test.db
-- выводим два столбца из таблицы test c сортировкой по столбцу bday
select bday, name from test order by bday;
EOF
end select_db.sh Запускаем и смотрим на результаты:

$ ./create_db.sh
$ ./select_db.sh
1976-09-01|Vasiliy Leushin
1979-01-01|Max Vasilyev
1980-11-24|Alexandr Kolotov
1981-07-20|Andrey Eslukov

   2004-11-25 18:00:15 (#270310)

Re: Работа над проектом Lindocs. Скрипты конверта из текущего состояния

> Некоторым уже известен проект lindocs - проект offline документации по
ссылка на индексные статьи проекта:
http://kirov.lug.ru/projects/lindocs/index.shtml

   2004-11-25 10:35:43 (#270062)

Re: Работа над проектом Lindocs. Скрипты конверта из текущего состояния

> Об этом проекте я знаю немного, видел только архивчик tbz2 на 700 МБ..
> Вопрос что хочется получить в дальнейшем, просто из того что я
> прочитал, вы не думаете, что получите больше проблем чем решите?
> Расскажите поподробнее, или на форуме, а то он какой-то мёртвый
> совсем.. Тогда можно будет конструктивно покритиковать :)
тут я еще накатал небольшой материальчик - может понятнее станет... Если
нет - задавайте вопросы:

Некоторым уже известен проект lindocs - проект offline документации по
linux и unix-подобным системам. Сейчас он переживает переходный период,
когда базой ссылок стало уже неудобно управлять и производить по ней
навигацию.

Сейчас база представляет набор html-файлов, в которых собраны ссылки по
схожим (или не очень) тематикам. Основным является файл begin.html, в
котором хранятся ссылки на файлы-тем - html-страницы отвечающие за одну
какую-то тему. А уже в из файлах-тем хранятся ссылки на материалы,
хранящиеся в lindocs.

begin.html
| / Linux/Sendmail/pages/lessons.htm
mail.html - Linux/Sites/opennet.ru/base/net/mta_chouse.txt
| \ Linux/Sites/Perm_doc/tune/28.12.1998.html
|
bd.html
|
general.html
|
| / Linux/Docs/pdf/Python.pdf
python.html - Linux/Programing/Python/whats_new_22.html
\ Linux/Docs/pdf/samag12832-0.pdf

Проблема в том, что один материал может попадать в разные файлы-тем, так
как в нем могут затрагиваться различные аспекты настройки и управления
системой. Например, материал освещающий настройку почтового сервера с
хранением базы пользователей в какой-нибудь СУБД с использованием
скриптов для автоматического управления этой связкой - в данном случае
материал должен появиться сразу в трех разделах: "настройка почты",
"базы данных", "программирование". При ручном управлении базой ссылок
пришлось бы добавить ссылку на этот материал в три html-файла, что
вызывает избыточность, а также неочевидность и сложность поиска
дублирующихся материалов при добавлении новых.

Поэтому возникла идея создать новый формат хранения ссылок (за идею был
взят способ организации архива документации на opennet.ru). Пусть помимо
информации о ссылках в базе данных хранится информация о категориях, в
которые может попадать тот или иной материал - назовем их индексами. А
сам архив ссылок изначально не будет разделяться на множество файлов -
вместо этого все ссылки с указанием того, к каким категориям каждая из
них относится, будут хранится в одном месте. База индексов в свою
очередь могут иметь иерархическую структуру для более логического
построения выходной информации.

INDEXES: mail, bd, programing, postfix, exim, fetchmail, mysql,
postgresql, perl, python, java

/ postfix / perl
mail - exim bd - mysql programing - python
\ fetchmail \ postrgesql \ java

При очередной публикации содержимого проекта lindocs эта куча ссылок
автоматически в соответствии с их индексами распределяется по множеству
html-файлов для offline просмотра документации.

Более подробно.

На текущий момент индексы можно получить из имени html-файла, в котором
упоминается тот или иной материал - этому материалу присваивается данный
индекс. В дальнейшем индекс у материала может быть изменен или даже
удален (материал без индекса также помещается в результирующую выборку и
помещается на основной странице проекта - так, например, очень удобно
следить за поступлением новых материалов). Чтобы не придумывать новые
индексы, которые будут использоваться для дальнейшей "продвинутой"
индексации, - можно использовать уже существующие в проекте opennet.ru:
индексы помещены в начале каждой статьи, оформленной как "*.txt", и они
легко получаются из этих файликов простым скриптом.

При чтении документации пользователь может изменить индексы относящиеся
к материалу:
1) заменить индекс, если материал подходит не для данной тематики, а для
другой
2) добавить индекс, если материал затрагивает не только одну тему
3) удалить индекс, если в материале не затрагивается данная тема

Плюс ко всему он может создавать также новые индексы для базы или
удалять существующие, если нет ни одного документа с таким индексом.

Также пользователь может добавлять и удалять (эту возможность нужно
оставить только для мантейнера проекта) материалы при работе с базой.

Все изменения коснувшиеся базы в локальной копии пользователя по его
желанию могут быть экспортированы в некторый "patch-файл". Этот файл
пользователь может передать мантейнеру проекта, для внесения изменения в
основную ветку проекта. И наоборот, мантейнер может передавать
сформированный patch-файл пользователям, для того чтобы те могли
поддерживать свои копии в актуальном состоянии.

Чуть-чуть о реализации.

У материала в базе должны быть следующие атрибуты: название, автор(ы),
относительная ссылка - место в файловой системе, абсолютная ссылка -
место расположения материала в Интернет, один или несколько индексов, а
также служебные атрибуты (идентификатор записи, номер части, если
материал состоит из нескольких частей и др.). Абсолютная ссылка нужна
для того, чтобы можно было говорить об online версии проекта - ресурса,
на котором пользователь мог бы найти место положение в Интеренте
интересющей его информации.

Индекс в базе тоже имеет атрибуты: описание (будет выводиться как тема
обобщенных материалов) и родитель (значение индекса, которое
непосредственно указывает подтемой какой темы является данный индекс;
например, postfix - mail, mysql - bd)

При получении конечной информации (html-файлов) следует учитывать, что
если среди индексов материала есть "дерево" - и индекс-родитель и
индекс-потомок (не важно какой вложенности), то материал помещается
только один раз в тему индекса-потомка. Например, некоторый материал
имеет индексы "mail", "procmail", "filter", а индексы соотносятся
следующим образом: дерево "mail" -> "procmail", и отдельно "filter" -
значит, материал помещается в файлы "filter.html", "mail_procmail.html",
но не в "mail.html".

Смежные темы могут быть также перечислены в конце каждого из итоговых
файлов в зависимости от тех дополнительных индексов которые не относятся
на прямую к данной теме. Так если мы говорим про уже рассмотренный
пример, то в конце файла "filter.html" будет иметься ссылка на
"mail_procmail.html", а в конце "mail_procmail.html" - ссылка на
"filter.html".

Отдельно имеет смыл говорить об специализированном программном
обеспечении для работы с базой ссылок. Его предназначение заключается не
только в том, чтобы можно было добавлять, удалять и изменять информацию
о индексах и материалах, хранящихся в lindocs, но и для организации
удобной навигации и быстрого поиска нужной информации в проекте.
Очевидно, что данное ПО желательно должно быть кроссплатформенным.

Можно предложить следующие связки для программирования интерфейса: Java,
Python+GTK, Perl+GTK.

Что же выбрать в качестве хранилища для базы данных ссылок (не для
материалов)? Можно рассматривать как варианты:
1. XML
2. SQLite

О каждой поподробнее.

XML. Популярный формат хранения данных. Информация в нем при правильном
подходе хорошо структурированна. Имеет готовые средства для обработки
данных хранящихся в нем - удобно для построения выходных файлов. Но как
минус, как-то невнятно реализованы средства добавления, изменения и
удаления информации, хранящейся в данном формате. Хотя, так как XML по
сути простой текстовый файл, то изменять информацию в нем (в случае
чего) можно в текстовом редакторе. Также доступны специализированные
редакторы XML-файлов.

SQLite. "Это безтиповая, безсерверная (нет процесса-демона,
обрабатывающего запросы клиентов) СУБД, с поддержкой транзакций,
блокировок, триггеров, полного синтаксиса языка SQL92." Вся информация
базы данных хранится в одном файле специального формата. Работа с этим
файлом происходит на SQL-языке с помощью подключения специальных
библиотек (уже существующих для всех популярный языков программирования,
возможно даже выполнение SQL-запросов прямо из shell-скриптов). В
отличие от других СУБД с ним не нужно дополнительных плясок при переносе
базы в другое место. Как минус следует отметить необходимость
использования специального ПО для работы с базой.

Итак, подведем итог. Так как c XML плохо производить такие действия как
удаление и модификация, то в качестве БД можно использовать SQLite, а
XML использовать для хранения и перемещения изменений между разными
копиями проекта.

   2004-11-25 10:29:59 (#270058)