Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Программирование / Прикладное / PERL (30477 хитов)
- Написал(а) slam Дата 22.01.07 07:46
Пришло наконец то время, когда жизнь заставила изучать этот язык программирования, что в принципе неплохо. Вообще я щитаю, что perl должен знать любой уважающий себя админ. Так как я в этом деле новичек у меня сразу же возникают вопросы, ответы на которые мнге найти бывает сложно. Итак, задача заключается в следующем: необходимо вести статистику приема почты с сервера (sendmail), все пользователи в passwd, в качестве попера используется dovecot, который ведет лог приема почты. Подумав я решил взять весь списоу пользователей из /etc/passwd и забить в массив, затем каждый элемет массива (т.е. каждого пользователя) искать в логе dovecot и выводить последнюю запись из найденного. Вопрос такой как отфильтровать знаки '#' в /etc/passwd, как я не мучался перл понимает его как коментарий. Вообщем, короче какой шаблон применить для фильтрации строк начинающихся '#' ?
Parent Написал(а) LOE (Site/forum admin) Дата 22.01.07 20:00 Отредактировано 22.01.07 20:04
Раз статистика _приема_ почты пользователями, то при чем тут sendmail?

По теме.
#!/usr/bin/perl

open(I,"<","/etc/passwd");    # открываем passwd
while(<I>) {
    next if (/^#/);  # пропускаем строки, начинающиеся с #
    chop;  # удаляем перенос строки
    my(@USER)=split(/:/,$_);    # разбиваем строку по двоеточию
    # теперь в $USER[0] находится логин
    # делаем с ним что-то (например, заносим в какой-то массив)
}
close I;


PS. когда "мучаешься" и не получается, приводи куски кода - будет легче указать на ошибки
PPS. не по теме: хранить _почтовых_ пользователей в /etc/passwd - очень небезопасно. Настрой SMTP/POP3 сервера на использование не системного файла со списком пользователей. Лично я использую exim+dbmail - все данные хранятся в mysql базе.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 26.06.07 10:34
тут наткнулся на заюзывание некоего инлайн.пм Inline.pm
че такое я сразу нашел а где его взять чето не видно
у кого есть скажите где взяли или приатачте весит небось мало
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 26.06.07 11:47
да там оказывается не один модуль а целое дерево
почему в дистре нету в слаке плохо
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 26.06.07 11:57
И когда мы научимся пользоваться cpan'ом для поиска перловых модулей?
$ perl -MCPAN -e shell
install I/IN/INGY/Inline-0.44.tar.gz
PS. на сегодня, версия инлайна 0.44

PPS. пихать _все_ модули никто из дистростроителей не будет. есть cpan, а модулей - тысячи на все случаи жизни
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 27.06.07 10:25 Отредактировано 27.06.07 10:27
суть жизни понял
буду знать

хотя после плясок с бубном я его нашел
и поставил вместе с остальной требухой прилагающейся
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 27.06.07 10:52
Зачем пляски, если есть CPAN?
Или через сам перл, или прямо с сайта cpan.org. Правда тогда придется зависимости удовлетворять руками ;-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) Bercut Дата 27.06.07 12:08
не знал я
не умел сижу учусь
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 28.06.07 05:08 Отредактировано 28.06.07 05:13
ага всё вроде понятно
тока вот в чем хрень
тачка на которой это делать надо доступа в тырнет не имеет (политика партии)
как на ей ставить спаном чтобыто нибыло

и ещё чет я не понял откуда взялся этот путь I/IN/INGY/Inline-0.44.tar.gz
как его искать
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 28.06.07 07:06
с путем тоже вроде ясно
а без инета походу всё в ручном приводе делать
в том числе и зависимости удовлетворять

????????????
или можно как на тачке где тырнет все качнуть автоматом с зависимостями а потом на другой проинсталить
тока вот как ???
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 28.06.07 07:32
итак если я правильно всё понял то делать надо так
на тачке с тырнетом в спан шеле пишеш get модуль
test тотже модуль
потом копируеш хоть весь /спан локал каталог/sorces/ на тачку без тырнета
и на ней в спан шеле пишеш instal модуль
и оно хош не хош установится
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 28.06.07 07:56
не не пашет проверил на вычишеной системе ломится в тырнет и всё
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) Bercut Дата 28.06.07 09:21
ну что я так и буду сам с собой
разговаривать
мож кто чё дельное припостит как ставить автоматом на другой машине без тырнета
если уже всё скачано
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) LOE (Site/forum admin) Дата 28.06.07 09:43 Отредактировано 28.06.07 09:46
Хочешь чтобы с тобой вели активную беседу на форуме?
Ищи в онлайне людей, если хочешь диалога.

По сути.
Выкачивай модули и ставь их ручками:
tar xzf модуль.tar.gz
cd модуль
perl Makefile.PL
make
make install
cd ..
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) Bercut Дата 28.06.07 12:02
это я уже изузнал,
я спрашивал про автоматом
типа как сказать, что всё ести в сорсах в спановой директории
типа ставь че велели и не бузи
-

а в ручную я сразу и поставил
причем так сказать без методички интуитивно
отсюда и пляски с бубном по первоначалке
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) cutter Дата 26.06.07 19:56
cat /etc/passwd | grep -v ^#
%-))
Parent - Написал(а) LOE (Site/forum admin) Дата 27.06.07 05:54
и получишь весь /etc/passwd (в нем комментариев на 99.999% не бывает)
исходная задача же - получить только имена пользователей.
уж тогда так:
grep -v ^# /etc/passwd | cut -d : -f 1
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) cutter Дата 27.06.07 06:39
Да.
Проглядел, что нужны именно имена пользователей, а не только избавление от комментариев.
Предыдущая Следующая Вверх Тема Программирование / Прикладное / PERL (30477 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.206s with 11 database queries.