记录一个读取my.cnf配置的脚本,可以基于该函数做一些mysql 后端运维工作。各位可以基于自己的需求进行修改。
脚本名称 getcnf.py
运行效果图
脚本名称 getcnf.py
- import sys
- import os
-
- def read_cnf(cnf_path):
- assert cnf_path is not None and os.path.exists(cnf_path)
- cnf_dict = {}
- cur_section = None
- with open(cnf_path) as cnf_reader:
- for line in cnf_reader.readlines():
- line = ''.join(line.split())
- if len(line) <= 0 or '#' == line[0]:
- continue
- if '[' == line[0] and ']' == line[-1]:
- cur_section = line[len('['):len(line) - 1]
- if cur_section not in cnf_dict:
- cnf_dict[cur_section] = {}
- elif '=' in line and line.count('=') == 1:
- if cur_section is None:
- LOGGER.warning('cur_section is None')
- continue
- tokens = line.split('=')
- key = tokens[0].replace('"', '').replace("'", '')
- value = tokens[1].replace('"', '').replace("'", "")
- cnf_dict[cur_section][key] = value
- return cnf_dict
-
-
- def main():
- cnf_path="/u01/my3353/my.cnf"
- mycnf = read_cnf(cnf_path)
- print mycnf['mysqld']['tmpdir']
-
- if __name__ == '__main__':
- main()