remove.sh 4.6 KB
Newer Older
H
hzcheng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#!/bin/bash
#
# Script to stop the service and uninstall TSDB

RED='\033[0;31m'
GREEN='\033[1;32m'
NC='\033[0m'

data_dir="/var/lib/taos"
log_dir="/var/log/taos"

#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"
inc_link_dir="/usr/include"

header_dir="/usr/local/include/taos"
cfg_dir="/etc/taos"
bin_dir="/usr/local/bin/taos"
lib_dir="/usr/local/lib/taos"
link_dir="/usr/bin"
service_config_dir="/etc/systemd/system"
taos_service_name="taosd"
nginx_service_name="tdnginx"

P
plum-lihui 已提交
32 33 34 35 36
csudo=""
if command -v sudo > /dev/null; then
    csudo="sudo"
fi

H
hzcheng 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49 50
function is_using_systemd() {
    if pidof systemd &> /dev/null; then
        return 0
    else
        return 1
    fi
}

if ! is_using_systemd; then
    service_config_dir="/etc/init.d"
fi

function clean_bin() {
    # Remove link
P
plum-lihui 已提交
51 52 53 54
    ${csudo} rm -f ${bin_link_dir}/taos      || :
    ${csudo} rm -f ${bin_link_dir}/taosd     || :
    ${csudo} rm -f ${bin_link_dir}/taosdump  || :
    ${csudo} rm -f ${bin_link_dir}/rmtaos    || :
H
hzcheng 已提交
55 56

    # Remove binary files
P
plum-lihui 已提交
57
    #${csudo} rm -rf ${bin_dir}        || :
H
hzcheng 已提交
58 59 60
}
function clean_lib() {
    # Remove link
P
plum-lihui 已提交
61
    ${csudo} rm -f ${lib_link_dir}/libtaos.*      || :
H
hzcheng 已提交
62
    
P
plum-lihui 已提交
63 64
    #${csudo} rm -f /usr/lib/libtaos.so || :
    #${csudo} rm -rf ${lib_dir}         || :
H
hzcheng 已提交
65 66 67 68
}

function clean_header() {
    # Remove link
P
plum-lihui 已提交
69
    ${csudo} rm -f ${inc_link_dir}/taos.h       || :
H
hzcheng 已提交
70
    
P
plum-lihui 已提交
71
    #${csudo} rm -rf ${header_dir}
H
hzcheng 已提交
72 73 74 75
}

function clean_config() {
    # Remove link
P
plum-lihui 已提交
76 77
    ${csudo} rm -f ${cfg_link_dir}/*            || :    
    #${csudo} rm -rf ${cfg_link_dir}            || :
H
hzcheng 已提交
78 79 80 81 82 83
}

function clean_log() {
    if grep -e '^\s*logDir.*$' ${cfg_dir}/taos.cfg &> /dev/null; then
        config_log_dir=$(cut -d ' ' -f2 <<< $(grep -e '^\s*logDir.*$' ${cfg_dir}/taos.cfg))
        # echo "Removing log dir ${config_log_dir}......"
P
plum-lihui 已提交
84
        ${csudo} rm -rf ${config_log_dir}    || : 
H
hzcheng 已提交
85 86 87
    fi
    
    # Remove link
P
plum-lihui 已提交
88 89
    ${csudo} rm -rf ${log_link_dir}    || :     
    ${csudo} rm -rf ${log_dir}         || :
H
hzcheng 已提交
90 91 92 93 94 95 96
}

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..."
P
plum-lihui 已提交
97
        ${csudo} systemctl stop ${taos_service_name} &> /dev/null || echo &> /dev/null
H
hzcheng 已提交
98
    fi
P
plum-lihui 已提交
99
    ${csudo} systemctl disable ${taos_service_name} &> /dev/null || echo &> /dev/null
H
hzcheng 已提交
100

P
plum-lihui 已提交
101
    ${csudo} rm -f ${taosd_service_config}
H
hzcheng 已提交
102 103 104 105 106 107 108
}

function clean_service_on_sysvinit() {
    restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"

    if pidof taosd &> /dev/null; then
        echo "TDengine taosd is running, stopping it..."
P
plum-lihui 已提交
109
        ${csudo} service taosd stop || :
H
hzcheng 已提交
110 111
    fi

P
plum-lihui 已提交
112 113 114 115
    ${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
    ${csudo} rm -f ${service_config_dir}/taosd || :
    ${csudo} update-rc.d -f taosd remove || :
    ${csudo} init q || :
H
hzcheng 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
}

function clean_service() {
    if is_using_systemd; then
        clean_service_on_systemd
    else
        clean_service_on_sysvinit
    fi
}

isAll="true"
if ! type taosd &> /dev/null; then
    isAll="false"
fi

config_data_dir=''
if grep -e '^\s*dataDir.*$' ${cfg_dir}/taos.cfg &> /dev/null; then
    config_data_dir=$(cut -d ' ' -f2 <<< $(grep -e '^\s*dataDir.*$' ${cfg_dir}/taos.cfg))
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 log directory
clean_log
# Remove configuration file
clean_config
# Remove data directory
P
plum-lihui 已提交
149
${csudo} rm -rf ${data_link_dir}    || : 
H
hzcheng 已提交
150 151 152 153 154 155

[ "$isAll" = "false" ] && exit 0 || :
echo -e -n "${RED}Do you want to delete data stored in TDengine? [y/N]: ${NC}" 
read is_delete
while true; do
    if [ "${is_delete}" = "y" ] || [ "${is_delete}" = "Y" ]; then
P
plum-lihui 已提交
156
        ${csudo} rm -rf ${data_dir}
H
hzcheng 已提交
157
        # echo "Removing data file ${config_data_dir}..."
P
plum-lihui 已提交
158
        [ -n ${config_data_dir} ] && ${csudo} rm -rf ${config_data_dir}
H
hzcheng 已提交
159 160 161 162 163 164 165 166
        break
    elif [ "${is_delete}" = "n" ] || [ "${is_delete}" = "N" ]; then
        break
    else
        read -p "Please enter 'y' or 'n': " is_delete
    fi
done

P
plum-lihui 已提交
167
${csudo} rm -rf ${install_main_dir}
H
hzcheng 已提交
168 169 170 171

osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
if echo $osinfo | grep -qwi "ubuntu" ; then
#  echo "this is ubuntu system"
P
plum-lihui 已提交
172
   ${csudo} rm -f /var/lib/dpkg/info/tdengine* || :
H
hzcheng 已提交
173 174
elif  echo $osinfo | grep -qwi "centos" ; then
  echo "this is centos system"
P
plum-lihui 已提交
175
  ${csudo} rpm -e --noscripts tdengine || :
H
hzcheng 已提交
176 177 178
fi

echo -e "${GREEN}TDEngine is removed successfully!${NC}"