我一直试图写一个脚本来简化我的一系列工作。我用shell命令尝试过,但是代码看起来太直截了当了,说实话太业余了。我正在尝试学习python编写脚本,在您的帮助下,我希望我的这个问题可以变成一个解释性的实践。在
以下是我编写的shell代码:
#!/usr/bin/expect
spawn telnet IPaddress
sleep 0.1
expect "Enter username and password"
send "username password \n"
sleep 0.1
send "debug; \n"
sleep 0.1
send "def t1 suspend_loader \n"
expect "enter subcommands"send "traceback \n \n;"
sleep 1
send "act t1 \n"
sleep 0.1
send "quit \n"
sleep 0.1
send "stor2tst;audit_modules \n"
expect "PS Checksum audit completed"send "quit \n"
sleep 0.1
send "debug"
sleep 0.1
send "print t1 \n"
sleep 0.5
send "quit \n"
sleep 0.1
send "logutil;open MOD;back all;quit \n"
sleep 0.1
send "debug \n"
sleep 0.1
send "di modules:pr.514 d 1 (&0) char n=68 \n"
send "quit \n"
sleep 1
send "quit \n"
send "logout \n"
interact
正如您可能已经猜到的,这段代码是为特定的交换机接口而设计的。用户名和密码提示在一行中。为了执行多个命令,我需要特定的shell级别(例如调试级别)。我在这里也使用了expect模块,但我认为它只是传递而没有检查expect部分的字符串。。在
我想做什么?
我需要远程登录已知IP地址列表(20台服务器)。
所有服务器的用户名和密码都相同。
我需要在每台服务器上执行这些命令集,并将所有输出返回到指定目录下的单独日志文件(例如/tmp/dir)。
另外,几个命令需要“双回车”才能执行!这就是为什么我使用\n \n after traceback命令。在
感谢任何帮助。
提前谢谢你