文章目录
- 一 执行脚本获取数据
- 二 登陆巡检环境
- 2.1 将数据放在特定目录下
- 2.2 在网页浏览器输入 ip:端口号/linux
- 三 生成报告
- 3.1 点击执行按钮,等待报告
- 3.2 点击生成html文档,等待
- 四 编写巡检文档
- 4.1 提取所有检查的服务器IP、主机名、操作系统
- 4.2 提取某些特定问题下出现问题的IP
- 4.3 向excel中批量插入IP数据
- 4.4 将excel的IP以M行N列的形式放到word中
- 4.5 其他问题
一 执行脚本获取数据
在客户服务器执行已编写好的shell脚本即可
二 登陆巡检环境
2.1 将数据放在特定目录下
比如/tmp
目录下方。
2.2 在网页浏览器输入 ip:端口号/linux
首先要进入安装巡检环境目录下
cd /server/tools/linux_check_program/
然后运行python程序,运行巡检功能
python3 manage.py runserver 本主机IP:端口号
三 生成报告
3.1 点击执行按钮,等待报告
巡检程序启动后,在页面输入相关的信息,开始执行
。
稍作等待,观察宿主机提示信息,在执行结束后,先查看历史报告。
3.2 点击生成html文档,等待
确认无误后,再生成html文档,观察宿主机提示信息,在相应目录下获取report
。
四 编写巡检文档
4.1 提取所有检查的服务器IP、主机名、操作系统
执行下列脚本
[root@master scripts]# cat get_ip_name_os.sh
#!/bin/bash
# 定义目录和文件
dir='/tmp/所有主机IP的html文件存放目录'
ip_file="/tmp/all_ip.txt"
name_file="/tmp/all_hostname.txt"
os_file="/tmp/all_os.txt"
# 这个文件作为过渡,存放所有的html文件名,比如 10.0.0.1.html 10.0.0.2.html ...
tmp_file="/tmp/tmp.txt"
check_ip=$(cat ${ip_file}|wc -l)
check_hostname=$(cat ${name_file}|wc -l)
check_os=$(cat ${os_file}|wc -l)
# 1.检查是否有相关文件,有则删除(添加而不是覆盖内容,为了防止与本次执行结果混淆)
for file in ${ip_file} ${name_file} ${os_file} ${tmp_file}
do
if [ -f ${file} ];then
rm -f ${file}
fi
done
# 2.将所有html文件名放在临时文件中
ls ${dir} > ${tmp_file}
# 3.遍历这些html文件名,过滤得到主机名和操作系统
for i in $(cat ${tmp_file})
do
# 获取”主机名称“的下一行的内容,有主机名name
name=$(grep -A 1 '主机名称' ${dir}$i|grep value|awk -F "'" '{print $2}')
echo ${name} >> ${name_file}
# 获取”操作系统版本“的下一行的内容,有操作系统全称
os=$(grep -A 1 '操作系统版本' ${dir}$i|grep value|awk -F "'" '{print $2}')
echo ${os} >> ${os_file}
done
# 4.获取IP
awk -F '.' '{print $1"."$2"."$3"."$4}' ${tmp_file}|tee > ${ip_file}
# 5.检查结果
echo "获取的ip数量:${check_ip}"
echo "获取的主机名数量:${check_hostname}"
echo "获取到操作系统数量:${check_os}"
4.2 提取某些特定问题下出现问题的IP
(关乎客户IP安全问题,此处仅作文字说明提取的思路,不再截图)
打开巡检报告的html文档,进入到浏览器开发者模式,选中并复制含有我们需要的IP的HTML代码,打开正则匹配的工具网站,通过re匹配得到最终的IP。
如果对此不太熟悉,可参考笔者其他文章对该内容的讲解。
python-(6-4-1)爬虫—利用re解析获得数据信息
python-(6-5-1)爬虫—xpath解析实战
然后用 \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
匹配出所有的IP,将匹配结果进行复制。
这段正则表达式的含义解释:\d
表示我们匹配的是数字,后面的{1,3}
表示这个数字最少出现一次,最多出现3次,代表IP中的0-255
。中间用.
隔开,最后就是我们需要的IP地址。
4.3 向excel中批量插入IP数据
在excel中随便选中某一单元格,右键一下设置单元格格式
,选择数值
,然后在这个单元格粘贴刚才匹配到的IP,从该单元格开始,向下的所有单元格便会批量插入IP数据。
4.4 将excel的IP以M行N列的形式放到word中
假设现在所有的IP放在A1
到A20
的表格中。(此处IP是随便写的,仅供说明)
现在我要以五列四行的形式放在word中。
首先,在C1
单元格中输入A1
。
其次,按住C1
单元格右下角,向右拖拽,生成A1
至A5
。
同理,在C2
位置输入A6
,继续向右拖拽。所得结果如下图
接着,选中G2
单元格的右下角,向下拖拽,得到A1
到A20
。
最后选中C1
到G4
区域的20个单元格,按住ctrl+h
,进行替换。
最后就得到了想要的表格格式。
新生成的单元格区域的数据,类似于Linux的软链接。
一旦删除了源数据(A1到A20),新的数据也会消失。
4.5 其他问题
以上内容是关于编写运维巡检文档中一些可优化或者需要注意的流程性操作,其中笔者编写的脚本是针对所在公司的特定巡检报告html文件,具有特殊性。读者们可以参考笔者的shell脚本,根据自己的工作实际情况,通过自动化批量获取数据来大大减轻工作量。