install_client.sh 6.4 KB
Newer Older
H
hzcheng 已提交
1
#!/bin/bash
L
lihui 已提交
2 3 4
#
# This file is used to install TDengine client on linux systems. The operating system
# is required to use systemd to manage services at boot
H
hzcheng 已提交
5

L
lihui 已提交
6 7 8 9
set -e
#set -x

# -----------------------Variables definition---------------------
S
slguan 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

osType=Linux

if [ "$osType" != "Darwin" ]; then
    script_dir=$(dirname $(readlink -f "$0"))
    # Dynamic directory
    data_dir="/var/lib/taos"
    log_dir="/var/log/taos"
else
    script_dir=`dirname $0`
    cd ${script_dir}
    script_dir="$(pwd)"
    data_dir="/var/lib/taos"
    log_dir="~/TDengineLog"
fi
L
lihui 已提交
25 26 27 28 29

log_link_dir="/usr/local/taos/log"

cfg_install_dir="/etc/taos"

S
slguan 已提交
30 31 32 33 34 35 36 37 38
if [ "$osType" != "Darwin" ]; then
    bin_link_dir="/usr/bin"
    lib_link_dir="/usr/lib"
    inc_link_dir="/usr/include"
else
    bin_link_dir="/usr/local/bin"
    lib_link_dir="/usr/local/lib"
    inc_link_dir="/usr/local/include"
fi
L
lihui 已提交
39 40 41 42 43 44 45

#install main path
install_main_dir="/usr/local/taos"

# old bin dir
bin_dir="/usr/local/taos/bin"

S
slguan 已提交
46 47
# v1.5 jar dir
v15_java_app_dir="/usr/local/lib/taos"
L
lihui 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

# Color setting
RED='\033[0;31m'
GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'

csudo=""
if command -v sudo > /dev/null; then
    csudo="sudo"
fi

update_flag=0

function kill_client() {
  pid=$(ps -ef | grep "taos" | grep -v "grep" | awk '{print $2}')
  if [ -n "$pid" ]; then
    ${csudo} kill -9 $pid   || :
  fi
}

function install_main_path() {
    #create install main dir and all sub dir
    ${csudo} rm -rf ${install_main_dir}    || :
S
slguan 已提交
73
    ${csudo} mkdir -p ${install_main_dir}
L
lihui 已提交
74
    ${csudo} mkdir -p ${install_main_dir}/cfg
S
slguan 已提交
75
    ${csudo} mkdir -p ${install_main_dir}/bin
L
lihui 已提交
76 77 78 79 80 81 82
    ${csudo} mkdir -p ${install_main_dir}/connector
    ${csudo} mkdir -p ${install_main_dir}/driver
    ${csudo} mkdir -p ${install_main_dir}/examples
    ${csudo} mkdir -p ${install_main_dir}/include
}

function install_bin() {
S
slguan 已提交
83 84 85 86 87 88
  # Remove links
  ${csudo} rm -f ${bin_link_dir}/taos         || :
  if [ "$osType" == "Darwin" ]; then
      ${csudo} rm -f ${bin_link_dir}/taosdump || :
  fi
  ${csudo} rm -f ${bin_link_dir}/rmtaos       || :
L
lihui 已提交
89

S
slguan 已提交
90
  ${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/*
L
lihui 已提交
91 92

    #Make link
S
slguan 已提交
93 94 95 96 97
  [ -x ${install_main_dir}/bin/taos ] && ${csudo} ln -s ${install_main_dir}/bin/taos ${bin_link_dir}/taos                 || :
  if [ "$osType" == "Darwin" ]; then
      [ -x ${install_main_dir}/bin/taosdump ] && ${csudo} ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || :
  fi
  [ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/rmtaos || :
L
lihui 已提交
98 99 100
}

function clean_lib() {
S
slguan 已提交
101
    sudo rm -f /usr/lib/libtaos.* || :
L
lihui 已提交
102 103 104 105 106 107
    sudo rm -rf ${lib_dir} || :
}

function install_lib() {
    # Remove links
    ${csudo} rm -f ${lib_link_dir}/libtaos.*         || :
S
slguan 已提交
108 109 110
    ${csudo} rm -rf ${v15_java_app_dir}                         || :

    ${csudo} cp -rf ${script_dir}/driver/* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
L
lihui 已提交
111

S
slguan 已提交
112 113 114 115 116 117 118
    if [ "$osType" != "Darwin" ]; then
        ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
        ${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
    else
        ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
        ${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
    fi
L
lihui 已提交
119 120 121 122
}

function install_header() {
    ${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h    || :
S
slguan 已提交
123
    ${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
L
lihui 已提交
124 125 126 127 128 129
    ${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
    ${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
}

function install_config() {
    #${csudo} rm -f ${install_main_dir}/cfg/taos.cfg     || :
S
slguan 已提交
130

L
lihui 已提交
131 132 133 134
    if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
        ${csudo} mkdir -p ${cfg_install_dir}
        [ -f ${script_dir}/cfg/taos.cfg ] && ${csudo} cp ${script_dir}/cfg/taos.cfg ${cfg_install_dir}
        ${csudo} chmod 644 ${cfg_install_dir}/*
S
slguan 已提交
135 136
    fi

L
lihui 已提交
137 138 139 140 141 142 143
    ${csudo} cp -f ${script_dir}/cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
    ${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
}


function install_log() {
    ${csudo} rm -rf ${log_dir}  || :
S
slguan 已提交
144 145 146 147 148 149

    if [ "$osType" != "Darwin" ]; then
        ${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
    else
        mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
    fi
L
lihui 已提交
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
    ${csudo} ln -s ${log_dir} ${install_main_dir}/log
}

function install_connector() {
    ${csudo} cp -rf ${script_dir}/connector/* ${install_main_dir}/connector
}

function install_examples() {
    if [ -d ${script_dir}/examples ]; then
        ${csudo} cp -rf ${script_dir}/examples/* ${install_main_dir}/examples
    fi
}

function update_TDengine() {
    # Start to update
    if [ ! -e taos.tar.gz ]; then
        echo "File taos.tar.gz does not exist"
        exit 1
    fi
    tar -zxf taos.tar.gz

    echo -e "${GREEN}Start to update TDengine client...${NC}"
    # Stop the client shell if running
    if pidof taos &> /dev/null; then
        kill_client
        sleep 1
    fi
S
slguan 已提交
177

L
lihui 已提交
178 179 180 181 182 183 184 185 186
    install_main_path

    install_log
    install_header
    install_lib
    install_connector
    install_examples
    install_bin
    install_config
S
slguan 已提交
187

L
lihui 已提交
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
    echo
    echo -e "\033[44;32;1mTDengine client is updated successfully!${NC}"

    rm -rf $(tar -tf taos.tar.gz)
}

function install_TDengine() {
    # Start to install
    if [ ! -e taos.tar.gz ]; then
        echo "File taos.tar.gz does not exist"
        exit 1
    fi
    tar -zxf taos.tar.gz

    echo -e "${GREEN}Start to install TDengine client...${NC}"
S
slguan 已提交
203 204 205

	install_main_path
    install_log
L
lihui 已提交
206 207 208 209 210 211
    install_header
    install_lib
    install_connector
    install_examples
    install_bin
    install_config
S
slguan 已提交
212

L
lihui 已提交
213 214 215 216 217 218 219 220 221 222 223 224 225
    echo
    echo -e "\033[44;32;1mTDengine client is installed successfully!${NC}"

    rm -rf $(tar -tf taos.tar.gz)
}


## ==============================Main program starts from here============================
# Install or updata client and client
# if server is already install, don't install client
  if [ -e ${bin_dir}/taosd ]; then
      echo -e "\033[44;32;1mThere are already installed TDengine server, so don't need install client!${NC}"
      exit 0
S
slguan 已提交
226 227
  fi

L
lihui 已提交
228 229 230 231 232 233
  if [ -x ${bin_dir}/taos ]; then
      update_flag=1
      update_TDengine
  else
      install_TDengine
  fi