2014-10-30 40 views
0

我是新来的Python和刚刚成功完成编写和测试脚本,将做到以下几点:我希望保存配置通过系统IP地址

  1. 远程登录到交换机上。
  2. 使用所提供的凭证进行登录。
  3. 打开一个文件,然后将命令的输出重定向到它。
  4. 一旦完成,从交换机注销。

我想什么它做的事:

我希望我的脚本来创建使用交换机的IP地址指定的目录下的文件。来自交换机的IP地址为192.168.1.30的配置应该保存为192.168.1.30.txt。

下面是我的脚本

============================的一部分

#!/usr/bin/python 

import pexpect 
import datetime 

HOST = raw_input ("Enter the IP Address Of the switch:") 
user=admin 
password=admin 

child = pexpect.spawn ('telnet', [HOST]) 
child.logfile = open("/home/tester/scripts/config.txt", "w") 

==============================

正如你可以看到,如果我运行上面的脚本,命令的输出通过脚本发送的数据将被保存到config.txt文件中。如果不同的交换机被远程登录并且新交换机的内容将被保存,内容将被删除。因此,我希望脚本使用用户输入的IP地址,然后使用IP地址作为文件名将命令的输出保存在不同的文件中,以便文件的内容不会被覆盖。

任何意见将不胜感激!

谢谢

回答

0

由于HOST是字符串"192.168.1.30",并且希望该文件被命名为"/home/tester/scripts/192.168.1.30.txt",你可以用简单的字符串拼接做到这一点:

path = "/home/tester/scripts/" + HOST + ".txt" 

...或者,更好的,有string formatting

path = "/home/tester/scripts/{}.txt".format(HOST) 

然后:

child.logfile = open(path, "w") 

(当然你也可以做串联或format就在open表达式中,如果你喜欢,但我认为这是更具可读性这种方式。)

+0

感谢好友!这工作!非常感谢。 – Rudra 2014-10-30 21:40:41