使用expect和cvs來給華為設(shè)備做配置比較
更新時間:2007年04月10日 00:00:00 作者:
以前一只用rancid來對cisco的設(shè)備做配置比較,但顯然rancid對華為不太友好,一直就不支持華為設(shè)備(包括h3)。因此呢,由于本人還有點小聰明,知道rancid是考expect和cvs來實現(xiàn)的,于是乎自己寫了些比較笨的腳本來給華為的設(shè)備做配置比較。
1)去華為設(shè)備抓配置
#!/usr/local/bin/expect
spawn telnet x.x.x.x
expect "sername:"
send "xxxx\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "su\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "dis cu\n"
log_file /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
while (1) {
expect {
"More ----" {send " "}
"1>" {
send "quit\n"
exit
}
}
}
2)把配置中的換行符和敏感信息去掉
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
3)把配置加入rancid的cvs中
cvs add d-cp-ne20-1
cvs commit -m updates
4)把以下內(nèi)容做成一個文件加入cron就ok了
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
cvs commit -m updates > /dev/null
btw:關(guān)于cvs在web上的顯示,我使用的上viewvc,感覺比cvsweb要好哦。還有,不要說俺的腳本寫的很爛,俺是學(xué)網(wǎng)絡(luò)的,腳本這東西,現(xiàn)學(xué)現(xiàn)用,湊合了。
1)去華為設(shè)備抓配置
#!/usr/local/bin/expect
spawn telnet x.x.x.x
expect "sername:"
send "xxxx\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "su\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "dis cu\n"
log_file /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
while (1) {
expect {
"More ----" {send " "}
"1>" {
send "quit\n"
exit
}
}
}
2)把配置中的換行符和敏感信息去掉
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
3)把配置加入rancid的cvs中
cvs add d-cp-ne20-1
cvs commit -m updates
4)把以下內(nèi)容做成一個文件加入cron就ok了
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
cvs commit -m updates > /dev/null
btw:關(guān)于cvs在web上的顯示,我使用的上viewvc,感覺比cvsweb要好哦。還有,不要說俺的腳本寫的很爛,俺是學(xué)網(wǎng)絡(luò)的,腳本這東西,現(xiàn)學(xué)現(xiàn)用,湊合了。
相關(guān)文章
硬盤啟動提示verifying DMI Pool Data錯誤的解決方法
硬盤啟動提示verifying DMI Pool Data錯誤的解決方法...2007-02-02