ElasticSearch操作之重置密码脚本
#!/bin/bash
es_old_password = $1
es_password = $2
es_reponse = '{"acknowledged":true}'
if pgrep -f elasticsearch > /dev/null; then echo "Elasticsearch is running, proceeding with password setup."
else echo "Elasticsearch is not running. Please start Elasticsearch and try again." exit 1
fi
response = $( curl -X DELETE -u elastic:"$es_old_password " "http://127.0.0.1:9200/.security-7" ) echo "清除原来密码"
echo "$response "
if [ "$response " != $es_reponse ] ; then echo "请求失败,终止操作" exit 0
fi
echo "请求成功,继续下一步操作"
cd /home/zfes/elasticsearch/bin || { echo "Elasticsearch bin directory not found." ; exit 1 ; }
/usr/bin/expect << EOF
# 设置永不超时
set timeout -1
# 详细内容打印
# exp_internal 1
spawn ./elasticsearch-setup-passwords interactive# 忽略不相关的输出
expect {"N\]" { send "y\r "; exp_continue }-re "elastic\]:" { send "$es_password \r " ; exp_continue }-re "elastic\]:" { send "$es_password \r "; exp_continue }-re "kibana_system\]:" { send "$es_password \r "; exp_continue }-re "kibana_system\]:" { send "$es_password \r "; exp_continue }-re "logstash_system\]:" { send "$es_password \r "; exp_continue }-re "logstash_system\]:" { send "$es_password \r "; exp_continue }-re "beats_system\]:" { send "$es_password \r "; exp_continue }-re "beats_system\]:" { send "$es_password \r "; exp_continue }-re "apm_system\]:" { send "$es_password \r "; exp_continue }-re "apm_system\]:" { send "$es_password \r "; exp_continue }-re "remote_monitoring_user\]:" { send "$es_password \r "; exp_continue }-re "remote_monitoring_user\]:" { send "$es_password \r "; exp_continue }
}expect eof
EOF echo "Password has been updated for all users."