Massen Reset von Ruckus Access Point
Für ein massenhaften Reset von Ruckus AP welche über ein ZD verwaltet werden habe ich hier eine kleines Script geschrieben.
Funktion
Das Script arbeitet eine Liste mit den IP-Adressen der AP einzeln ab. Dafür Verbindet sich das Script mit dem Access Point und führt drei Befehle aus und zwar folgende:
- set factory
- reboot
- exit
Das Script ist darauf ausgelegt, dass man sich noch nie per SSH mit dem AP verbunden hat. Falls dies jedoch der Fall wäre, muss man den Betroffen Abschnitt in der Datei „~.ssh/known_hosts“ entfernt werden. Das Passwort und der Benutzername sind identisch wie die Anmeldedaten im ZD. Falls im Passwort das „$“-Zeichen beinhaltet, kann dies mit „\“ negiert werden.
Quelldaten
#!/usr/bin/env bash
##########################################################################################
#Script Name : net_scann #
#Description : Bashscript for reset ruckus access point per ssh #
#Author : Gregor Holzfeind #
#Email : gholzfeind@heiniger-ag #
#License : GNU General Public License v3.0 #
#Version : 0.1 #
##########################################################################################
##########################################################################################
# History #
# Version Datum Änderungen #
# 0.1 06.07.2020 Basis-Script #
##########################################################################################
#Variable not editabel
var_username='admin' #User
var_password='admin' #Passwort from user
#Variable editabel
var_list_ap="test.csv" #liste withe ip-address of ap's
#function
#system check
func_sys_check() {
var_check_expect=$(which expect)
var_check_spawn=$(which spawn)
check_qrencode=$(which qrencode)
if [ "$var_check_expect" == "/usr/bin/expect" ]
then
var_exp_test="1"
else
var_exp_test="0"
fi
if [ "$var_check_spawn" == "/usr/bin/spawn" ]
then
var_spawn_test="1"
else
var_spawn_test="0"
fi
if [ "$var_exp_test" == "1" ] && [ "$var_spawn_test" == "1" ]
then
echo "Prüfung erfolgreich" > l
else
if [ "$var_exp_test" == "0" ]
then
var_test_exp="- expect\n"
else
var_test_exp=""
fi
if [ "$var_spawn_test" == "0" ]
then
var_test_spawn="- spawn\n"
else
var_test_spawn=""
fi
echo -e "Es fehlen folgend(e) Programm(e):\n$var_test_exp$var_test_spawn\nBitte installieren Sie die Programme!"
fi
}
#access point reset
function func_ap_reset() {
expect <<DONE
spawn ssh $var_ipaddress ;#SSH-Login
expect "The*" ;
send "yes\r" ;#ssh-key accept
expect "Ple*"
send "$var_username\r" ;#userlogin
expect "* "
send "$var_password\r" ;#send userpassword
expect "rkscli:*"
send "set factory\r" ;#Factory Reset
expect "*"
send "reboot\r" ;#AP reboot
expect "*"
send "exit\r" ;#leave ssh connection
expect eof
DONE
}
#Programm
#func_sys_check
while read -r var_ipaddress
do
func_ap_reset
sleep 5
done < $var_list_ap