私はRedhatのSysAdminを初めて使用し、実行されていないシェルスクリプトを変更する必要があります。 .shファイルはもともとSolaris Unixシステムで実行されました。
jarファイルを実行するスクリプトを起動し、結果をシステム管理者に電子メールで送信し、結果をシステム内の特定の場所にコピーする関連するCRON操作があります。
私はいくつかの重要な変更をしましたが、次の2つの部分は機能しません。
電子メールを送信:実行結果を電子メールで送信しますが、件名と受信者フィールドは表示されません。
実行結果ファイルをコピーして新しいシステムの場所に移動します。
この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
Sendmailを検索したときにこの問題を解決するためのさまざまなオプションがありましたが、現在RedHat環境にアクセスできないため...尋ねないでください...ローカルではテストできません。インストールするには、スクリプトを第三者に送信する必要があります。
編集:問題を解決し、コードに適用した調整を追加しました。スクリプトは電子メールと実行出力をファイルに正しく送信し、結果のタイムスタンプファイルを正しいシステムの場所に移動します。