一、初衷:
一些開源軟件的配置文件中識別區分的部分用英文,那么我們在批量生成配置文件的時候,可以從CMDB導入漢字(idc_name),
然后將它轉換成拼音,再或者拼接上IP地址,以便更准確的識別。例如:Smokeping的Targets配置文件,如下:
+telcom menu = 中國電信 title = telcom ++yunfuxinxingshuangxian-01-61 menu = 雲浮新興雙線-01 title = 61.11.11.11 host = 61.11.11.11
二、方法:
我們可以調用Python的pypinyin庫,來解決漢字轉成拼音的問題。
>>> import pypinyin >>> from pypinyin import pinyin, lazy_pinyin >>> lazy_pinyin(u'雲浮新興雙線-01') [u'yun', u'fu', u'xin', u'xing', u'shuang', u'xian', u'-01'] >>> ''.join(lazy_pinyin(u'雲浮新興雙線-01')) u'yunfuxinxingshuangxian-01'
>>> ''.join(lazy_pinyin(u'雲浮新興雙線-01'))+'-'+'61.11.11.11'.split('.')[0] u'yunfuxinxingshuangxian-01-61'
另外:你將漢字轉成了拼音寫入配置文件,可能還需要拼音轉成漢字,用來顯示報表等。
那么你可以讀取配置文件,取相應的menu(漢字部分)。這里僅提供一種解決思路,具體看實際需求。
grep -n1 yunfuxinxingshuangxian /etc/smokeping/config.d/Targets |grep menu|awk '{print $NF}
附:漢字拼音轉換工具(Python版)官方網址:http://pypinyin.readthedocs.org/en/master/
