2014-10-30 37 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