params_s.py

Скрипт для хранения параметров в .cfg файлах (как my.cnf, например). Может сохранять в локальный или удаленный (подключается по ssh) файл. Если указаны оба - и локальный и удаленный файлы - объединяет конфигурацию в одно целое, при этом учитывает специальный параметр version находящийся в каждой секции конфигурации. Более новые параметры перепишут более старые, если есть в обоих конфигах. Остальные параметры будут скопированы в общую конфигурацию. Даже после запроса на чтение get оба конфигурационных файла будут объеденены и перезаписаны последней версией. При удалении, если не указан параметр, будет удалена соответствующая секция. Если параметр/секция не найдены скрипт не возвращает ничего.

Пример запуска:

eking@eking:~$ ./params_s.py -h

usage: params_s.py [-h] [--file FILE] [--node NODE] [--key KEY] [--port PORT]
                   [--usr USR] [--pwd PWD] [--nf NF] [--section SECTION]
                   [--option OPTION] [--value VALUE]
                   action

get/set params from .cfg file on the local and/or remote host (node). For use
on bash/sh scripts

positional arguments:
  action             set/get/del/list/sectlist

optional arguments:
  -h, --help         show this help message and exit
  --file FILE        local file name
  --node NODE        IP/fqdn of node to connect
  --key KEY          key file
  --port PORT        ssh port
  --usr USR          user for connect
  --pwd PWD          password for user or key
  --nf NF            file name of config on node
  --section SECTION  section name
  --option OPTION    variable name
  --value VALUE      value

eking@eking:~$

Скачать скрипт: https://github.com/eking-go/public-tools.