[package]
This commit is contained in:
parent
9ef7db3964
commit
9b0b41f6bf
|
@ -0,0 +1,536 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file is used to install database on linux systems. The operating system
|
||||||
|
# is required to use systemd to manage services at boot
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
# -----------------------Variables definition---------------------
|
||||||
|
script_dir=$(dirname $(readlink -f "$0"))
|
||||||
|
# Dynamic directory
|
||||||
|
data_dir="/var/lib/taos"
|
||||||
|
log_dir="/var/log/taos"
|
||||||
|
|
||||||
|
data_link_dir="/usr/local/taos/data"
|
||||||
|
log_link_dir="/usr/local/taos/log"
|
||||||
|
|
||||||
|
cfg_install_dir="/etc/taos"
|
||||||
|
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/taos"
|
||||||
|
|
||||||
|
# old bin dir
|
||||||
|
bin_dir="/usr/local/taos/bin"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
prompt_force=0
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# get the operating system type for using the corresponding init file
|
||||||
|
# ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
|
||||||
|
#osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||||
|
if [[ -e /etc/os-release ]]; then
|
||||||
|
osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2) ||:
|
||||||
|
else
|
||||||
|
osinfo=""
|
||||||
|
fi
|
||||||
|
#echo "osinfo: ${osinfo}"
|
||||||
|
os_type=0
|
||||||
|
if echo $osinfo | grep -qwi "ubuntu" ; then
|
||||||
|
# echo "This is ubuntu system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "debian" ; then
|
||||||
|
# echo "This is debian system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "Kylin" ; then
|
||||||
|
# echo "This is Kylin system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "centos" ; then
|
||||||
|
# echo "This is centos system"
|
||||||
|
os_type=2
|
||||||
|
elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
|
# echo "This is fedora system"
|
||||||
|
os_type=2
|
||||||
|
elif echo $osinfo | grep -qwi "Linx" ; then
|
||||||
|
# echo "This is Linx system"
|
||||||
|
os_type=1
|
||||||
|
service_mod=0
|
||||||
|
initd_mod=0
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
else
|
||||||
|
echo " osinfo: ${osinfo}"
|
||||||
|
echo " This is an officially unverified linux system,"
|
||||||
|
echo " if there are any problems with the installation and operation, "
|
||||||
|
echo " please feel free to contact taosdata.com for support."
|
||||||
|
os_type=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ============================= get input parameters =================================================
|
||||||
|
|
||||||
|
# install.sh -v [server | client] -e [yes | no] -i [systemd | service | ...]
|
||||||
|
|
||||||
|
# set parameters by default value
|
||||||
|
interactiveFqdn=yes # [yes | no]
|
||||||
|
verType=server # [server | client]
|
||||||
|
initType=systemd # [systemd | service | ...]
|
||||||
|
|
||||||
|
while getopts "hv:e:i:" arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
e)
|
||||||
|
#echo "interactiveFqdn=$OPTARG"
|
||||||
|
interactiveFqdn=$( echo $OPTARG )
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
#echo "verType=$OPTARG"
|
||||||
|
verType=$(echo $OPTARG)
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
#echo "initType=$OPTARG"
|
||||||
|
initType=$(echo $OPTARG)
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
echo "Usage: `basename $0` -v [server | client] -e [yes | no]"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
?) #unknow option
|
||||||
|
echo "unkonw argument"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#echo "verType=${verType} interactiveFqdn=${interactiveFqdn}"
|
||||||
|
|
||||||
|
function kill_process() {
|
||||||
|
pid=$(ps -ef | grep "$1" | 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} || :
|
||||||
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/cfg
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
|
${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
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/init.d
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
${csudo} mkdir -p ${nginx_dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e ${script_dir}/email ]]; then
|
||||||
|
${csudo} cp ${script_dir}/email ${install_main_dir}/ ||:
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_bin() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taos || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosd || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosadapter || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/create_table || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tmq_sim || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosdump || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtaos || :
|
||||||
|
#${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
|
||||||
|
${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/*
|
||||||
|
|
||||||
|
#Make link
|
||||||
|
[ -x ${install_main_dir}/bin/taos ] && ${csudo} ln -s ${install_main_dir}/bin/taos ${bin_link_dir}/taos || :
|
||||||
|
[ -x ${install_main_dir}/bin/taosd ] && ${csudo} ln -s ${install_main_dir}/bin/taosd ${bin_link_dir}/taosd || :
|
||||||
|
[ -x ${install_main_dir}/bin/create_table ] && ${csudo} ln -s ${install_main_dir}/bin/create_table ${bin_link_dir}/create_table || :
|
||||||
|
[ -x ${install_main_dir}/bin/tmq_sim ] && ${csudo} ln -s ${install_main_dir}/bin/tmq_sim ${bin_link_dir}/tmq_sim || :
|
||||||
|
# [ -x ${install_main_dir}/bin/taosdemo ] && ${csudo} ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || :
|
||||||
|
# [ -x ${install_main_dir}/bin/taosdump ] && ${csudo} ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || :
|
||||||
|
[ -x ${install_main_dir}/bin/remove.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/rmtaos || :
|
||||||
|
# [ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_lib() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
|
||||||
|
${csudo} ln -s ${install_main_dir}/lib/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
|
${csudo} ln -s ${install_main_dir}/lib/libtdb.* ${lib_link_dir}/libtdb.so.1
|
||||||
|
${csudo} ln -s ${lib_link_dir}/libtdb.so.1 ${lib_link_dir}/libtdb.so
|
||||||
|
|
||||||
|
if [[ -d ${lib64_link_dir} && ! -e ${lib64_link_dir}/libtaos.so ]]; then
|
||||||
|
${csudo} ln -s ${install_main_dir}/lib/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
|
|
||||||
|
${csudo} ln -s ${install_main_dir}/lib/libtdb.* ${lib64_link_dir}/libtdb.so.1 || :
|
||||||
|
${csudo} ln -s ${lib64_link_dir}/libtdb.so.1 ${lib64_link_dir}/libtdb.so || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} ldconfig
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_header() {
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taosdef.h ${inc_link_dir}/taoserror.h || :
|
||||||
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
|
# ${csudo} ln -s ${install_main_dir}/include/taosdef.h ${inc_link_dir}/taosdef.h
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_newHostname_to_hosts() {
|
||||||
|
localIp="127.0.0.1"
|
||||||
|
OLD_IFS="$IFS"
|
||||||
|
IFS=" "
|
||||||
|
iphost=$(cat /etc/hosts | grep $1 | awk '{print $1}')
|
||||||
|
arr=($iphost)
|
||||||
|
IFS="$OLD_IFS"
|
||||||
|
for s in "${arr[@]}"
|
||||||
|
do
|
||||||
|
if [[ "$s" == "$localIp" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
${csudo} echo "127.0.0.1 $1" >> /etc/hosts ||:
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_hostname() {
|
||||||
|
echo -e -n "${GREEN}Please enter one hostname(must not be 'localhost')${NC}:"
|
||||||
|
read newHostname
|
||||||
|
while true; do
|
||||||
|
if [[ ! -z "$newHostname" && "$newHostname" != "localhost" ]]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
read -p "Please enter one hostname(must not be 'localhost'):" newHostname
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
${csudo} hostname $newHostname ||:
|
||||||
|
retval=`echo $?`
|
||||||
|
if [[ $retval != 0 ]]; then
|
||||||
|
echo
|
||||||
|
echo "set hostname fail!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
#echo -e -n "$(hostnamectl status --static)"
|
||||||
|
#echo -e -n "$(hostnamectl status --transient)"
|
||||||
|
#echo -e -n "$(hostnamectl status --pretty)"
|
||||||
|
|
||||||
|
#ubuntu/centos /etc/hostname
|
||||||
|
if [[ -e /etc/hostname ]]; then
|
||||||
|
${csudo} echo $newHostname > /etc/hostname ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
#debian: #HOSTNAME=yourname
|
||||||
|
if [[ -e /etc/sysconfig/network ]]; then
|
||||||
|
${csudo} sed -i -r "s/#*\s*(HOSTNAME=\s*).*/\1$newHostname/" /etc/sysconfig/network ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$newHostname/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$newHostname
|
||||||
|
|
||||||
|
if [[ -e /etc/hosts ]]; then
|
||||||
|
add_newHostname_to_hosts $newHostname
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_correct_ipaddr() {
|
||||||
|
newIp=$1
|
||||||
|
OLD_IFS="$IFS"
|
||||||
|
IFS=" "
|
||||||
|
arr=($iplist)
|
||||||
|
IFS="$OLD_IFS"
|
||||||
|
for s in "${arr[@]}"
|
||||||
|
do
|
||||||
|
if [[ "$s" == "$newIp" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_ipAsFqdn() {
|
||||||
|
iplist=$(ip address |grep inet |grep -v inet6 |grep -v 127.0.0.1 |awk '{print $2}' |awk -F "/" '{print $1}') ||:
|
||||||
|
if [ -z "$iplist" ]; then
|
||||||
|
iplist=$(ifconfig |grep inet |grep -v inet6 |grep -v 127.0.0.1 |awk '{print $2}' |awk -F ":" '{print $2}') ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$iplist" ]; then
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}Unable to get local ip, use 127.0.0.1${NC}"
|
||||||
|
localFqdn="127.0.0.1"
|
||||||
|
# Write the local FQDN to configuration file
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$localFqdn
|
||||||
|
echo
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e -n "${GREEN}Please choose an IP from local IP list${NC}:"
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}$iplist${NC}"
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}Notes: if IP is used as the node name, data can NOT be migrated to other machine directly${NC}:"
|
||||||
|
read localFqdn
|
||||||
|
while true; do
|
||||||
|
if [ ! -z "$localFqdn" ]; then
|
||||||
|
# Check if correct ip address
|
||||||
|
is_correct_ipaddr $localFqdn
|
||||||
|
retval=`echo $?`
|
||||||
|
if [[ $retval != 0 ]]; then
|
||||||
|
read -p "Please choose an IP from local IP list:" localFqdn
|
||||||
|
else
|
||||||
|
# Write the local FQDN to configuration file
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$localFqdn
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
read -p "Please choose an IP from local IP list:" localFqdn
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function local_fqdn_check() {
|
||||||
|
#serverFqdn=$(hostname)
|
||||||
|
echo
|
||||||
|
echo -e -n "System hostname is: ${GREEN}$serverFqdn${NC}"
|
||||||
|
echo
|
||||||
|
if [[ "$serverFqdn" == "" ]] || [[ "$serverFqdn" == "localhost" ]]; then
|
||||||
|
echo -e -n "${GREEN}It is strongly recommended to configure a hostname for this machine ${NC}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
read -r -p "Set hostname now? [Y/n] " input
|
||||||
|
if [ ! -n "$input" ]; then
|
||||||
|
set_hostname
|
||||||
|
break
|
||||||
|
else
|
||||||
|
case $input in
|
||||||
|
[yY][eE][sS]|[yY])
|
||||||
|
set_hostname
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
[nN][oO]|[nN])
|
||||||
|
set_ipAsFqdn
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Invalid input..."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_log() {
|
||||||
|
${csudo} rm -rf ${log_dir} || :
|
||||||
|
${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
||||||
|
|
||||||
|
${csudo} ln -s ${log_dir} ${install_main_dir}/log
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_data() {
|
||||||
|
${csudo} mkdir -p ${data_dir}
|
||||||
|
|
||||||
|
${csudo} ln -s ${data_dir} ${install_main_dir}/data
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
taosd_service_config="${service_config_dir}/taosd.service"
|
||||||
|
if systemctl is-active --quiet taosd; then
|
||||||
|
echo "TDengine is running, stopping it..."
|
||||||
|
${csudo} systemctl stop taosd &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable taosd &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${taosd_service_config}
|
||||||
|
|
||||||
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
|
if systemctl is-active --quiet tarbitratord; then
|
||||||
|
echo "tarbitrator is running, stopping it..."
|
||||||
|
${csudo} systemctl stop tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
nginx_service_config="${service_config_dir}/nginxd.service"
|
||||||
|
if systemctl is-active --quiet nginxd; then
|
||||||
|
echo "Nginx for TDengine is running, stopping it..."
|
||||||
|
${csudo} systemctl stop nginxd &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable nginxd &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${nginx_service_config}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# taos:2345:respawn:/etc/init.d/taosd start
|
||||||
|
|
||||||
|
function install_service_on_systemd() {
|
||||||
|
clean_service_on_systemd
|
||||||
|
|
||||||
|
taosd_service_config="${service_config_dir}/taosd.service"
|
||||||
|
${csudo} bash -c "echo '[Unit]' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Description=TDengine server service' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'After=network-online.target taosadapter.service' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Wants=network-online.target taosadapter.service' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Service]' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Type=simple' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStart=/usr/bin/taosd' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStartPre=/usr/local/taos/bin/startPre.sh' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStopSec=1000000s' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNOFILE=infinity' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNPROC=infinity' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitCORE=infinity' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStartSec=0' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StandardOutput=null' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Restart=always' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitBurst=3' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitInterval=60s' >> ${taosd_service_config}"
|
||||||
|
#${csudo} bash -c "echo 'StartLimitIntervalSec=60s' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Install]' >> ${taosd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${taosd_service_config}"
|
||||||
|
${csudo} systemctl enable taosd
|
||||||
|
|
||||||
|
${csudo} systemctl daemon-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
install_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
install_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop taosd
|
||||||
|
kill_process taosd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_TDengine() {
|
||||||
|
# Start to install
|
||||||
|
echo -e "${GREEN}Start to install TDengine...${NC}"
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
install_data
|
||||||
|
install_log
|
||||||
|
install_header
|
||||||
|
install_lib
|
||||||
|
|
||||||
|
if [ -z $1 ]; then # install service and client
|
||||||
|
# For installing new
|
||||||
|
install_bin
|
||||||
|
install_service
|
||||||
|
#install_config
|
||||||
|
|
||||||
|
# Ask if to start the service
|
||||||
|
#echo
|
||||||
|
#echo -e "\033[44;32;1mTDengine is installed successfully!${NC}"
|
||||||
|
echo
|
||||||
|
echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TDengine ${NC}: ${csudo} systemctl start taosd${NC}"
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TDengine ${NC}: ${csudo} service taosd start${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To start TDengine ${NC}: taosd${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$firstEp" ]; then
|
||||||
|
tmpFqdn=${firstEp%%:*}
|
||||||
|
substr=":"
|
||||||
|
if [[ $firstEp =~ $substr ]];then
|
||||||
|
tmpPort=${firstEp#*:}
|
||||||
|
else
|
||||||
|
tmpPort=""
|
||||||
|
fi
|
||||||
|
if [[ "$tmpPort" != "" ]];then
|
||||||
|
echo -e "${GREEN_DARK}To access TDengine ${NC}: taos -h $tmpFqdn -P $tmpPort${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To access TDengine ${NC}: taos -h $tmpFqdn${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
|
fi
|
||||||
|
echo -e "${GREEN_DARK}execute ${NC}: create dnode 'newDnodeFQDN:port'; ${GREEN_DARK}to add this new node${NC}"
|
||||||
|
echo
|
||||||
|
elif [ ! -z "$serverFqdn" ]; then
|
||||||
|
echo -e "${GREEN_DARK}To access TDengine ${NC}: taos -h $serverFqdn${GREEN_DARK} to login into TDengine server${NC}"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\033[44;32;1mTDengine is installed successfully!${NC}"
|
||||||
|
echo
|
||||||
|
else # Only install client
|
||||||
|
install_bin
|
||||||
|
#install_config
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTDengine client is installed successfully!${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch ~/.taos_history
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## ==============================Main program starts from here============================
|
||||||
|
serverFqdn=$(hostname)
|
||||||
|
if [ "$verType" == "server" ]; then
|
||||||
|
# Install server and client
|
||||||
|
install_TDengine
|
||||||
|
elif [ "$verType" == "client" ]; then
|
||||||
|
interactiveFqdn=no
|
||||||
|
# Only install client
|
||||||
|
install_TDengine client
|
||||||
|
else
|
||||||
|
echo "please input correct verType"
|
||||||
|
fi
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Generate the deb package for ubuntu, or rpm package for centos, or tar.gz package for other linux os
|
# Generate the tar.gz package for linux os
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
#set -x
|
#set -x
|
||||||
|
@ -17,9 +17,12 @@ echo "=======================new version number: ${verNumber}===================
|
||||||
|
|
||||||
build_time=$(date +"%F %R")
|
build_time=$(date +"%F %R")
|
||||||
|
|
||||||
|
echo "script_dir: ${script_dir}"
|
||||||
echo "top_dir: ${top_dir}"
|
echo "top_dir: ${top_dir}"
|
||||||
|
|
||||||
cd ${top_dir}
|
cd ${top_dir}
|
||||||
|
git checkout -- .
|
||||||
|
git checkout 3.0
|
||||||
git pull || :
|
git pull || :
|
||||||
|
|
||||||
echo "curr_dir: ${curr_dir}"
|
echo "curr_dir: ${curr_dir}"
|
||||||
|
@ -49,28 +52,38 @@ cd ${release_dir}
|
||||||
|
|
||||||
install_dir="${release_dir}/TDengine-server-${version}"
|
install_dir="${release_dir}/TDengine-server-${version}"
|
||||||
mkdir -p ${install_dir}
|
mkdir -p ${install_dir}
|
||||||
|
mkdir -p ${install_dir}/bin
|
||||||
mkdir -p ${install_dir}/lib
|
mkdir -p ${install_dir}/lib
|
||||||
|
mkdir -p ${install_dir}/inc
|
||||||
|
|
||||||
bin_files="${compile_dir}/source/dnode/mgmt/daemon/taosd ${compile_dir}/tools/shell/taos ${compile_dir}/tests/test/c/create_table"
|
install_files="${script_dir}/install.sh"
|
||||||
cp ${bin_files} ${install_dir}/ && chmod a+x ${install_dir}/* || :
|
chmod a+x ${script_dir}/install.sh || :
|
||||||
|
cp ${install_files} ${install_dir}
|
||||||
|
|
||||||
|
header_files="${top_dir}/include/client/taos.h ${top_dir}/include/util/taoserror.h"
|
||||||
|
cp ${header_files} ${install_dir}/inc
|
||||||
|
|
||||||
|
bin_files="${compile_dir}/source/dnode/mgmt/taosd ${compile_dir}/tools/shell/taos ${compile_dir}/tests/test/c/create_table ${compile_dir}/tests/test/c/tmq_sim ${script_dir}/remove.sh"
|
||||||
|
cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
|
||||||
|
|
||||||
cp ${compile_dir}/source/client/libtaos.so ${install_dir}/lib/
|
cp ${compile_dir}/source/client/libtaos.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/dnode/mnode/impl/libmnode.so ${install_dir}/lib/
|
cp ${compile_dir}/source/libs/tdb/libtdb.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/dnode/qnode/libqnode.so ${install_dir}/lib/
|
|
||||||
cp ${compile_dir}/source/dnode/snode/libsnode.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/dnode/mnode/impl/libmnode.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/dnode/bnode/libbnode.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/dnode/qnode/libqnode.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/wal/libwal.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/dnode/snode/libsnode.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/scheduler/libscheduler.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/dnode/bnode/libbnode.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/planner/libplanner.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/wal/libwal.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/parser/libparser.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/scheduler/libscheduler.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/qcom/libqcom.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/planner/libplanner.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/transport/libtransport.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/parser/libparser.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/function/libfunction.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/qcom/libqcom.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/common/libcommon.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/transport/libtransport.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/os/libos.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/libs/function/libfunction.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/dnode/mnode/sdb/libsdb.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/common/libcommon.so ${install_dir}/lib/
|
||||||
cp ${compile_dir}/source/libs/catalog/libcatalog.so ${install_dir}/lib/
|
#cp ${compile_dir}/source/os/libos.so ${install_dir}/lib/
|
||||||
|
#cp ${compile_dir}/source/dnode/mnode/sdb/libsdb.so ${install_dir}/lib/
|
||||||
|
#cp ${compile_dir}/source/libs/catalog/libcatalog.so ${install_dir}/lib/
|
||||||
|
|
||||||
pkg_name=${install_dir}-Linux-x64
|
pkg_name=${install_dir}-Linux-x64
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to stop the service and uninstall TDengine, but retain the config, data and log files.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
verMode=edge
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/taos"
|
||||||
|
data_link_dir="/usr/local/taos/data"
|
||||||
|
log_link_dir="/usr/local/taos/log"
|
||||||
|
cfg_link_dir="/usr/local/taos/cfg"
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
taos_service_name="taosd"
|
||||||
|
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
function kill_taosd() {
|
||||||
|
pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function clean_bin() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taos || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosd || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/create_table || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tmq_sim || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosdemo || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/taosdump || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtaos || :
|
||||||
|
#${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_lib() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtdb.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtdb.* || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_header() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h || :
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taosdef.h || :
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taoserror.h || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_config() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${cfg_link_dir}/* || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_log() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -rf ${log_link_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
taosd_service_config="${service_config_dir}/${taos_service_name}.service"
|
||||||
|
if systemctl is-active --quiet ${taos_service_name}; then
|
||||||
|
echo "TDengine taosd is running, stopping it..."
|
||||||
|
${csudo} systemctl stop ${taos_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable ${taos_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${taosd_service_config}
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_sysvinit() {
|
||||||
|
echo " "
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
clean_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
clean_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop taosd
|
||||||
|
kill_taosd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop service and disable booting start.
|
||||||
|
clean_service
|
||||||
|
# Remove binary file and links
|
||||||
|
clean_bin
|
||||||
|
# Remove header file.
|
||||||
|
clean_header
|
||||||
|
# Remove lib file
|
||||||
|
clean_lib
|
||||||
|
# Remove link log directory
|
||||||
|
clean_log
|
||||||
|
# Remove link configuration file
|
||||||
|
clean_config
|
||||||
|
# Remove data link directory
|
||||||
|
${csudo} rm -rf ${data_link_dir} || :
|
||||||
|
|
||||||
|
${csudo} rm -rf ${install_main_dir}
|
||||||
|
|
||||||
|
if [[ -e /etc/os-release ]]; then
|
||||||
|
osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||||
|
else
|
||||||
|
osinfo=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${GREEN}TDengine is removed successfully!${NC}"
|
||||||
|
echo
|
Loading…
Reference in New Issue