88 lines
2.6 KiB
Bash
88 lines
2.6 KiB
Bash
#!/bin/bash
|
||
LOG_FILE="/var/log/startup_script.log"
|
||
|
||
# 记录日志的函数
|
||
log() {
|
||
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1" | tee -a $LOG_FILE
|
||
}
|
||
|
||
error_log() {
|
||
echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $1" | tee -a $LOG_FILE
|
||
}
|
||
|
||
log "====== 启动初始化脚本 ======"
|
||
|
||
### 🔹 **防火墙检查**
|
||
log "检查防火墙状态..."
|
||
if systemctl is-active --quiet firewalld; then
|
||
log "firewalld 已启用,正在关闭..."
|
||
if systemctl stop firewalld && systemctl disable firewalld; then
|
||
log "firewalld 关闭成功"
|
||
else
|
||
error_log "firewalld 关闭失败,请手动检查!"
|
||
fi
|
||
else
|
||
log "firewalld 已经是关闭状态"
|
||
fi
|
||
log "✅ 防火墙任务完成"
|
||
|
||
### 🔹 **OpenVPN 连接检查**
|
||
VPN_INTERFACE="tun0"
|
||
TARGET_IP="192.168.60.21"
|
||
VPN_SERVICE="openvpn-client@elk.service"
|
||
|
||
log "检查 OpenVPN 连接状态..."
|
||
if systemctl is-active --quiet $VPN_SERVICE; then
|
||
log "OpenVPN ($VPN_SERVICE) 运行中"
|
||
else
|
||
log "OpenVPN ($VPN_SERVICE) 未运行,尝试启动..."
|
||
systemctl start $VPN_SERVICE
|
||
sleep 5
|
||
fi
|
||
|
||
VPN_IP=$(ip -4 addr show $VPN_INTERFACE | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo "NONE")
|
||
if [[ "$VPN_IP" == "$TARGET_IP" ]]; then
|
||
log "VPN 连接正常,IP: $VPN_IP"
|
||
else
|
||
error_log "未获取到目标 IP ($TARGET_IP),尝试重启 VPN..."
|
||
systemctl restart $VPN_SERVICE
|
||
sleep 5
|
||
VPN_IP=$(ip -4 addr show $VPN_INTERFACE | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo "NONE")
|
||
if [[ "$VPN_IP" == "$TARGET_IP" ]]; then
|
||
log "VPN 重启成功,IP: $VPN_IP"
|
||
else
|
||
error_log "VPN 重启后仍未获取目标 IP,请检查 VPN 配置!"
|
||
fi
|
||
fi
|
||
log "✅ OpenVPN 连接检查完成"
|
||
|
||
### 🔹 **Elasticsearch 进程检查**
|
||
ES_USER="user"
|
||
ES_HOME="/data/elasticsearch-8.17.0/bin"
|
||
|
||
log "检查 Elasticsearch 进程..."
|
||
if pgrep -f "org.elasticsearch.bootstrap.Elasticsearch"; then
|
||
log "Elasticsearch 运行正常"
|
||
else
|
||
error_log "Elasticsearch 未运行,尝试以 $ES_USER 用户启动..."
|
||
sudo -u $ES_USER nohup $ES_HOME/elasticsearch > /var/log/elasticsearch.log 2>&1 &
|
||
log "Elasticsearch 启动命令已执行"
|
||
fi
|
||
log "✅ Elasticsearch 进程检查完成"
|
||
|
||
### 🔹 **Kibana 进程检查**
|
||
KIBANA_USER="user"
|
||
KIBANA_HOME="/data/kibana-8.17.0/bin"
|
||
|
||
log "检查 Kibana 进程..."
|
||
if pgrep -x "node" -a | grep -q "kibana"; then
|
||
log "Kibana 运行正常"
|
||
else
|
||
error_log "Kibana 未运行,尝试以 $KIBANA_USER 用户启动..."
|
||
sudo -u $KIBANA_USER nohup $KIBANA_HOME/kibana > /var/log/kibana.log 2>&1 &
|
||
log "Kibana 启动命令已执行"
|
||
fi
|
||
log "✅ Kibana 进程检查完成"
|
||
|
||
log "====== 启动初始化脚本完成 ======"
|