Unifi AP reboot automático

Temos uns Acess Points da Unifi mas de vez em quando tínhamos que fazer restart pois os equipamentos wireless deixavam de funcionar.

Isto não era constantemente estou a falar de um a dois reboots por semana e em alguns pontos de acesso não em todos….

Assim para não ter problemas resolvi fazer um script em linux para fazer reboot aos Access Points diariamente ao principio do dia antes que o pessoal chegue para trabalhar.


Os únicos requisitos são:

  • Ter pontos de acesso da Unifi
  • Este script foi feito para a versão 3.2.10 dos Unifi AP
  • Acesso remoto à consola dos AP
  • Uma máquina em linux

O script é o seguinte (rebootAP.sh):

#!/usr/bin/expect
spawn ssh admin@[lindex $argv 0]
expect {
-re ".*Are.*.*yes.*no.*" {
send "yes\n"
exp_continue
}}
expect "admin@[lindex $argv 0]'s password:"
send "[lindex $argv 1]\n"
expect "BZ.v3.2.10# "
send "reboot\n"
#interact
expect eof
exit

Depois temos que passar o script para executável, para isso corremos o comando

chmod +x rebootAP.sh

Agora que o script já é executável, podemos executar o rebootAP.sh com os parâmetros necessários, IP do Acess Point e password.

rebootAP.sh [IP] [PASSWORD do AP]

como exemplo:

rebootAP.sh 10.0.0.112 appass123

Agora para que este script corra automaticamente todas as manhãs usei a crontab do linux. Para isso necessito da localização completa do script pois na crontab por questões de segurança só são executados os comandos que tenham o caminho completo não podemos adicionar só o nome do script. No meu caso só tenho 3 Pontos de Acesso por isso vou ter que adicionar 3 linhas na crontab, uma para cada Ponto de Acesso.

00 08 * * *  /root/itscripts/rebootAP.sh 10.0.0.111 appass123
05 08 * * *  /root/itscripts/rebootAP.sh 10.0.0.112 appass123
10 08 * * *  /root/itscripts/rebootAP.sh 10.0.0.113 appass123

Nesta caso fazemos reboot aos 3 pontos de acesso com um intervalo de 5 minutos entre cada reboot, assim mesmo que alguém esteja ligado passa para o próximo Ponto de Acesso e continua a trabalhar, o que não aconteceria caso fizesse reboot aos 3 equipamentos simultaneamente.

Assim ficamos com os pontos de acesso limpos para o inicio de um dia de trabalho.

Espero ter ajudado.