1、java获取shell脚本执行信息
/home/oracle/auto_sh/jdk-linux/bin/java -classpath "/home/oracle/Temp_sh/Test_install.jar:/home/oracle/auto_sh/sqljdbc.jar" com.test.Test 10.9.176.28 /home/oracle/Temp_sh/Test.sh
以上Shell脚本的意思:运行java程序"Test","com.test.Test"后的 IP及shell目录为"Test"类传的两参数。
以下java代码中获取shell脚本执行情况
public int executeSH(String sh)
{
int status = 1;
try {
Process cmd = Runtime.getRuntime().exec(sh);
InputStream in = cmd.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String tmp = null;
while((tmp=br.readLine())!=null)
{
if(tmp.length()>0)
{
System.out.println("== "+this.getCurrentTime()+" "+tmp);
}
if(tmp.equals("ByeBye"))
{
status = 0;
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return status;
}
以下为shell脚本
/******************************************************
#! /bin/bash
echo " ============================================================================="
echo " * * * * * * * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * * * * * * * * * * "
echo " ============================================================================="
echo " ============================== AUTO_INSTALL_START============================="
echo
Install_Path="/export/home/oracle/netnumen/TestInstall"
Install_Temp="/export/home/oracle/temp"
Version_IP="$1"
Version_Path="$2"
Pkg_name="$3"
Ftp_uname="$4"
Ftp_passwd="$5"
MainClass="com.test.ums"
function stop_testProc()
{
psid=0
for x in 1 2 3 4 5 7 8 9 10
do
echo $x;
javaps=`$Install_Path/ums/jdk-linux/bin/jps -l |grep $MainClass`
#jps -l 获取java类"MainClass"进程
#if ["$javaps" != '']; then
if [ -n "$javaps" ]; then
psid=`echo $javaps |awk '{print $1}'`
#取得java“MainClass”进程号
echo $psid
#su - oracle -c "kill -9 $psid"
`kill -9 $psid`
if [ $? -eq 0 ]; then
echo "[Deleted OK]"
else
echo "[Deleted Failed]"
fi
else
echo "[Now no need to kill process]"
break
fi
done
}
function silence_setup()
{
#unzip
unzip -o $Install_Temp/$Pkg_name -d $Install_Temp/ >/export/home/oracle/auto_sh/unzip.log
#copy .properties
rm $Install_Temp/Installer/install/bin/test-silence-setup.properties
cp /export/home/oracle/auto_sh/test-silence-setup.properties $Install_Temp/Installer/install/bin/
#install
$Install_Temp/Installer/install/bin/solaris-test-silence-setup.sh >/export/home/oracle/auto_sh/test-silence-setup.log
sleep 5
if grep -qc "succeed" test-silence-setup.log;
#如果在日志中查找到“succeed”
then echo "test-silence setup complete";
else
echo "test-silence setup fail";
exit 1
fi
}
function stautup_testServer()
{
$Install_Path/ums/ums-svr/bin/console-solaris.sh &
for x in 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
do
sleep 20
p=` netstat -na |grep 64021`
if [ -n "$p" ]; then
#如果字符串“$p”不为空
echo "############ Test startup test complete #############"
echo "ByeBye"
sleep 10
echo "############ not send udp msg complete #############"
else
echo "!!!!!!!!!!!!!!! starting !!!!!!!!!!!!!!"
fi
done
suspend
}
echo " -------------- [Del Install pkg] --------------"
chmod -R 755 $Install_Temp/Installer
rm $Install_Temp/$Pkg_name
rm -rf $Install_Temp/Installer
sleep 3
echo " --------- [Del Install pkg complete] ----------"
echo
echo
echo " -------------- [Get Install pkg] --------------"
ftp -v -n $Version_IP 21 <<EOF
user $Ftp_uname $Ftp_passwd
binary
cd $Test_Path
lcd $Install_Temp
prompt
get $Pkg_name $Test_Temp/$Pkg_name
close
bye
EOF
#ftp下载
echo " -------- [Get Install pkg complete] -----------"
echo
echo
echo " -------- [Stop running test] --------"
#kill test porcess
stop_testProc
echo " -------- [Stop running test complete] --------"
echo
echo
echo " -------- [test-silence setup] --------"
#install test porcess
silence_setup
echo " -------- [test-silence setup complete] --------"
echo
echo
echo " -------- [Startup testserver ...] --------"
#start test server
stautup_testServer
echo
echo
sleep 1
echo "Bye
"
/***************************************************************
分享到:
相关推荐
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。...于是我把oracle的所有环境变量直接复制到shell脚本文件中,在java中调用了一下,然后所有问题迎刃而解! 具体代码参看文件内容
java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本
java调用shell 包含简单的编写shell文件 调用含有参数的shell文件
在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码...
解决有java调用shell脚本需求的童鞋们,包含一些调用的测试方法,有问题可留言回复。
这是Java调用shell脚本的程序,其中有关于shell连接sftp的shell脚本和简单的讲解,仅供参考
网上看了好多android下调用脚本的例子,在没有root的情况下,大多只能执行一些简单的脚本命令,经验证,总结出一种还算比较有用的方法,可以较多数脚本,算是比较靠谱,共享下
该工具包可实现远程调用Shell脚本,可帮助您轻松实现java远程调用Shell脚本
主要介绍了Java程序去调用并执行shell脚本及问题总结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
我们选择后一种,即当完成外币资金的调度工作后,用Java的OutputStreamWriter来生成一个Txt文件,然后用Java来调用Shell脚本,在Shell脚本中完成FTP文件到Kondor系统的工作。
详细的linux shell脚本启动java代码类。
cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本
解决Unity不能调用shell脚本传递参数的问题
主要介绍了Java调用linux shell脚本的方法,需要的朋友可以参考下
在linux系统下安装好的php运行环境,使用shell调用php脚本,附送工具
NULL 博文链接:https://272426068.iteye.com/blog/1188903