我收到了一项自动化脚本的任务,并且我为此编写了一个脚本。该脚本需要从数据中心和 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
。任何替代命令都会有帮助。
问候
如果你需要uuencode并且无法安装uuencode,那么可以考虑python。 在现代,Python 随处可见,uuencode 是其标准模块之一的一部分。
要对
Report.zip
进行 uuencode 并将输出发送到 stdout,请尝试:
python -c 'import sys,uu; uu.encode("Report.zip", sys.stdout)' # Python 2 only
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
编码。