で正常に実行されたシェルスクリプトは、このコードは、シェルスクリプトを実行し、完全私はこの スクリプト「script.sh」のような私のコードの何かを持っているのjava
private void function(String par1,String par2,String par3,String par4){
String logFile = logFolder + par1 + "_label.log";
String cmd = " /bin/sh " + scriptFolder + "script.sh" + " " +
par1 + " "
+ par2 + " "
+ par3 + " "
+ par4 + " > " +
logFile + " 2>&1 ";
logger.info("label update script" +cmd);
/* vm info */
String host = ConstantsServers.LABEL_UPDATE_SERVER;
String user = "USER";
String passwd = System.getenv("USER_PW");
/*
* start the script as user on the server
*/
new RunCmdViaSSH(host, user, passwd, cmd);
logger.debug("Log file created at:" +logFile);
}
を実行するために、いくつかの7分かかりますかどうかを確認する方法と、出力をログファイルに保存します。 このシェルスクリプトが正常に実行されたかどうかをJavaでチェックインするにはどうすればよいですか。 をお勧めします。
、私はこの
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
//checks whether the script ran successfully or not
String strLine = null,tmp;
while ((tmp = br.readLine()) != null) {
strLine=tmp;
}
String lastLine = strLine;
logger.debug(lastLine);
if (lastLine.contains("script ran successfully")) {
logger.debug("script passed");
}
else{
logger.debug("script failed");
}
のようなコードの何かをファイルリーダーを使用して、ファイルの最後の行をチェックしてみましたが、このコードの問題は、それがログファイルが完全に更新され刚性待つNITになるということです最初の数行を読み込み、else部分を出力します。
他にもこれを行う方法はありますか? はそれを行うには
おそらく、あなたは待つ必要があります。残念ながら、私は 'RunCmdViaSSH'に関する情報を見つけることができませんでした。 – kgeorgiy