diff options
Diffstat (limited to 'linuxinstall')
| -rw-r--r-- | linuxinstall/conf/jvm.conf | 2 | ||||
| -rw-r--r-- | linuxinstall/install.sh | 281 | ||||
| -rw-r--r-- | linuxinstall/readme.txt | 47 | ||||
| -rw-r--r-- | linuxinstall/shell/07-15-Linux下定时重启DC更新说明.txt | 11 | ||||
| -rw-r--r-- | linuxinstall/shell/datacontroller.sh | 197 | ||||
| -rw-r--r-- | linuxinstall/shell/restart.sh | 30 | ||||
| -rw-r--r-- | linuxinstall/shell/root | 1 | ||||
| -rw-r--r-- | linuxinstall/shell/shutdown.sh | 30 | ||||
| -rw-r--r-- | linuxinstall/shell/startup.sh | 34 |
9 files changed, 633 insertions, 0 deletions
diff --git a/linuxinstall/conf/jvm.conf b/linuxinstall/conf/jvm.conf new file mode 100644 index 0000000..f4edf37 --- /dev/null +++ b/linuxinstall/conf/jvm.conf @@ -0,0 +1,2 @@ +-Xms64m +-Xmx128m
\ No newline at end of file diff --git a/linuxinstall/install.sh b/linuxinstall/install.sh new file mode 100644 index 0000000..a271384 --- /dev/null +++ b/linuxinstall/install.sh @@ -0,0 +1,281 @@ +#!/bin/bash + +DEFAULT_DATA_DIR="/home/nms/nmsdata" +DEFAULT_INSTALL_DIR="/home/nms/datacontroller" + +# --- set install dir +PRG="$0" +PRGDIR=`dirname "$PRG"` +CUR_PRGDIR=`cd "$PRGDIR"; pwd` + +if [ $# = 0 ] + then + echo -n "enter intall dir [default: $DEFAULT_INSTALL_DIR]:" + read INSTALL_DIR + if [ -z "$INSTALL_DIR" ]; then + INSTALL_DIR="$DEFAULT_INSTALL_DIR" + fi +else + INSTALL_DIR="$1" +fi + +if [ ! -d $INSTALL_DIR ] + then + mkdir -p $INSTALL_DIR +fi + +INSTALL_DIR=`cd "$INSTALL_DIR"; pwd` + +# --- check jdk and jdk-version +install_jdk=0 +javaversion=`java -version 2>&1|grep "java version"` +if [ -n "$javaversion" ] + then + # javaversion=${javaversion:14:3} + javavmajor=`echo $javaversion | cut -c15` + javavminor=`echo $javaversion | cut -c17` +# OS_TYPE=$( lsb_release -d| cut -d: -f2| cut -f2 ) +# if [ "`echo $OS_TYPE | cut -c1-6`" = "Ubuntu" ] +# then +# if [ 2 -gt $javavmajor ]; then +# if [ 6 -gt $javavminor ]; then +# install_jdk=1 +# fi +# fi +# else + if [[ 2 -gt $javavmajor && 6 -gt $javavminor ]]; then + install_jdk=1 + fi +# fi + else + install_jdk=1 +fi + +# --- install jdk +cd "$INSTALL_DIR"/.. +NMS_JDK="$(pwd)/nmsjdk" +JDK_DIR="$(pwd)/jdk1.7.0_80" +JDK_BIN_FILE=$CUR_PRGDIR"/jre_install/jdk-7u80-linux-i586.tar.gz" +if [ "`uname -i`" = "x86_64" ];then + JDK_BIN_FILE=$CUR_PRGDIR"/jre_install/jdk-7u80-linux-x64.tar.gz" +fi +if [ $install_jdk = 1 ] + then + if [ ! -e "$NMS_JDK" ] + then + echo "JDK bin file: $JDK_BIN_FILE" + echo "now, install jdk: $JDK_DIR" + sleep 3 + if [ ! -e "$JDK_DIR" ];then + mkdir -p $JDK_DIR + fi + tar -xzf $JDK_BIN_FILE -C $JDK_DIR --strip-components=1 || installJdk=1 + if [ -n "$installJdk" ];then + echo "install jdk failure, exit program" + exit 1 + fi + ln -s $JDK_DIR $NMS_JDK + echo "install jdk done" + fi +elif [ -n "$JAVA_HOME" ];then + ln -s $JAVA_HOME $NMS_JDK +else + echo "JDK bin file: $JDK_BIN_FILE" + echo "now, install jdk: $JDK_DIR" + sleep 3 + if [ ! -e "$JDK_DIR" ];then + mkdir -p $JDK_DIR + fi + tar -xzf $JDK_BIN_FILE -C $JDK_DIR --strip-components=1 || installJdk=1 + if [ -n "$installJdk" ];then + echo "install jdk failure, exit program" + exit 1 + fi + ln -s $JDK_DIR $NMS_JDK + echo "install jdk done" +fi +cd "$CUR_PRGDIR" + +echo "===========================================" +echo "NMS_JDK: $NMS_JDK" +echo "INSTALL_DIR: $INSTALL_DIR" +echo "===========================================" + +# --- copy file to install_dir +if [ "$INSTALL_DIR" == "$CUR_PRGDIR" ] + then + echo "install directory is current program directory..." +else + echo "install program, it may take a few time..." + CP_DIR=( + bin + lib + conf + shell + ) + #cp + for CP_NAME in ${CP_DIR[@]} + do + echo $CP_NAME + cp -a $CUR_PRGDIR"/$CP_NAME" $INSTALL_DIR + done +fi + +function modify_file(){ + if [ $# != 2 ] + then + echo "usage: modify_file [prop_name] [prop_value]" + exit 0 + fi + prop_name="$1" + prop_value="$2" + #echo "modify_file $prop_name $prop_value" + if [ -z "$(cat $PROP_FILE |grep $prop_name)" ] + then + echo "" >> $PROP_FILE + echo "$prop_name=$prop_value" >> $PROP_FILE + else + sed -i "s|^$prop_name.*|$prop_name=$prop_value|" $PROP_FILE + fi +} + +enter_password="" +function readPasswd(){ + enter_password="" + stty -echo cbreak + while true + do + character=$(dd if=/dev/tty bs=1 count=1 2> /dev/null) + case $character in + $(echo -e "\n")) + break + ;; + $(echo -e "\b")) + if [ -n "$enter_password" ]; then + echo -n -e "\b \b" + enter_password=$(echo "$password" | sed 's/.$//g') + fi + ;; + *) + enter_password=$enter_password$character + echo -n '*' + ;; + esac + done + stty -cbreak echo + echo "" +} + +# modify property +PROP_FILE=$INSTALL_DIR"/conf/myconfig.properties" + +#echo "PROP_FILE: $PROP_FILE" + +#-------------data dir +echo -n "enter data dir [default $DEFAULT_DATA_DIR]: " +read data_path +if [ -z "$data_path" ] + then + data_path="$DEFAULT_DATA_DIR" +fi +#-------------local ip +echo -n "enter local ip: " +read local_ip +while [ -z "$local_ip" ] + do + echo -n "local ip cannot null, please enter local ip: " + read local_ip +done +#-------------nmsweb ip +echo -n "enter nmsweb ip: " +read nmsweb_ip +while [ -z "$nmsweb_ip" ] + do + echo -n "nmsweb ip cannot null, please enter nmsweb ip: " + read nmsweb_ip +done +#-------------db url +#echo -n "enter database url: " +#read db_url +#while [ -z "$db_url" ] +# do +# echo -n "database url cannot null, please enter database url: " +# read db_url +#done + +#2018-08-26 修改url为只传host和port(默认3306)拼接完成后赋值给db.url +DBPORT=3306 +#-------------db host +echo -n "enter database host:" +read db_host +while [ -z "$db_host" ] +do + echo -n "database host cannot null,please enter database host:" + read db_host +done + +#-------------db port +echo -n "enter database port[default port 3306]:" +read db_port +if [ -z "$db_port" ] +then + db_port="$DBPORT" +fi + +#-----------db url +db_url="jdbc:mysql://"${db_host}":"${db_port}"/nms?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true&rewriteBatchedStatements=true" + +#-------------db username +echo -n "enter database username: " +read db_username +while [ -z "$db_username" ] + do + echo -n "database username cannot null, please enter database username: " + read db_username +done +#-------------db password +echo -n "enter database password: " +readPasswd +db_passwd="$enter_password" +while [ -z "$db_passwd" ] + do + echo -n "database password cannot null, please enter database password: " + readPasswd + db_passwd="$enter_password" +done +#-------------log4j dir +echo -n "enter logs path [default $data_path/dc_logs]: " +read logs_path +if [ -z "$logs_path" ] + then + logs_path="$data_path/dc_logs" +fi + +modify_file "common.datas.dir" $data_path +modify_file "system.inet.address" $local_ip +modify_file "web.socket.ip" $nmsweb_ip +modify_file "db.url" $db_url +modify_file "db.username" $db_username +modify_file "db.password" $db_passwd + +# modify log4j +PROP_FILE=$INSTALL_DIR"/conf/log4j.properties" +encoding=${LANG#*.} +modify_file "log4j.appender.stdout.encoding" $encoding +modify_file "log4j.appender.debugAppender.encoding" $encoding +modify_file "log4j.appender.infoAppender.encoding" $encoding +modify_file "log4j.appender.debugAppender.File" "$logs_path/datacontroller_debug.log" +modify_file "log4j.appender.infoAppender.File" "$logs_path/datacontroller_info.log" + +#permit +cd $INSTALL_DIR"/shell" +chmod 755 *.sh +cd $CUR_DIR + +if [ -z "$(cat /etc/rc.local|grep $INSTALL_DIR"/shell/startup.sh")" ] +then + echo $INSTALL_DIR"/shell/startup.sh" >> /etc/rc.local +fi + +echo "install successed..." +echo "please use [$INSTALL_DIR/shell/startup.sh] to run the program..."
\ No newline at end of file diff --git a/linuxinstall/readme.txt b/linuxinstall/readme.txt new file mode 100644 index 0000000..4a226d1 --- /dev/null +++ b/linuxinstall/readme.txt @@ -0,0 +1,47 @@ +DC--Linux下的安装文件结构: + +|--DC_install +| |--bin +| | |--cer +| | | |--client_ks +| | | |--client_ts +| | | |--server_ks +| | | |--server_ts +| | |--DataController.jar +| |--conf +| | |--jvm.conf +| | |--log4j.properties +| | |--myconfig.properties +| |--jre_install +| | |--jre-6u45-linux-i586.bin +| | |--jre-6u45-linux-x64.bin +| |--lib +| | |--ant.jar +| | |--bonecp-0.7.1.RELEASE.jar +| | |--commons-beanutils-1.7.jar +| | |--commons-collections.jar +| | |--commons-io.jar +| | |--commons-lang.jar +| | |--commons-logging.jar +| | |--ezmorph-1.0.4.jar +| | |--fileComment.jar +| | |--google-collections-1.0.jar +| | |--jpcap.jar +| | |--json-lib-2.2.2-jdk15.jar +| | |--junit.jar +| | |--log4j-1.2.15.jar +| | |--mail.jar +| | |--ObjectSNMP.jar +| | |--ojdbc14.jar +| | |--ostermillerutils_1_07_00.jar +| | |--sigar.jar +| | |--slf4j-api-1.5.10.jar +| | |--slf4j-log4j12-1.5.10.jar +| | |--snmp4j-2.0.3.jar +| |--shell +| | |--datacontroller.sh +| | |--shutdown.sh +| | |--startup.sh +| |--install.sh + +注意:.properties配置文件中不能包含汉字。
\ No newline at end of file diff --git a/linuxinstall/shell/07-15-Linux下定时重启DC更新说明.txt b/linuxinstall/shell/07-15-Linux下定时重启DC更新说明.txt new file mode 100644 index 0000000..fd48c1c --- /dev/null +++ b/linuxinstall/shell/07-15-Linux下定时重启DC更新说明.txt @@ -0,0 +1,11 @@ +DC更新步骤: + 1.更新DC的脚本restart.sh 和 datacontroller.sh + 2.更新DC的zip包:bin(DataController.exe 和 DCConfig.exe)、lib + 3.新建crontab定时任务(每隔2天,在晚上23:59分重启DC) + 任务内容为:59 23 */2 * * /home/nms/datacontroller/shell/restart.sh + 相关命令: + 编辑定时任务:crontab -e + 查看定时任务:crontab -l + + +
\ No newline at end of file diff --git a/linuxinstall/shell/datacontroller.sh b/linuxinstall/shell/datacontroller.sh new file mode 100644 index 0000000..dfb7d8a --- /dev/null +++ b/linuxinstall/shell/datacontroller.sh @@ -0,0 +1,197 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Start/Stop Script for the DATACONTROLLER Server +# +# Environment Variable Prequisites +# +# DATACONTROLLER_HOME May point at your DATACONTROLLER "build" directory. +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` + +# Only set DATACONTROLLER_HOME if not already set +[ -z "$DATACONTROLLER_HOME" ] && DATACONTROLLER_HOME=`cd "$PRGDIR/.." ; pwd` +cd "$DATACONTROLLER_HOME"/shell + +if [ -z "$DATACONTROLLER_TMPDIR" ] ; then + DATACONTROLLER_TMPDIR="$DATACONTROLLER_HOME"/temp +fi +if [ ! -d $DATACONTROLLER_TMPDIR ] + then + mkdir $DATACONTROLLER_TMPDIR +fi + +# -------- check jdk +# check nmsjdk +NMS_HOME=`cd "$DATACONTROLLER_HOME/.." ; pwd` +cd "$DATACONTROLLER_HOME"/shell +NMS_JDK="$NMS_HOME"/nmsjdk +if [ ! -e "$NMS_JDK" ] + then + echo "$NMS_JDK not exist" + exit 0 +fi +# check java -version +javaversion=`$NMS_JDK/bin/java -version 2>&1|grep "java version"` +if [ ! -n "$javaversion" ] + then + echo "$NMS_JDK cannot use, please install" + exit 0 +fi + +# -------- set jdk path +export JAVA_HOME=$NMS_JDK +export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar +export PATH=$JAVA_HOME/bin:$PATH + +temp=$CLASSPATH +#setting libs path +libs="$DATACONTROLLER_HOME"/lib/* +append(){ + temp=$temp":"$1 +} +for file in $libs; do + append $file +done +jars="$DATACONTROLLER_HOME"/bin/* +for file in $jars; do + append $file +done +export DC_CLASSPATH=$temp:.:$DATACONTROLLER_HOME/conf +export LD_LIBRARY_PATH=$DATACONTROLLERT_HOME/lib +export LANG=zh_CN.UTF-8 + +echo "Using DATACONTROLLER_HOME: $DATACONTROLLER_HOME" +echo "Using DATACONTROLLER_TMPDIR: $DATACONTROLLER_TMPDIR" +echo "Using JAVA_HOME: $JAVA_HOME" +echo "Using CLASSPATH: $DC_CLASSPATH" + +# ---- get jvm param +jvmconf_file=$DATACONTROLLER_HOME"/conf/jvm.conf" +if [ -f $jvmconf_file ] + then + XmsOpt=`sed -n '/-Xms/p' $jvmconf_file` + XmxOpt=`sed -n '/-Xmx/p' $jvmconf_file` + JAVA_OPTS="$XmsOpt $XmxOpt -XX:+UseParNewGC" +else + JAVA_OPTS="-Xms64m -Xmx256m -XX:+UseParNewGC" +fi + +program="com.nms.server.DataController" +name="DataController" + +proc_id= + +writePid() +{ + ps aux|grep java|grep $program|grep -v grep|awk '{print $2}' > $DATACONTROLLER_TMPDIR/serverPid.temp +} +getPid() +{ + unset proc_id + proc_id=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'` +} + +if [ "$1" = "start" ] ; then + getPid + if [ -n "$proc_id" ] + then + echo "$name already running......" + else + nohup java $JAVA_OPTS -classpath $DC_CLASSPATH $program >/dev/null & + sleep 3 + getPid + if [ -n "$proc_id" ] + then + echo "$name start success!!!!!" + writePid + else + echo "$name start error!!!!!" + fi + fi +elif [ "$1" = "stop" ]; then + getPid + if [ -n "$proc_id" ] + then + echo "$name is start, now kill......" + kill -15 $proc_id + sleep 3 + writePid + echo "$name kill ok !!!!!!!!!!!!!" + else + echo "$name is not start!!!!!!!!!!!" + fi +elif [ "$1" = "restart" ] ; then + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name is start, now restart......" >> $DATACONTROLLER_TMPDIR/job.log + count=1 + while [ $count -le 3 ] + do + sleep 1 + kill -15 $proc_id + sleep 1 + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop success!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + break + fi + count=$count+1 + done + + getPid + if [ -n "$proc_id" ] + then + sleep 1 + kill -9 $proc_id + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop -9 error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + exit 1 + fi + fi + + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name is not start, now start......" >> $DATACONTROLLER_TMPDIR/job.log + fi + + #--------copy right, start proc + nohup java $JAVA_OPTS -classpath $DC_CLASSPATH $program >/dev/null & + sleep 3 + getPid + if [ -n "$proc_id" ] + then + writePid + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name restart success!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name restart error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + fi + +else + echo "Usage: datacontroller.sh ( commands ... )" + echo "commands:" + echo " start Start $name" + echo " stop Stop $name" + echo " restart ReStart $name in a separate window" +fi + +cd - diff --git a/linuxinstall/shell/restart.sh b/linuxinstall/shell/restart.sh new file mode 100644 index 0000000..41394e1 --- /dev/null +++ b/linuxinstall/shell/restart.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Retart Script for the DataController +# +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` +EXECUTABLE=datacontroller.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" restart "$@"
\ No newline at end of file diff --git a/linuxinstall/shell/root b/linuxinstall/shell/root new file mode 100644 index 0000000..e5e34ab --- /dev/null +++ b/linuxinstall/shell/root @@ -0,0 +1 @@ +59 23 */2 * * /home/nms/datacontroller/shell/restart.sh diff --git a/linuxinstall/shell/shutdown.sh b/linuxinstall/shell/shutdown.sh new file mode 100644 index 0000000..f6dca3a --- /dev/null +++ b/linuxinstall/shell/shutdown.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Stop Script for the NMS Server +# +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` +EXECUTABLE=datacontroller.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
\ No newline at end of file diff --git a/linuxinstall/shell/startup.sh b/linuxinstall/shell/startup.sh new file mode 100644 index 0000000..eabf268 --- /dev/null +++ b/linuxinstall/shell/startup.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Start/Stop Script for the NMSSERVER Server +# +# Environment Variable Prequisites +# +# NMSSERVER_HOME May point at your NMSSERVER "build" directory. +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` + +EXECUTABLE=datacontroller.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" start "$@" |
