我不确定这是否可以通过编程方式解决,但我有一个在测试服务器中正常工作的MailX shell脚本。但是当我在生产服务器中运行脚本时,收件人只会收到一个名为' eml'甚至无法打开。系统管理员告诉我,两台服务器的配置是相同的,我应该调整我的代码。 但我使用完全相同的shell脚本,它可以在测试服务器中运行。
cd /home/guava/autoemail
datediff=1
datetoday=$(date +%Y%m%d)
foldername=$(date --date="${datetoday} -${datediff} day" +%Y%m%d)
mv DEALS_ENTERED_TODAY_ALL_2OM_UP.xls DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.xls
zip -P $foldername DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.zip DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.xls
cat /home/guava/autoemail/email_body.txt | mailx -s "AML_20M_DAILY_TRANSACTION_REPORT_GUAVA_$foldername" -a /home/guava/autoemail/DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.zip ben@onionwank.com
rm DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.xls
rm DEALS_ENTERED_TODAY_ALL_2OM_UP_$foldername.zip
它做了什么:
-declares昨天的日期
- 使用昨天的日期对excel文件进行重新整理
- 使用密码压缩excel文件
- 将其发送给用户
- 删除使用过的文件。
我只想询问我的代码是否可以改进,以便我可以在生产服务器中使用它。为什么服务器会发送一个' eml'文件而不是我定义的附件?
这可能是服务器问题,但系统管理员似乎不知道该怎么做。