The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите написать shell-процедуру.."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Помогите написать shell-процедуру.."  +/
Сообщение от pol49 (ok) on 10-Дек-12, 19:11 
Написать shell-процедуру, которая:
•все почтовые сообщения, полученные от заданного первым параметром пользователя, посылает
работающим в данный момент в системе пользователям;
•если в системе работает пользователь, приславший данное сообщение, то этому пользователю
посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите написать shell-процедуру.."  +/
Сообщение от DeadLoco (ok) on 10-Дек-12, 19:26 
man who
man sendmail


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помогите написать shell-процедуру.."  +/
Сообщение от pol49 (ok) on 11-Дек-12, 07:26 
> man who
> man sendmail

А поподробнее,просто совсем не шарю.. :(

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Помогите написать shell-процедуру.."  +/
Сообщение от Аноним (??) on 11-Дек-12, 07:37 
>> man who
>> man sendmail
> А поподробнее,просто совсем не шарю.. :(

man bash
man man

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

13. "Помогите написать shell-процедуру.."  +/
Сообщение от AV (??) on 20-Дек-12, 21:13 
> Написать shell-процедуру, которая:
> •все почтовые сообщения, полученные от заданного первым параметром пользователя,
> посылает
> работающим в данный момент в системе пользователям;
> •если в системе работает пользователь, приславший данное сообщение, то этому пользователю
> посылает сообщение, содержащееся в файле, имя которого передается в качестве параметра.

Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при знании shell языка, при умении написать понятный код.

Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.

Или задавать конкретные вопросы.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Помогите написать shell-процедуру.."  +/
Сообщение от LSTemp (ok) on 21-Дек-12, 04:55 
>[оверквотинг удален]
> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
> знании shell языка, при умении написать понятный код.
> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
> Или задавать конкретные вопросы.

1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
2) отправьте свои 1000 строк кода куда хотите
3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть от силы на вытяжку текста письма):


[root@local 111]# cat ./msg.bsh
#!/bin/bash

sender=$1
file=$2
msg=''

function getmsg()
{
# get mail message here from specified user & echo it.
# simple mail|grep $sender|etc

echo "this is a test mail."
}

function sndmsg()
{
local text

who|
while read w
do
   name=`echo "$w"|awk '{ printf $1 }'`
   term=`echo "$w"|awk '{ printf $2 }'`
  
   if [ "$name" != "$sender" ]
   then
       text="$msg"
   else
       text="$file"
   fi

   if [ -n "$text" ]
   then
       if [ "$name" != "$sender" ]
       then
           echo -e "!!! MESSAGE from $sender !!!\n\r" > /dev/$term
       else
           echo -e "!!! MESSAGE for $sender !!!\n\r" > /dev/$term
       fi
       echo -e "$text\n\r" > /dev/$term
   fi
done
}

function help()
{
echo "$0: sender [file]"
}

case $# in
     1|\
     2) msg=`getmsg`
        if [ -e "$file" ]
        then
           file=`cat "$file"`
        else
           file=''
        fi
        sndmsg;
        ;;
     *) help
        ;;
esac

PS
разумеется можно и красивее сделать (это за 5-ть минут на коленке), но откуда 1000 строк кода интересно возьмуться?


Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Помогите написать shell-процедуру.."  +/
Сообщение от pavlinux (ok) on 21-Дек-12, 16:25 
>>[оверквотинг удален]
>> Т.е. надо где-то 600-1000 строк кода. Полных 1-5 рабочих дней, при
>> знании shell языка, при умении написать понятный код.
>> Один из вариантов: оставить контакты в каком-либо виде (личная почта аккаунта на
>> сайте и т.п.), приготовить денег (0,05-0,25 от месячной з\п) и ждать.
>> Или задавать конкретные вопросы.
> 1) отправьте свои 25% зарплаты в фонд голодающих детей Африки.
> 2) отправьте свои 1000 строк кода куда хотите
> 3) для решения поставленой задачи достаточно простого скрипта (ну еще строк 10-ть
> от силы на вытяжку текста письма):

Не видно самого интересного, содержания function getmsg(), которая
"читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"
и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;


:D

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

17. "Помогите написать shell-процедуру.."  +/
Сообщение от LSTemp (ok) on 30-Янв-13, 05:50 
> Не видно самого интересного, содержания function getmsg(), которая
> "читает все почтовые сообщения, полученные от ЗАДАННОГО первым параметром пользователя"

не видно потому, что неизвестно где почтовые сообщения живут: /var/mail? DB? etc
откуда надо - оттуда и читайте. все равно не больше 10-20-и строк кода в скрипте.

> и sndmsg(), которая определяет жив ли ЗАДАННЫЙ, и только тогда шлёт;

с каких пор команда who "неживых" пользователей выводит?
> :D

сказал же сразу - на коленке делано.

:D.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

16. "Помогите написать shell-процедуру.."  +/
Сообщение от AV (??) on 23-Дек-12, 20:29 
Добавлю, к примеру: что делать скрипту если $file нет. И там вылезет немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.

Я не писал, что это будет 1000 строк кода. У меня написано иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.


А вообще: с почином. За опубликованный код - уважение за дело.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Помогите написать shell-процедуру.."  +/
Сообщение от LSTemp (ok) on 30-Янв-13, 05:56 
> Добавлю, к примеру: что делать скрипту если $file нет. И там вылезет

if [ -e "$file" ]

не впечатляет?

> немало такой шахтёрской работы. А окажется, ТЗ надо подкорректировать. Проектеры чаще
> ошибаются в сторону переоценки времени/объёма, программеры в сторону недооценки.
> Я не писал, что это будет 1000 строк кода. У меня написано

Написано у Вас (русским по форуму):
"
Рассыльшик одинаковых писем с вложениями каждому адресату из списка это где-то 300-350 отдельных строк кода. Причём непосредственно готовое уже сообщение шлётся отдельной программой. Т.е. надо где-то 600-1000 строк кода.
"

> иначе. Хотя, я, действительно, ~100 строк хелпа приписал к строкам кода.

хелп - не код, а документация считай (применительно к скрипту).

PS
про "почин" вообще не понял.


Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Помогите написать shell-процедуру.."  +/
Сообщение от LSTemp (ok) on 30-Янв-13, 07:38 
PSS
в условиях задачи не указано, что входящие почтовые сообщения должны так же по почте пересылаться => кидаем их прямо на терминал работающего пользователя (самый простой вариант реализации).

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру