You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					87 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					87 lines
				
				2.2 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								# info: list mysql config parameters
							 | 
						||
| 
								 | 
							
								# options: [FORMAT]
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# example: v-list-sys-mysql-config
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This function for obtaining the list of mysql config parameters.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                Variables & Functions                     #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Argument definition
							 | 
						||
| 
								 | 
							
								format=${1-shell}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Includes
							 | 
						||
| 
								 | 
							
								# shellcheck source=/etc/hestiacp/hestia.conf
							 | 
						||
| 
								 | 
							
								source /etc/hestiacp/hestia.conf
							 | 
						||
| 
								 | 
							
								# shellcheck source=/usr/local/hestia/func/main.sh
							 | 
						||
| 
								 | 
							
								source $HESTIA/func/main.sh
							 | 
						||
| 
								 | 
							
								# load config file
							 | 
						||
| 
								 | 
							
								source_conf "$HESTIA/conf/hestia.conf"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# JSON list function
							 | 
						||
| 
								 | 
							
								json_list() {
							 | 
						||
| 
								 | 
							
									str=$(echo "$config" | egrep "$keys" \
							 | 
						||
| 
								 | 
							
										| sed -e "s/[ ]*=/=/" -e "s/=[ ]*/=\'/" -e "s/$/'/")
							 | 
						||
| 
								 | 
							
									parse_object_kv_list "$str"
							 | 
						||
| 
								 | 
							
									echo '{
							 | 
						||
| 
								 | 
							
								    "CONFIG": {
							 | 
						||
| 
								 | 
							
								        "max_user_connections": "'$max_user_connections'",
							 | 
						||
| 
								 | 
							
								        "max_connections": "'$max_connections'",
							 | 
						||
| 
								 | 
							
								        "wait_timeout": "'$wait_timeout'",
							 | 
						||
| 
								 | 
							
								        "interactive_timeout": "'$interactive_timeout'",
							 | 
						||
| 
								 | 
							
								        "max_allowed_packet": "'$max_allowed_packet'",
							 | 
						||
| 
								 | 
							
								        "config_path": "'$config_path'"
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								}'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# SHELL list function
							 | 
						||
| 
								 | 
							
								shell_list() {
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | tr '=' ' '
							 | 
						||
| 
								 | 
							
									echo "config_path $config_path"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# PLAIN list function
							 | 
						||
| 
								 | 
							
								plain_list() {
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | tr '=' ' '
							 | 
						||
| 
								 | 
							
									echo "config_path $config_path"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# CSV list function
							 | 
						||
| 
								 | 
							
								csv_list() {
							 | 
						||
| 
								 | 
							
									echo "$keys" | sed "s/|/,/g"
							 | 
						||
| 
								 | 
							
									echo "$config" | egrep "$keys" | tr '=' ' ' | awk '{print $2}' | tr '\n' ','
							 | 
						||
| 
								 | 
							
									echo
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                       Action                             #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Defining config path
							 | 
						||
| 
								 | 
							
								config_path=$(find /etc/my* -name my.cnf)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Defining keys
							 | 
						||
| 
								 | 
							
								keys="max_user_connections|max_connections|wait_timeout|interactive_timeout"
							 | 
						||
| 
								 | 
							
								keys="${keys}|max_allowed_packet"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Reading config
							 | 
						||
| 
								 | 
							
								config=$(cat $config_path | grep -v "^;")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Listing data
							 | 
						||
| 
								 | 
							
								case $format in
							 | 
						||
| 
								 | 
							
									json) json_list ;;
							 | 
						||
| 
								 | 
							
									plain) plain_list ;;
							 | 
						||
| 
								 | 
							
									csv) csv_list ;;
							 | 
						||
| 
								 | 
							
									shell) shell_list | column -t ;;
							 | 
						||
| 
								 | 
							
								esac
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								#                       Hestia                             #
							 | 
						||
| 
								 | 
							
								#----------------------------------------------------------#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exit
							 |