脚本代码: #!/usr/bin/ksh . ./scripts/env.lib usage="usage: $0 <module> <tag> <cvs_username>"; #usage="... [time]"; echo `date "+[%Y/%m/%d %T %Z]"` $0 [$1 $2] [$3] `who am i`>>./scripts/logfile.txt ############################ # test for ERRORs ############################ if [ $# != 3 ]; then echo ; echo $usage ; echo ; exit 1 ; fi if [ "1"$WEBSPHERE_HOME == "1" ]; then WEBSPHERE_HOME=$ws_path; fi ############################ # save current directory ############################ export CURRDIR=`pwd`; # load the $portal_xmlaccess_user AND $portal_xmlaccess_pass #. ./.portal.passwd; cvs_project_module=$1; cvs_username=$3; ############################ # set up environment ############################ #echo "setting up environment" export PATH=$CVS_HOME:$ANT_HOME/bin:$was_home/bin:$PATH #myecho $PATH export CVSROOT=:$cvs_protocol:$cvs_username@$cvs_host:$cvs_port$cvs_path ############################ # cvs login - exit on failure # Note: the ANT scripts will use the same login ############################ echo; echo "CVS username: [$cvs_username]"; if ! cvs -d :$cvs_protocol:$cvs_username:$cvs_passwd@$cvs_host:$cvs_port$cvs_path login; then echo "ERROR: invalid cvs login"; exit 1 ; fi echo; ############################ # Starting cvs stuff ############################ echo "Remove OLD source $cvs_checkout_dir" rm -R $cvs_checkout_dir echo "checkout source $cvs_project_module" #cvs co -d $cvs_checkout_dir -P -A $cvs_project_module cvs co -r $2 -d $cvs_checkout_dir $cvs_project_module if [ $? -ne 0 ]; then echo "something wrong with cvs checkout!"; exit 1; fi ############################ # run ANT ############################ echo "========start ant========"; ant -f $ANT_BUILD_FILE ear if [ $? -ne 0 ]; then echo "something wrong with ant stuff!"; exit 1; fi echo "========end ant========"; ############################ # cvs logout ############################ cvs -d :$cvs_protocol:$cvs_username@$cvs_host:$cvs_port$cvs_path logout ############################ # deploy app to websphere ############################ echo "try to stop application .............."; wsadmin.sh -c "/$AdminControl invoke [/$AdminControl queryNames type=ApplicationManager,process=server1,*] stopApplication $was_app_name"; echo "try to update application .............."; wsadmin.sh -c "/$AdminApp update $was_app_name app {-operation update -contents $was_app_location}"; echo "try to start application .............."; wsadmin.sh -c "/$AdminControl invoke [/$AdminControl queryNames type=ApplicationManager,process=server1,*] startApplication $was_app_name"; exit 0; 参数文件: #----------CVS----------------- CVS_HOME=/export/home/cvs CVS_MODULE="" cvs_username="xxxx" cvs_protocol=pserver cvs_host=xxx.xxxxxxx.com cvs_port=2401 cvs_path=/home/cvs_path cvs_passwd=yyyyy cvs_checkout_dir=appname cvs_project_module=appname #----------ANT----------------- ANT_HOME=/export/home/apache-ant-1.7.0 ANT_BUILD_FILE=/export/home/appname/build.xml #----------websphere----------------- was_home=/export/home/IBM/WebSphere/AppServer was_app_name=appname was_app_location=/export/home/appname/dist/epma_`date "+%Y%m%d"`.ear