如何Telnet自动登录路由器执行命令?

Bash

1 前言

一个问题,一篇文章,一出故事。
最近在笔者需要一个脚本自动从路由读取一些信息,因此整理本章节。

2 最佳实践

2.1 创建脚本

vim ~/scripts/autocmd.sh

创建如下脚本,

#!/bin/bash

hostName="192.168.77.1"
userName="admin"
passWord="adminpwd"
execCmmand="$1"

if [ -z "$execCmmand" ]; then
    echo "Usage: $0 "
    exit 1
fi

expect <<-EOF
spawn telnet "${hostName}"
expect "login:"
send "${userName}\r"
expect "Password:"
send "${passWord}\r"
send "$execCmmand\r"
send "exit\r"
expect eof
EOF

另外,你可能还需要安装如下软件包,

apt install -y expect

2.2 部署脚本

cp ~/scripts/autocmd.sh /bin/autocmd
chmod +x /bin/autocmd

2.3 测试脚本

autocmd

可见如下输出,

Usage: /usr/bin/autocmd 

根据提示,我们需要向脚本传递执行的命令,

autocmd arp
没有评论

发表回复

网络
如何将H3C审计日志保存到日志服务器?

1 前言 一个问题,一篇文章,一出故事。 最近想记录3C审计日志,于是整理此文。 2 最佳实践 2. …

网络
如何将H3C系统日志保存到日志服务器?

1 前言 一个问题,一篇文章,一出故事。 最近想记录H3C系统日志,于是整理此文。 2 最佳实践 2 …

Bash
如何防止Base Shell脚本重复执行?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现脚本因为重复执行而损耗服务器性能,因此解决此问 …