網(wǎng)站建設(shè)接外包流程圖網(wǎng)站seo平臺(tái)
#我的師兄喜歡給我的休閑實(shí)習(xí)生活加活,說(shuō)是讓我在實(shí)習(xí)期間寫(xiě)一個(gè)自動(dòng)化腳本去進(jìn)行等保測(cè)試。呵呵噠。
怎么辦呢,師兄的指令得完成,師兄說(shuō)讓我使用Python完成任務(wù)。
設(shè)想如下:
1、將Linux指令嵌入到python腳本中
2、調(diào)試跑通
3、給指令加上節(jié)點(diǎn)做可視化頁(yè)面
我們的測(cè)試方案就按照指導(dǎo)書(shū)進(jìn)行,選用的還是常見(jiàn)服務(wù)器系統(tǒng)。
首先是身份鑒別,這部分寫(xiě)的腳本就將一些常用指令嵌入進(jìn)去到python腳本中,很簡(jiǎn)單吧。
比如說(shuō)
輸入下面的指令,查看能登錄的用戶:
? ?grep '/bin/bash' /etc/passwd
在python中的os庫(kù)中,存在這樣的一個(gè)命令:
cmd = os.popen("?grep '/bin/bash' /etc/passwd").read()
(記得先import os 動(dòng)下腦瓜子
popen就是打開(kāi)命令欄輸入括號(hào)內(nèi)的東西,.read就是直接讀取控制流輸出,最后保存到cmd中。
這里的話,可能需要輸入命令sudo下,因?yàn)榭赡茉跍y(cè)評(píng)的時(shí)候不是root用戶。我們需要在提示輸入密碼的時(shí)候程序自動(dòng)輸入密碼。
這就需要了解下管道的知識(shí)了管道參考淺談管道(pipe)-CSDN博客
我們需要用到shell中的管道符。簡(jiǎn)單來(lái)說(shuō),管道符就是將上一個(gè)命令的輸出轉(zhuǎn)換為下一個(gè)命令的輸入。
這里的命令是
cmd = os.popen(" echo password | sudo -S grep '/bin/bash' /etc/passwd").read()
使用這個(gè)命令就能夠?qū)崿F(xiàn)自動(dòng)輸入密碼啦,這里的密碼明文寫(xiě)死password,實(shí)際用你自己的密碼替換就好。
這里再拓展下,寫(xiě)成下面的形式:
os.system(
'echo %s | sudo -S %s'
?%
?(password, command))
這樣等于給這個(gè)寫(xiě)成了小接口,讓他拓展性使用強(qiáng)一點(diǎn)。
以上內(nèi)容大致將核心寫(xiě)完了,后面就可以寫(xiě)成自動(dòng)化的檢測(cè)腳本去直通了,不過(guò)腳本還是有很多局限的,像是不同的系統(tǒng),不同的環(huán)境會(huì)報(bào)出很多未知的錯(cuò)誤,實(shí)習(xí)老師也說(shuō)了沒(méi)啥用,兼容性太差,實(shí)際工作的時(shí)候還是看工作情況。需要完整腳本學(xué)習(xí)的關(guān)注私聊我。
這邊看到了博客介紹了許多自動(dòng)化腳本,學(xué)習(xí)一下:
python自動(dòng)化運(yùn)維腳本(僅供參考)_設(shè)計(jì)一個(gè)自動(dòng)化腳本,查看df -h 信息放到日志中-CSDN博客
感謝看到了網(wǎng)上的開(kāi)源腳本
主機(jī)一鍵巡檢腳本--基于python實(shí)現(xiàn)_python巡檢百臺(tái)設(shè)備完全無(wú)壓力-CSDN博客