Sendmail Bash Shell 脚本帮助

Sendmail Bash Shell 脚本帮助

我是 SysAdmin(在 Redhat 中)的新手,需要更正无法运行的 shell 脚本。 .sh 文件最初运行在 Solaris Unix 系统上。

有一个关联的 CRON 作业,它启动脚本来运行 jar 文件,将运行结果通过电子邮件发送给系统管理员,然后将运行结果复制到系统中的特定位置。

我已经做了一些实质性的改变,但有两个部分不起作用:

  1. 发送电子邮件:尽管电子邮件与运行结果一起发送,但不会显示主题行和收件人字段。

  2. 复制运行结果文件并移动到新的系统位置

我想知道我的 ${} 语法在这两部分中是否不正确。 jar 文件正确运行。

#!/bin/sh

#Declare the required paths
JAVA=/usr/local/...../jdk/jre/bin/java
CLASSPATH=/usr/local/..../apps/JavaProg

#Declare the logging params
LOGPATH=/usr/local/..../logs #removed spaces either side of assignment
LOGDTTM=$(date +"%Y-%m-%d")  #moved + sign to left of " 

#Declare the email params
[email protected],[email protected]
SUBJECT="Results: Run File"
[email protected]

#Change to the javaprog.jar location 
cd ${CLASSPATH}

#Run the jar file
${JAVA} -jar ${CLASSPATH}/javaprog.jar

#Send an email to the SysAdmin with the output of the javaprogrun.log
#echo -e "Subject: ${SUBJECT}" | 
#cat - javaprogrun.log |
#/usr/sbin/sendmail  -f "${FROM}"  -t "${ADMINS}" 

#above section replaced with:
BODY=javaprogrun.log
(cat-${BODY})<<EOF|/usr/sbin/sendmail -i ${ADMINS}
Subject:$SUBJECT
To:${ADMINS}
From:${FROM}
EOF


#Copy the log run file into new file format and move to the logs directory
mv javaprogrun.log  ${LOGPATH}/xxx-javaprogrun-b2.${LOGDTTM}.log 

当我在 google 上搜索 Sendmail 时,我得到了很多不同的选项来解决此问题,但由于我当前无法访问 RedHat 环境...不要问...我无法在本地进行测试。该脚本必须发送给第三方来安装。

编辑:我解决了我的问题,并添加了我对代码所做的调整。该脚本现在可以正确发送一封电子邮件,并将运行结果输出作为文件发送,并将生成的带时间戳的文件移动到正确的系统位置。

相关内容