#!/bin/bash
# 2024-12

[ $(id -u) -eq 0 ] || { echo "需要用root用户操作!";exit 4;}

#获取脚本根目录，并设为只读
readonly INITDIR=$(cd $(dirname $0); dirname "$PWD")
STAMP=`date -d today +"%Y%m%d%H%M%S"`

source /etc/profile
source $INITDIR/conf/init.conf

#新建用户
cat /etc/passwd | grep "^elastic\:" || useradd -m elastic

#检测用户目录
if [ ! -d "/home/elastic/" ]; then
  mkdir -p /home/elastic/
  echo "检测无/home/elastic/目录，并已建立"
else
  if [ ! -d "/home/elastic/elasticsearch-6.2.3/" ]; then
    echo "检测无/home/elastic/elasticsearch-6.2.3/目录，跳过"
  else
    runis=$(tail -1 $INITDIR/logs/run.log)
    if [ "$runis" == "updata" ]; then
      echo "检测已存在/home/elastic/elasticsearch-6.2.3/目录，当前为升级操作，跳过"
      #开启对应守护进程
      exit 4
    else
      \rm -rf /home/elastic/elasticsearch-6.2.3/
      echo "检测已存在/home/elastic/elasticsearch-6.2.3/目录，当前为部署操作，已删除"
    fi
  fi
fi

#建立日志目录
ls /var/log/elasticsearch || mkdir -p /var/log/elasticsearch

#添加权限
chown -R elastic /var/log/elasticsearch

#修改网络参数
cat /etc/sysctl.conf | grep "^vm\.max\_map\_count\=262144" > /dev/null || echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

cat /etc/security/limits.conf | grep "^elastic soft memlock unlimited" > /dev/null || echo "elastic soft memlock unlimited" >> /etc/security/limits.conf
cat /etc/security/limits.conf | grep "^elastic hard memlock unlimited" > /dev/null || echo "elastic hard memlock unlimited" >> /etc/security/limits.conf

#解压安装包
echo "ES安装包解压中..."
tar -xzf $INITDIR/file/es/elasticsearch-6.2.3.tar.gz -C /home/elastic/
echo "ES解压完成"
\cp -rf $INITDIR/file/es/run.sh /home/elastic/

#替换、修改配置文件
\cp -rf $INITDIR/file/es/elasticsearch.yml /home/elastic/elasticsearch-6.2.3/config/
echo "替换配置文件"

#改配置
sed -i "s@ZWlbsweb@$WEB_IP@g" /home/elastic/elasticsearch-6.2.3/config/elasticsearch.yml
sed -i "s@ZWlbshost@$WEBHOST@g" /home/elastic/elasticsearch-6.2.3/config/elasticsearch.yml

echo "修改配置文件完成"

#安装elastic-sql插件
source /etc/profile
unzip -q -d /home/elastic/elasticsearch-6.2.3/plugins/ $INITDIR/file/es/elasticsearch-sql-6.2.3.0.zip
mv /home/elastic/elasticsearch-6.2.3/plugins/elasticsearch /home/elastic/elasticsearch-6.2.3/plugins/sql
echo "安装elastic-sql插件完成"

#给权限
chown -R elastic.elastic /home/elastic/

#启动
cd /home/elastic/elasticsearch-6.2.3/bin/ ; su elastic -c "./elasticsearch -d"
echo "Elasticsearch启动中..."
sleep 20
