AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 460413
Accepted
F.I.V
F.I.V
Asked: 2012-12-24 04:16:21 +0800 CST2012-12-24 04:16:21 +0800 CST 2012-12-24 04:16:21 +0800 CST

sysRestart Billion ADSL 路由器(SNMP v2 或 HTTP)

  • 772

背景

我习惯于按计划重启我的服务器。现在我想要我的 ADSL 路由器也一样。

这是我的原因:当随机故障发生时,我习惯于在任何其他故障排除(例如:更改配置等)之前尝试重新启动服务器、接口和相关设备(如果可能)作为第一步。事实上,有时这可以解决问题(服务开始按预期工作)。这可能是因为当系统长时间运行时(有时,取决于软件和服务),它可能会变得无响应或出现故障。可能是软件未能释放一些内存,解锁一些资源等

现在对于一些在非工作时间可以接受计划停机时间的服务,我安排了自动重启。这样,此类问题出现的频率就会降低。现在,如果在工作时间出现问题,我不需要重新启动整个服务,而是像重新启动它们一样继续进行故障排除。

我们有什么

这是 Billion 5000 系列路由器,支持 TELNET、HTTP 和 SNMP 进行管理。

Telnet 方法(更新)

这可以通过 telnet 命令重新启动路由器:

C:\>telnet 192.168.1.1
    Password:********
    router>set reboot

如此接近,只需要一个自动远程登录、推送密码字符并发出“ set reboot ”命令的脚本。[ SvenW推荐的使用expect的方法]

HTTP方法

值得一提的是,我使用软件[ 1 ] 应用程序通过 HTTP 接口监控我的 ADSL 连接速度和噪声容限(软件本身,而不是浏览器应用程序,在无人值守的情况下连接、登录并从 HTTP 接口读取值并显示它们在图表中!)。

我想知道是否有可能通过类似的方法实现 SysRestart(自动登录并单击 SysRestart 按钮的脚本!)

重启页面:

  • 页面图片: 带有重启按钮的 HTML 页面
  • 页面的源 HTML:

    <html><head>
    <meta http-equiv=Content-Script-Type content=text/javascript>
    <meta http-equiv=Content-Style-Type content=text/css>
    <meta http-equiv=Content-Type content="text/html; charset=
    iso-8859-1">
    <link rel="stylesheet" href="../css/style.css" type="text/css">
    <script language="JavaScript"> 
    function doRefresh()
    {
        alert("Reboot Complete");   parent.navigation.location.href = "/navigation-status.html";
        window.location.href = "../status/status_deviceinfo.htm";
    }
    
    function doLoad()
    {
    
         }
    
    </script>
    </head><body onload="doLoad()">
    <FORM METHOD="POST" ACTION="/Forms/tools_system_1" name="System_Restore">
    <table width="760" border="0" align=center cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr>
          <td height="5" class="light-orange" colspan="5">&nbsp;</td></tr><tr>
        <td width="150" height="30" class="title-main">
        <font color="#FFFFFF">System Restart</font>    </td><td width="10" class="black">&nbsp;</td><td width="150"></td><td width="10"> </td><td width="440"></td></tr><tr>
        <td class="light-orange">&nbsp;</td><td class="light-orange"></td><td class="tabdata"><div align=right>
        <font color="#000000">System Restart with</font>    </div></td><td class="tabdata"><div align=center>:</div></td><td class="tabdata">
            <INPUT TYPE="RADIO" NAME="restoreFlag" VALUE="0" CHECKED>       <font color="#000000">Current Settings</font>       </td></tr><tr>
        <td class="light-orange">&nbsp;</td><td class="light-orange"></td><td class="tabdata">&nbsp;</td><td class="tabdata">&nbsp;</td><td class="tabdata">
            <INPUT TYPE="RADIO" NAME="restoreFlag" VALUE="1">       <font color="#000000">Factory Default Settings</font>       </td></tr><tr>
        <td class="light-orange">&nbsp;</td><td class="light-orange"></td><td width="150">&nbsp;</td><td width="10">&nbsp;</td><td width="440">&nbsp;</td></tr></table><table width="760" border="0" align=center cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr>
        <td width="160" class="black" height="42" >&nbsp;</td><td width="160" class="orange">&nbsp;</td><td width="440" class="orange">
            <INPUT TYPE="SUBMIT" NAME="Restart" VALUE="RESTART">    </td></tr></table></div></form>
    </body></html>
    

SNMP方法

该路由器还支持 SNMP v2 读写社区。我认为可以这样执行。

事实上,通过一些搜索我发现[ 2 ] 有些人使用 SNMP 来重启他们的设备(但我找不到我的路由器的 OID 来通过执行重置)

例如,那些拥有这些设备之一的人似乎可以使用这些 OID 重新启动它们:

'.1.3.6.1.4.1.207.8.4.4.3.2.0',    # Allied Telesyn restart
'.1.3.6.1.4.1.11.2.14.11.1.4.1.0', # Hewlett-Packard hpicfReset
'.1.3.6.1.4.1.9.5.1.1.9.0',        # Cisco CatOS sysReset
'.1.3.6.1.4.1.9.2.9.9.0',          # Cisco IOS tsMsgSend
'.1.3.6.1.4.1.529.9.8.0.0'         # Ascend sysReset

SNMP 步行

使用 SNMP walk 我可以获得一个包含 500 多个 OID 的列表,例如:

.1.3.6.1.4.1.16972.5.1.1.0
.1.3.6.1.4.1.16972.4.10.0
...etc (568 more)...

但我目前不知道如何从中选择一个(特别害怕在它们上测试 snmp-write!)。

更多信息

其他一些可能有帮助的(行走的)OID 和值:

.1.3.6.1.4.1.16972.1.3.0; Trendchip TC3162 T14F7_3.0
.1.3.6.1.4.1.16972.5.1.1.0; www.huawei.com
.1.3.6.1.4.1.16972.1.6.0; Ras Ver:2.10.4.0(UE0.C2C)3.6.0.0   DMT Ver:3.6.0.0

你能提供什么帮助?

  • 建议一种通过 SNMP 编写重启脚本的方法(需要先找到 OID!?)
  • 建议一种通过 HTTP 编写重启脚本的方法
  • 建议一种通过 telnet 编写重启脚本的方法
  • 建议一种编写重启脚本的方法(任何其他方法!)

脚注:

  • [ 1 ] http://vwlowen.co.uk/internet/files.htm
  • [ 2 ] http://www.skendric.com/nmgmt/device/Generic/reset-device
snmp
  • 1 1 个回答
  • 1126 Views

1 个回答

  • Voted
  1. Best Answer
    Sven
    2012-12-24T04:47:23+08:002012-12-24T04:47:23+08:00

    如果没有用于 SNMP 的正确 MIB 文件,您最好的选择是找到一些执行重新启动的 telnet 命令,并可能在expect工具的帮助下使用它,或者使用类似curl使用 Web 界面的东西。

    使用 curl 可能需要多次调用它以首先登录并保存会话 cookie,然后进行实际的重启。

    不过我确实想知道 - 您尝试通过定期重启来修复的设备是否存在实际问题?如果没有,我看不出这样做的原因。

    编辑:

    期望脚本的基本示例。scriptname hostname password使用或更改变量分配来调用它以包含实际的主机名和密码:

    #!/usr/bin/expect 
    
    set timeout 15
    set hostname [lindex $argv 0] 
    set password [lindex $argv 1] 
    
    spawn telnet $hostname 
    
    expect "Password:" 
    send "$password " 
    expect "router>" 
    send "set reboot "
    
    • 0

相关问题

  • VMWare 服务器 VM 网络利用率

  • show ip route 的 SNMP 等效项?

  • 通过 SNMP 导出性能计数器

  • 用于网络监控的路由/代理 SNMP 陷阱(或 Netflow、通用 UDP 等)的解决方案?

  • SNMP HOSTMIB.MIB 未加载?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve