2016-06-30 6 views
0

Мне было поручено автоматизировать скрипт, и я написал для этого сценарий. Этот сценарий должен запускаться как из центра обработки данных, так и из AWS. В итоге результат должен быть заархивирован и отправлен предполагаемому получателю.замените uuencode в сценариях оболочки UNIX (для отправки электронной почты из окна UNIX)

Я использовал uuencode для генерации почты в датацентре, которая работает абсолютно точно в датацентре. Однако, когда я запускаю его в AWS, я получаю сообщение об ошибке Syntax error: uuencode, not found.

При поиске в Интернете я узнал, что это происходит, потому что uuencode не установлен на моей машине AWS. Это правильно, когда я это проверил.

Я новичок в кодировании, любая помощь будет действительно оценена. Моя проблема заключается в том, что AWS - это клиентская машина, где мы не должны устанавливать что-либо новое. Таким образом, установка uuencode здесь не является вариантом.

Может кто-нибудь, пожалуйста, дайте мне знать альтернативную команду для uuencode.

Вот мои Linux версии:

Linux AWS версия: 3.8.13-55.1.2.el6uek.x86_64 # 2 SMP Чт 18 декабря 00:15:51 PST 2014 x86_64 x86_64 x86_64 GNU/Linux

версия

Linux центров обработки данных: 2.6.18-194.el5 # 1 SMP пн 29 марта 22:10:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

и вот кусок кода, который я написал:

i

f [ -s $WORKINGDIR/Report.zip ] 
then 

(echo "Hi, 

Please find attached, report for datacentre. 

Please let us know for further clarifications. 


Thanks, 
JordanForever ";uuencode $WORKINGDIR/Report.zip Report.zip;)| mailx -s "report for datacentre " $MAILLIST 
else 
(echo "script for datacentre failed. 

     Script Details: 

       Host: $HOSTNAME 
       Path: $WORKINGDIR 

";) | mailx -s "Failed: report for datacentre " $FAILURE_MAILLIST 
fi 

Я пробовал команду mutt и sendmail, но это тоже не помогло.

Может один из вас, пожалуйста, помогите мне. Я не могу установить/удалить uuencode. Любая альтернативная команда поможет.

С уважением

+0

Я предполагаю, что вы проверили, что ваша реализация 'mailx' на AWS фактически не имеют для вкладывания (и, следовательно, кодировать) вложения? Ищите '-A' (или аналогичный вариант), но не каждый' mailx' имеет это. – Kusalananda

+0

Доступен ли 'base64'? Если это так, он кодирует (и расшифровывает) данные Base-64. Он не идентичен 'uuencode' (он не будет содержать информацию о имени файла и разрешениях, и вы, вероятно, захотите указать' -b 72' или около того - '-w 72' для версии GNU - разумно сломать линии, и т.д). Это «современная» стандартная кодировка, избегая «uuencode» nasties, таких как конечные пробелы в строках вывода (которые прерывают «uudecode», если они удаляются). –

ответ

0

Если вам нужно UUENCODE, и вы не можете установить UUENCODE, а затем рассмотреть питона. В наше время python устанавливается повсюду, а uuencode является частью одного из его стандартных модулей.

Report.zip Для UUencode и отправить на стандартный вывод, попробуйте:

python -c 'import sys,uu; uu.encode("Report.zip", sys.stdout)'