Jump to content

Recommended Posts

Posted

Есть некий текстовый файл например t.txt вида

user1 10 user1@mail.ru 11
user2 20 user2@mail.ru 21
user3 30 user3@mail.ru 31
user4 40 user4@mail.ru 41

 

скрипт-заготовка, который будет запускаться по крону:

awk '{a= "Ваша учетная запись: " $1 ". Баланс вашей учетной записи менее " $4 " рублей и составляет " $2 " рублей.";  print a '} t.txt

 

нормально отрабатывает, выдавая на выходе:

Ваша учетная запись: user1. Баланс вашей учетной записи менее 11 рублей и составляет 10 рублей.
Ваша учетная запись: user2. Баланс вашей учетной записи менее 21 рублей и составляет 20 рублей.
Ваша учетная запись: user3. Баланс вашей учетной записи менее 31 рублей и составляет 30 рублей.
Ваша учетная запись: user4. Баланс вашей учетной записи менее 41 рублей и составляет 40 рублей.

 

Но как теперь каждую строку отправить на соответствующий e-mail, указанный с строке файла t.txt третьим параметром?

Казалось бы так:

awk '{a= "Ваша учетная запись: " $1 ". Баланс вашей учетной записи менее " $4 " рублей и составляет " $2 " рублей.";  mail $3 a '} t.txt

 

но скрипт отрабатывает молча и на почту ничего не уходит. :(

В mail.info, mail.err, mail.log - тишина.

Заклинило - никак не могу понять где ошибка.

Posted (edited)

 

но скрипт отрабатывает молча и на почту ничего не уходит. :(

В mail.info, mail.err, mail.log - тишина.

Заклинило - никак не могу понять где ошибка.

 

В скрипте пишите полные пути к бинарникам.

Edited by vlad11
Posted

Краткость, конечно, сестра таланта. :)

К каким бинарникам? К mail ? Так из командной строки работает, например так:

 echo "billing message" |mail bla-bla@mail.ru -a "Content-Type: text/plain; charset=utf-8"

А из скрипта не хочет.

Posted

К каким бинарникам? К mail ? Так из командной строки работает, например так:

 echo "billing message" |mail bla-bla@mail.ru -a "Content-Type: text/plain; charset=utf-8"

А из скрипта не хочет.

и к mail и к echo

у меня man mail выдает совершенно другой синтаксис.

Posted

Поясните?

 

awk '{a= "echo Ваша учетная запись: " $1 ". Баланс вашей учетной записи менее " $4 " рублей и составляет " $2 " рублей."; system(a " | mail "$3) }' t.txt

Posted (edited)

Хм... Работает. :) А почему тогда "print a" работает без всяких system?

Пытаюсь еще вставить в эту конструкцию тюнинг хедера отправляемого письма:

-a "Content-Type: text/plain; charset=utf-8" -a "Reply-To: <root@bla-bal.ru>" -s "Warning" 

и опять ни фига не выходит. :(

Куда ее тут вставить?

 

Если так

awk '{a= "echo Ваша учетная запись: " $1 ". Баланс вашей учетной записи менее " $4 " рублей и составляет " $2 " рублей."; 
system(a " | mail -a "Content-Type: text/plain; charset=utf-8"   "$3 ) }' t.txt

то

awk: line 1: syntax error at or near :
awk: line 1: extra ')'

Провозился полчаса, так и не могу понять эти линуховые неочевидные конструкции.

 

update - получилось вот так:

awk '{a= "echo Ваша учетная запись: " $1 ". Баланс вашей учетной записи менее " $4 " рублей и составляет " $2 " рублей."; 
system(a " | mail -a \"Content-Type: text/plain; charset=utf-8\"   "$3 ) }' t.txt

Edited by Andrei
Posted

 

for ANY in `ls -lR /` ; do man awk ; done

Вы так не шутите. :)

FAQ-ов перечитал про awk много, но system в них не встретил. Только после вашего совета нашел примеры с system.

Posted

Ну это понятно, что линузятники Догерти и Роббинса не читают. :-)))

 

а перла у них нету

 

Не знаю как у линуха, но во фрее этих awk несколько штук, причем родной - кастрированный...

Posted

Не знаю как у линуха, но во фрее этих awk несколько штук, причем родной - кастрированный...

 

Да что вы говорите ?

 

/usr/src/contrib/one-true-awk/README: This is the version of awk described in "The AWK Programming Language",by Al Aho, Brian Kernighan, and Peter Weinberger(Addison-Wesley, 1988, ISBN 0-201-07981-X).

 

 

Родным считается этот ? А где остальные ?

Posted

Ну это понятно, что линузятники Догерти и Роббинса не читают. :-)))

 

а перла у них нету

Да я вобщем-то не линузятник. Я больше по цискам, но сейчас приходится возиться с тюнингом биллинга (ЛанБиллинг), а он под линух, и скрипты разумеется тоже. Вот и ковыряю.

Posted

Да я вобщем-то не линузятник. Я больше по цискам, но сейчас приходится возиться с тюнингом биллинга (ЛанБиллинг), а он под линух, и скрипты разумеется тоже. Вот и ковыряю.

 

У нас завсегда так, потрешь кошатника - найдешь линузятника. :-)

Posted

/usr/src/contrib/one-true-awk/README: This is the version of awk described in "The AWK Programming Language",by Al Aho, Родным считается этот ? А где остальные ?

 

И чтой-то я gawk из портов все время ставлю ?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.