代码改变世界

如何修改OSW图表中显示的主机名称

2020-06-07 00:36  AlfredZhao  阅读(102)  评论(0编辑  收藏

本次测试的OSW版本:831
有人可能会说这种需求是吃饱了撑的吗,谁没事儿改这个名称干嘛啊?
其实并不是,因为有些生产案例非常典型,分享讲解时也需要配合OSW的趋势图来展示,但是出于保护客户隐私(哪怕仅仅是个主机名)的角度,防止“有心”人根据主机名称乱猜测甚至对号入座,又不想直接对主机名进行打码影响到整体美观,修改这个名称就会是个不错的选择。
那么如何修改呢?考虑到osw的数据源都是文本,这个名称一定是在文本中记录的。
首先看osw的数据:

jingyudeMacBook-Pro:oswiostat jingyuzhao$ pwd
/Users/jingyuzhao/Documents/oswbb/archive/oswiostat
jingyudeMacBook-Pro:oswiostat jingyuzhao$ ls -lrth
total 6752
-rw-r--r--@ 1 jingyuzhao  staff   335K Jun  2 11:00 xxdb_iostat_20.06.02.1000.dat
-rw-r--r--@ 1 jingyuzhao  staff   596K Jun  2 11:59 xxdb_iostat_20.06.02.1100.dat
-rw-r--r--@ 1 jingyuzhao  staff   596K Jun  2 12:59 xxdb_iostat_20.06.02.1200.dat
-rw-r--r--@ 1 jingyuzhao  staff   571K Jun  2 13:59 xxdb_iostat_20.06.02.1300.dat
-rw-r--r--@ 1 jingyuzhao  staff   596K Jun  2 14:59 xxdb_iostat_20.06.02.1400.dat
-rw-r--r--@ 1 jingyuzhao  staff   526K Jun  2 15:59 xxdb_iostat_20.06.02.1500.dat
-rw-r--r--@ 1 jingyuzhao  staff   150K Jun  2 16:14 xxdb_iostat_20.06.02.1600.dat

第一反应就是根据文件名?随便写个重命名所有文件名的脚本:

# Please run it in archive directory!!
for x in osw*
do
cd $x
for i in *.dat;
do 
base=`echo $i|cut -f 2,3 -d "_"`
# Please change your prefix:
prefix="alfredzhao"
mv $i $prefix"_"$base
done
cd ..
done

这样将所有文件都从xxdb的前缀改为alfredzhao了。
然后立马去验证结果发现OSW生成的图主机名依然是xxdb
不是文件名的话,难道是文件里面的内容?可是从当前这些文本通过grep xxdb *查找并没有找到xxdb的内容,最终遍历寻找,终于在oswvmstat下找到了有xxdb的内容:

jingyudeMacBook-Pro:oswiostat jingyuzhao$ grep xxdb *
jingyudeMacBook-Pro:oswiostat jingyuzhao$ cd ..
jingyudeMacBook-Pro:archive jingyuzhao$ ls -lrt
total 0
drwxr-xr-x@  2 jingyuzhao  staff   64 Jun  2 10:26 oswprvtnet
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswarp
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswifconfig
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswiostat
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswmpstat
drwxr-xr-x@ 10 jingyuzhao  staff  320 Jun  7 00:01 oswnetstat
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswps
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswtop
drwxr-xr-x@  9 jingyuzhao  staff  288 Jun  7 00:01 oswvmstat
jingyudeMacBook-Pro:archive jingyuzhao$ cd oswvmstat/
jingyudeMacBook-Pro:oswvmstat jingyuzhao$ grep xxdb *
xxdb_vmstat_20.06.02.1000.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1100.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1200.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1300.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1400.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1500.dat:AIX OSWbb v8.3.1 xxdb
xxdb_vmstat_20.06.02.1600.dat:AIX OSWbb v8.3.1 xxdb
jingyudeMacBook-Pro:oswvmstat jingyuzhao$ 

难道是通过oswvmstat下的这些标识吗?通过sed修改验证下:

sed -i 's/xxdb/alfredzhao/g' *
jingyudeMacBook-Pro:oswvmstat jingyuzhao$ sed -i '' 's/xxdb/alfredzhao/' *

注意:MAC的话sed -i的命令和Linux有些区别,上面第一行命令会失败,因为默认强制要求备份,我这里第二个命令置空就是代表不备份。
修改成功后再次使用osw生成图表发现主机名已经成功显示为我上面更改的alfredzhao。