Новичок в Linux, я пытаюсь запросить страницу состояния моего модема DG834G с помощью wget из моего запущенного Debian Dockstar. Не уверен, что это имеет какое-то значение, но я подключен к Dockstar через SSH из коробки Windows. Идея состоит в том, чтобы получить WAN IP (пожалуйста, не отвечайте на DynDNS) со страницы администратора модема, и я создал скрипт bash, который выглядит следующим образом:
user@debian:/tmp# vi dg834g.sh
#!/bin/sh
# Retrieve Netgear DG834G WAN IP address.
wget --http-user='<my_account>' --http-password='<my_password>' -O s_status.htm http://192.168.0.1/s_status.htm
myIP=$(sed -En '/IP Address/{n;s/<[^>]*>|[[:space:]]*//gp;q;}' < s_status.htm)
echo "=== $myIP ==="
rm s_status.htm
wget -qO /dev/null --user='<my_account>' --password='<my_password>' http://192.168.0.1/logout.htm
wget -qO /dev/null --user='<my_account>' --password='<dummy_pwd>' http://192.168.0.1/logout.htm
Если я просто запускаю скрипт bash, независимо от того, сколько раз я получаю следующее:
user@debian:/tmp# ./dg834g.sh
--2011-09-26 14:23:10-- http://192.168.0.1/s_status.htm
Connecting to 192.168.0.1:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
**Unknown authentication scheme**.
**Authorization failed**.
0
rm: cannot remove `s_status.htm': No such file or directory
Однако, если только один раз я подключаюсь к страницам администратора модема из окна Windows, полностью выхожу из страниц администратора и затем запускаю скрипт bash, я получаю:
user@debian:/tmp# ./dg834g.sh
--2011-09-26 14:28:46-- http://192.168.0.1/s_status.htm
Connecting to 192.168.0.1:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Connecting to 192.168.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/HTML]
Saving to: `s_status.htm'
[ <=> ] 5,033 --.-K/s in 0.02s
2011-09-26 15:28:47 (222 KB/s) - `s_status.htm' saved [5033]
=== 63.169.61.57 ===
user@debian:/tmp#
Я не уверен, почему я впервые получаю "401 Unauthorized" (ожидающий пользователя и pwd?) но, по крайней мере, я получаю то, что искал, хотя и не в удовлетворительной форме!
Поскольку я хочу автоматизировать получение IP-адреса WAN каждые несколько минут и передавать его по FTP на какой-либо сайт при его изменении, я не на полпути к выполнению задачи ...
Если это может помочь, Dockstar запускает веб-сервер, доступный из Интернета независимо от того, включен ли ящик Windows (нормальное поведение).
Кто-нибудь может придумать причину, по которой мне сначала нужно войти в систему и выйти из системы с помощью окна Windows, чтобы заставить bash делать то, что он должен делать, и как исправить это странное поведение?