執行成功,我有我的代碼是這樣的 腳本「script.sh」 shell腳本是否需要約7分鐘來執行完全如何檢查在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);
}
代碼執行shell腳本和將輸出存儲在日誌文件中。 如何在java中檢查此shell腳本是否成功運行。請提出 。
我試圖檢查使用文件閱讀器代碼是這樣的
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等待,直到該日誌文件完全更新文件的最後一行,它只會讀取前幾行並打印其他部分。
有沒有其他方法可以做到這一點? 請建議做
也許你應該等到'RunCmdViaSSH'實際完成。不幸的是,我找不到任何關於'RunCmdViaSSH'的信息。 – kgeorgiy