На днях (после отключения электричества и полного разряда аккумулятора ИБП)
появилась необходимость помимо автоматического выключения роутера при низком
заряде UPS'а, ещё и выключение сабжевого хранилища.
Решено это было делать в момент отключения самого роутера
путём добавления необходимого набора команд в rc.shutdown.
После ковыряния cgi-скриптов была получена заветная команда:
При этом если пройти авторизацию:
то получим такие параметры:
Самое удивительное в этом то, что powerHandler даже не пытается
стянуть данные с кукисов при выключении/перезагрузке NAS хранилища,
несмотря на наличие того же LoginUser.
Всё описанное выше характерно для прошивки 2.6.3-20080530.
И напоследок то, что добавлено в /etc/rc.shutdown:
появилась необходимость помимо автоматического выключения роутера при низком
заряде UPS'а, ещё и выключение сабжевого хранилища.
Решено это было делать в момент отключения самого роутера
путём добавления необходимого набора команд в rc.shutdown.
После ковыряния cgi-скриптов была получена заветная команда:
curl -d "powerAction=2" <storage_ip>:80/cgi/power/powerHandler.cgi
При этом если пройти авторизацию:
curl -d "username=admin&password=_passwd_here_" <storage_ip>:80/loginHandler.cgi
,то получим такие параметры:
<input type="hidden" name="username" value="admin"> <input type="hidden" name="sessionId" value="q1pOmWykGFZUnSAjWG9189d1jnZGXBQcr5QDPcLmHB4Uhu21YZTUZWK68zCTYgV">
Самое удивительное в этом то, что powerHandler даже не пытается
стянуть данные с кукисов при выключении/перезагрузке NAS хранилища,
несмотря на наличие того же LoginUser.
Всё описанное выше характерно для прошивки 2.6.3-20080530.
И напоследок то, что добавлено в /etc/rc.shutdown:
if [ `ping -qc 3 <storage_ip> | awk '/packets/ { if ( $4 > 0 ) { print 1; } else { print 0; } }'` -eq 1 ]; then
echo "Send shutdown signal to storage"
curl -d "powerAction=2" <storage_ip>:80/cgi/power/powerHandler.cgi >/dev/null 2>&1
fi