如何写一个自动化Linux脚本去进行等保测试--引言
#我的师兄喜欢给我的休闲实习生活加活,说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。
怎么办呢,师兄的指令得完成,师兄说让我使用Python完成任务。
设想如下:
1、将Linux指令嵌入到python脚本中
2、调试跑通
3、给指令加上节点做可视化页面
我们的测试方案就按照指导书进行,选用的还是常见服务器系统。
首先是身份鉴别,这部分写的脚本就将一些常用指令嵌入进去到python脚本中,很简单吧。
比如说
输入下面的指令,查看能登录的用户:
grep '/bin/bash' /etc/passwd
在python中的os库中,存在这样的一个命令:
cmd = os.popen(" grep '/bin/bash' /etc/passwd").read()
(记得先import os 动下脑瓜子
popen就是打开命令栏输入括号内的东西,.read就是直接读取控制流输出,最后保存到cmd中。
这里的话,可能需要输入命令sudo下,因为可能在测评的时候不是root用户。我们需要在提示输入密码的时候程序自动输入密码。
这就需要了解下管道的知识了管道参考浅谈管道(pipe)-CSDN博客
我们需要用到shell中的管道符。简单来说,管道符就是将上一个命令的输出转换为下一个命令的输入。
这里的命令是
cmd = os.popen(" echo password | sudo -S grep '/bin/bash' /etc/passwd").read()
使用这个命令就能够实现自动输入密码啦,这里的密码明文写死password,实际用你自己的密码替换就好。
这里再拓展下,写成下面的形式:
os.system(
'echo %s | sudo -S %s'
%
(password, command))
这样等于给这个写成了小接口,让他拓展性使用强一点。
以上内容大致将核心写完了,后面就可以写成自动化的检测脚本去直通了,不过脚本还是有很多局限的,像是不同的系统,不同的环境会报出很多未知的错误,实习老师也说了没啥用,兼容性太差,实际工作的时候还是看工作情况。需要完整脚本学习的关注私聊我。
这边看到了博客介绍了许多自动化脚本,学习一下:
python自动化运维脚本(仅供参考)_设计一个自动化脚本,查看df -h 信息放到日志中-CSDN博客
感谢看到了网上的开源脚本
主机一键巡检脚本--基于python实现_python巡检百台设备完全无压力-CSDN博客