- отправка нескольких файлов с помощью uuencode из скрипта, primus, 18:57 , 02-Мрт-12 (1)
> здравствуйте, подскажите пожалуйста, где у меня ошибка. Задача - отправить несколько *.txt > файлов из консоли, грубый пример кода: > a=`ls -l *.txt | awk '{ print $9}' | while read line; > do echo $line | sed -e "s%$line%uuencode $line $line;%g" | tr > "\n" " "; done` > attach=\($a\) > $attach | mail -s "test" email@mail.ru может? for i in *.txt do uuencode "$i" "$i" | mail -s "subj" mail@mail.ru done
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 07:25 , 05-Мрт-12 (2)
>[оверквотинг удален] >> a=`ls -l *.txt | awk '{ print $9}' | while read line; >> do echo $line | sed -e "s%$line%uuencode $line $line;%g" | tr >> "\n" " "; done` >> attach=\($a\) >> $attach | mail -s "test" email@mail.ru > может? > for i in *.txt > do > uuencode "$i" "$i" | mail -s "subj" mail@mail.ru > done можно и так, но к сожалению, таким образом отправляется несколько писем с одним вложением, а нужно вложить несколько файлов в одно письмо.
- отправка нескольких файлов с помощью uuencode из скрипта, LSTemp, 05:53 , 07-Мрт-12 (3)
> (uuencode 1.txt 1.txt; uuencode 2.txt 2.txt; uuencode test.txt test.txt; ) | mail а прямо так написать религия не позволяет? не пойму зачем огород городить... пишите в сабшеле = внутри скобок любую обработку и | mail. [root@local ~]# cat ccc.bsh #!/bin/bash ( for i in 1 2 3 do j="j-$i" echo $j done )|tail -n 2 [root@local ~]# ./ccc.bsh j-2 j-3
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 07:01 , 07-Мрт-12 (4)
>[оверквотинг удален] > ( > for i in 1 2 3 > do > j="j-$i" > echo $j > done > )|tail -n 2 > [root@local ~]# ./ccc.bsh > j-2 > j-3 Спасибо за отклик, но таким образом отправится несколько писем с одним вложением. А нужно одно письмо с несколькими вложениями. Для ясности поясню ситуацию - есть 10 серверов, есть набор служб, которые в разных сочетаниях на них крутятся. Есть скрипт, который обрабатывает лог файлы за период, и складывает всю найденную инфу в txt файлики, после чего шлет на мыло. В итоге хочу получить следующее - по одному письму от каждого сервера с приложенными txt. Количество текстовых файликов может изменяться, поэтому и огород ) надеюсь что понятно описал проблему. Можно не запариваться и поставить mutt, но мне такой вариант не подходит, потому что есть машины, на которые mutt поставить не представляется возможным, а uuencode там есть.
- отправка нескольких файлов с помощью uuencode из скрипта, LSTemp, 07:04 , 07-Мрт-12 (5)
>[оверквотинг удален] >> for i in 1 2 3 >> do >> j="j-$i" >> echo $j >> done >> )|tail -n 2 >> [root@local ~]# ./ccc.bsh >> j-2 >> j-3 > Спасибо за отклик, но таким образом отправится несколько писем с одним вложением. вложенные циклы обработки кто-то отменял? [root@local ~]# cat ccc.bsh #!/bin/bash for n in 10 20 30 do echo "$n:" for i in 1 2 3 do echo "mail $n-$i; " done|tail -n 2 done [root@local ~]# ./ccc.bsh 10: mail 10-2; mail 10-3; 20: mail 20-2; mail 20-3; 30: mail 30-2; mail 30-3;
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 07:40 , 14-Мрт-12 (7)
>[оверквотинг удален] > [root@local ~]# ./ccc.bsh > 10: > mail 10-2; > mail 10-3; > 20: > mail 20-2; > mail 20-3; > 30: > mail 30-2; > mail 30-3; извиняюсь за столь долгую задержку, по вашим примерам только что составил скрипт: ( for n in *.txt do echo "uuencode $n $n;" done )| tr "\n" " " | mail -s "test" emailaddress получил письмо со строкой uuencode 1.txt 1.txt; uuencode 2.txt 2.txt; uuencode test.txt test.txt; такого результата я тоже достигал, главная проблема в том, что эту строку нужно выполнить, а не поместить в письмо (
- отправка нескольких файлов с помощью uuencode из скрипта, LSTemp, 08:08 , 07-Мрт-12 (6)
>[оверквотинг удален] > "\n" " "; done` > attach=\($a\) > $attach | mail -s "test" email@mail.ru > получаю сообщение об ошибке: > (uuencode: command not found > нужно как то экранировать скобку, но как, не пойму, если из консоли > отправлять командой > (uuencode 1.txt 1.txt; uuencode 2.txt 2.txt; uuencode test.txt test.txt; ) | mail > -s "test" email@mail.ru > то все отправляется нормально (
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 06:41 , 15-Мрт-12 (8)
в общем проблему решил так:#!/bin/bash . config sendmail="/usr/sbin/sendmail" boundary='simple boundary' (cat <<EOF; To: $ADMINMAIL From: $HOSTNAME Subject: test Content-Type: multipart/mixed; boundary=$boundary This is a multi-part message in MIME format. --$boundary EOF for name in *.txt do file=`cat $name` echo "Content-Type: application/octet-stream" echo "Content-Transfer-Encoding: binary" echo "Content-Disposition: attachment; filename="$name"" echo "$file" echo "" echo "--$boundary" done echo "--$boundary--" echo "" ) | $sendmail -t -oi exit 0 осталась только одна проблема, файлы посылаются нормально, за исключением логов oracle :) надо их чем то кодировать, а я в этом пока не разобрался, если есть мысли по этому поводу - буду рад если подскажете
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 09:37 , 15-Мрт-12 (10)
более конкретное описание проблемы - для кодирование в base64 нужно как то заменить переносы строк, таким образом, что бы base64 их понял... но я пока не знаю как
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 11:51 , 15-Мрт-12 (11)
ну чтож) пообщаюсь сам с собой, на будущее всем кто столкнется с похожей проблемой. почти "запилил" скрипт, теперь выглядит так:#!/bin/bash . config sendmail="/usr/sbin/sendmail" boundary='simple boundary' (cat <<EOF; To: $ADMINMAIL From: $HOSTNAME Subject: test Content-Type: multipart/mixed; boundary=$boundary MIME-Version: 1.0 --$boundary EOF for name in *.txt do sed -i 's/$'"/`echo \\\r`/g" $name #решает проблему с изменением переносов строк с LF на CRLF echo "--$boundary" echo "Content-Type: text/plain; name=\"$name\"" echo "Content-Transfer-Encoding: base64" echo "Content-Disposition: attachment; filename=\"$name\"" echo "" base64 $name echo "" done echo "--$boundary--" ) | $sendmail -t -oi exit 0 для полного счастья осталось составить правильные заголовки для the bat (что бы аттачи были текстовыми файлами, а не часть.att), результат выложу, может кому интересно будет
- отправка нескольких файлов с помощью uuencode из скрипта, mbb, 06:42 , 15-Мрт-12 (9)
|