替代 UNIX shell 脚本中的 uuencode(从 UNIX 盒子发送电子邮件)

问题描述 投票:0回答:1

我收到了一项自动化脚本的任务,并且我为此编写了一个脚本。该脚本需要从数据中心和 AWS 运行。最后,结果需要被压缩并发送给预期的收件人。

我已经使用

uuencode
在数据中心生成邮件,它在数据中心运行得绝对正常。但是,当我在 AWS 中运行它时,出现错误
Syntax error: uuencode, not found

在互联网上搜索后,我才知道发生这种情况是因为我的 AWS 机器上没有安装

uuencode
。经我验证,这是正确的。

我是编码新手,任何帮助将不胜感激。我的问题是,AWS 是一台客户端计算机,我们不应该在其中安装任何新内容。所以,安装

uuencode
对我来说不是一个选择。

有人可以告诉我 uuencode 的替代命令吗?

这是我的Linux版本:

Linux AWS 版本:3.8.13-55.1.2.el6uek.x86_64 #2 SMP 12 月 18 日星期四 00:15:51 PST 2014 x86_64 x86_64 x86_64 GNU/Linux

Linux 数据中心版本:2.6.18-194.el5 #1 SMP 3 月 29 日星期一 22:10:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

这是我写的代码:

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
。任何替代命令都会有帮助。

问候

shell unix scripting uuencode
1个回答
3
投票

如果你需要uuencode并且无法安装uuencode,那么可以考虑python。 在现代,Python 随处可见,uuencode 是其标准模块之一的一部分。

要对

Report.zip
进行 uuencode 并将输出发送到 stdout,请尝试:

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

更新(2024)

Python 3 区分字符串和(原始)字节。 如果您使用的是 Python 3.12 或更早版本,请尝试:

python3 -c 'import sys,uu; uu.encode("tmp.pdf", sys.stdout.buffer)' # py 3.12 or earlier

uu
模块在Python 3.11中已被弃用,并将在Python 3.13中删除。今后,Python建议使用MIME编码而不是
uu
编码。

© www.soinside.com 2019 - 2024. All rights reserved.