Merge branch 'master' of https://git.oopen.de/backup/backup-rcopy
This commit is contained in:
		| @@ -18,6 +18,7 @@ | ||||
| ## -    Show_view_priv | ||||
| ## -    Event_priv | ||||
| ## -    Process_priv (since MySQL 5.5) | ||||
| ## -    Super_priv (since MySQL 5.6.?ß) | ||||
| ## -  | ||||
| ## - INSERT INTO user (Host,User,Password,Select_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y'); | ||||
| ## - | ||||
| @@ -25,13 +26,17 @@ | ||||
| ## - INSERT INTO user (Host,User,Password,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y'); | ||||
| ## - | ||||
| ## - | ||||
| ## - Since MySQL 5.6 - you also have to add process privileges (Super_priv = 'Y') | ||||
| ## - INSERT INTO user (Host,User,Password,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y'); | ||||
| ## - | ||||
| ## - | ||||
| ## - Since MySQL 5.7.x - you also have to add process privileges (Execute_priv = 'Y') | ||||
| ## -                     Password field is now: "authentication_string" | ||||
| ## - INSERT INTO user (Host,User,authentication_string,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','','',''); | ||||
| ## - INSERT INTO user (Host,User,authentication_string,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','Y','','',''); | ||||
| ## - | ||||
| ## - MariaDB (10.1.x) | ||||
| ## - | ||||
| ## - INSERT INTO user (Host,User,Password,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','','',''); | ||||
| ## - INSERT INTO user (Host,User,Password,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','Y','','',''); | ||||
| ## - | ||||
| ## - or if updating from older mysql version: | ||||
| ## - | ||||
| @@ -84,6 +89,7 @@ fi | ||||
| if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
|    mysql=`$ssh ${ssh_user}@$srcHost which mysql` | ||||
|    mysqldump=`$ssh ${ssh_user}@$srcHost which mysqldump` | ||||
|    mysqld="$($ssh ${ssh_user}@$srcHost which mysqld)" | ||||
|    ssh_options="-o BatchMode=yes -o ConnectTimeout=360" | ||||
| else | ||||
|    mysql=`which mysql` | ||||
| @@ -123,6 +129,15 @@ fi | ||||
|  | ||||
| MYSQL_VERSION_NUM=`echo $MYSQL_VERSION | awk -F \. '{ printf "%02d", $1; printf "%02d", $2; printf "%02d", $3 }'` | ||||
|  | ||||
|  | ||||
| if [[ "${MYSQL_VERSION,,}" =~ mariadb ]]; then | ||||
| 	MYSQL_DISTRIBUTION="MariaDB" | ||||
| else | ||||
| 	MYSQL_DISTRIBUTION="MySQL" | ||||
| fi | ||||
|  | ||||
|  | ||||
|  | ||||
| if [ ! -d $_backupDestArchiveDir ]; then | ||||
|    mkdir -p $_backupDestArchiveDir | ||||
| fi | ||||
| @@ -145,14 +160,14 @@ if $ARCHIVE ;then | ||||
|    if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
|       if [ -n "$mysql_credential_args" ] ; then | ||||
|          $( | ||||
|             $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ | ||||
|             $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ | ||||
|                > ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log | ||||
|             exit $? | ||||
|          ) | ||||
|          retval=$? | ||||
|       else | ||||
|          $( | ||||
|             $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''\" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g'" \ | ||||
|             $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g'" \ | ||||
|                > ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log | ||||
|             exit $? | ||||
|          ) | ||||
| @@ -161,14 +176,14 @@ if $ARCHIVE ;then | ||||
|    else | ||||
|       if [ -n "$mysql_credential_args" ] ; then | ||||
|          $( | ||||
|             $mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \ | ||||
|             $mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \ | ||||
|                > ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log | ||||
|             exit $? | ||||
|          ) | ||||
|          retval=$? | ||||
|       else | ||||
|          $( | ||||
|             $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g' \ | ||||
|             $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g' \ | ||||
|                > ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log | ||||
|             exit $? | ||||
|          ) | ||||
| @@ -176,6 +191,7 @@ if $ARCHIVE ;then | ||||
|       fi | ||||
|    fi | ||||
|   | ||||
|  | ||||
|    err_msg="Cannot save SQL Grants for users" | ||||
|    keep_backup_on_error=false | ||||
|  | ||||
| @@ -238,6 +254,572 @@ if $ARCHIVE ;then | ||||
|    ## - End: Backup SQL Grants for users | ||||
|    ## ---------------------------------- | ||||
|  | ||||
|  | ||||
|    ## - Since MySQL 5.7, no user creation statement (with password) will be | ||||
|    ## - include in above MySQL Grant backup | ||||
|    ## - | ||||
|    ## - We provide two different version .. | ||||
|    ## - | ||||
| 	if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]] ; then | ||||
| 		if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then | ||||
|  | ||||
| 			## ----------------------------- | ||||
| 			## - Backup/Create User Craetion sql statements (00) | ||||
| 			## -  | ||||
| 			info_msg="create User creation SQL file (00)" | ||||
| 			echononl "\t$info_msg" | ||||
|  | ||||
| 			## - begin timestamp | ||||
| 			## - | ||||
| 			b_timestamp=`$date +"%s"` | ||||
|  | ||||
| 			filedate=`$date +"%Y-%m-%d-%H%M"` | ||||
|  | ||||
| 			if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				else | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql  -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
| 			else | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
| 						$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				else | ||||
| 					$( | ||||
| 						$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
| 			fi | ||||
| 		 | ||||
|  | ||||
| 			err_msg="Cannot create User Creation SQL file (00)" | ||||
| 			keep_backup_on_error=false | ||||
|  | ||||
| 			if [ "$retval" = 0 ];then | ||||
| 				[ -z $mysql_gzip ] && mysql_gzip=false | ||||
| 				if $mysql_gzip ; then | ||||
| 					$gzip ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log | ||||
| 					retval=$? | ||||
| 					err_msg="Cannot gzip \"MySQLCreateUser-00.sql-${filedate}.sql\"" | ||||
| 					keep_backup_on_error=true | ||||
| 				fi | ||||
| 			fi | ||||
|  | ||||
| 			## - end timestamp | ||||
| 			## - | ||||
| 			e_timestamp=`$date +"%s"` | ||||
|  | ||||
| 			## - determin duration | ||||
| 			## - | ||||
| 			_time=`expr $e_timestamp - $b_timestamp` | ||||
| 			t_h=`expr $_time / 60 / 60` | ||||
| 			t_rest_h=`expr $_time - $t_h \\* 60 \\* 60` | ||||
| 			t_m=`expr $t_rest_h / 60` | ||||
| 			t_s=`expr $t_rest_h - $t_m \\* 60` | ||||
| 			duration="" | ||||
| 			if [ $t_h -gt 0 ]; then | ||||
| 				duration="$t_h h : $t_m min : $t_s sec" | ||||
| 			elif [ $t_m -gt 0 ];then | ||||
| 				duration="$t_m min : $t_s sec" | ||||
| 			else | ||||
| 				duration="$t_s sec" | ||||
| 			fi | ||||
|  | ||||
| 			## - look about errors.. | ||||
| 			## - | ||||
| 			if [ "$retval" != "0" ]; then | ||||
| 				echolog "" | ||||
| 				echolog "\t[ERROR] ${err_msg}  [  $duration ]\n\t`$cat $err_Log`\n" | ||||
| 				if ! $keep_backup_on_error ; then | ||||
| 					rm -f ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql | ||||
| 				fi | ||||
| 			else | ||||
|  | ||||
| 				## - print durations right-aligned | ||||
| 				## - | ||||
| 				[ -z $right_tabstop ] && right_tabstop=65 | ||||
| 				_tmp_string="${info_msg}${duration}" | ||||
| 				_strlen=${#_tmp_string} | ||||
| 				_count_blank=`expr $right_tabstop - $_strlen` | ||||
| 				_str_blanks="" | ||||
| 				while [ $_count_blank -gt 1 ]; do | ||||
| 					_str_blanks="$_str_blanks " | ||||
| 					_count_blank=`expr $_count_blank - 1` | ||||
| 				done | ||||
| 				echononl "$_str_blanks" | ||||
|  | ||||
| 				echolog "  [ $duration ]" | ||||
| 			fi | ||||
|  | ||||
| 			## - End: Backup/Create User Craetion sql statements (00) | ||||
| 			## ---------------------------------- | ||||
|  | ||||
|  | ||||
| 			## ----------------------------- | ||||
| 			## - Backup/Create User Craetion sql statements (01) | ||||
| 			## -  | ||||
| 			info_msg="create User creation SQL file (01)" | ||||
| 			echononl "\t$info_msg" | ||||
|  | ||||
| 			## - begin timestamp | ||||
| 			## - | ||||
| 			b_timestamp=`$date +"%s"` | ||||
|  | ||||
| 			filedate=`$date +"%Y-%m-%d-%H%M"` | ||||
|  | ||||
| 			if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				else | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
| 			else | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
| 						$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				else | ||||
| 					$( | ||||
| 						$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
| 							> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
| 			fi | ||||
| 		 | ||||
|  | ||||
| 			err_msg="Cannot create User Creation SQL file (01)" | ||||
| 			keep_backup_on_error=false | ||||
|  | ||||
| 			if [ "$retval" = 0 ];then | ||||
| 				[ -z $mysql_gzip ] && mysql_gzip=false | ||||
| 				if $mysql_gzip ; then | ||||
| 					$gzip ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log | ||||
| 					retval=$? | ||||
| 					err_msg="Cannot gzip \"MySQLCreateUser-01.sql-${filedate}.sql\"" | ||||
| 					keep_backup_on_error=true | ||||
| 				fi | ||||
| 			fi | ||||
|  | ||||
| 			## - end timestamp | ||||
| 			## - | ||||
| 			e_timestamp=`$date +"%s"` | ||||
|  | ||||
| 			## - determin duration | ||||
| 			## - | ||||
| 			_time=`expr $e_timestamp - $b_timestamp` | ||||
| 			t_h=`expr $_time / 60 / 60` | ||||
| 			t_rest_h=`expr $_time - $t_h \\* 60 \\* 60` | ||||
| 			t_m=`expr $t_rest_h / 60` | ||||
| 			t_s=`expr $t_rest_h - $t_m \\* 60` | ||||
| 			duration="" | ||||
| 			if [ $t_h -gt 0 ]; then | ||||
| 				duration="$t_h h : $t_m min : $t_s sec" | ||||
| 			elif [ $t_m -gt 0 ];then | ||||
| 				duration="$t_m min : $t_s sec" | ||||
| 			else | ||||
| 				duration="$t_s sec" | ||||
| 			fi | ||||
|  | ||||
| 			## - look about errors.. | ||||
| 			## - | ||||
| 			if [ "$retval" != "0" ]; then | ||||
| 				echolog "" | ||||
| 				echolog "\t[ERROR] ${err_msg}  [  $duration ]\n\t`$cat $err_Log`\n" | ||||
| 				if ! $keep_backup_on_error ; then | ||||
| 					rm -f ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql | ||||
| 				fi | ||||
| 			else | ||||
|  | ||||
| 				## - print durations right-aligned | ||||
| 				## - | ||||
| 				[ -z $right_tabstop ] && right_tabstop=65 | ||||
| 				_tmp_string="${info_msg}${duration}" | ||||
| 				_strlen=${#_tmp_string} | ||||
| 				_count_blank=`expr $right_tabstop - $_strlen` | ||||
| 				_str_blanks="" | ||||
| 				while [ $_count_blank -gt 1 ]; do | ||||
| 					_str_blanks="$_str_blanks " | ||||
| 					_count_blank=`expr $_count_blank - 1` | ||||
| 				done | ||||
| 				echononl "$_str_blanks" | ||||
|  | ||||
| 				echolog "  [ $duration ]" | ||||
| 			fi | ||||
|  | ||||
| 			## - End: Backup/Create User Craetion sql statements (01) | ||||
| 			## ---------------------------------- | ||||
|  | ||||
| 		elif [ $MYSQL_VERSION_NUM -ge 050600 ]; then | ||||
|  | ||||
|          ## ----------------------------- | ||||
|          ## - User Craetion sql statements for MySQL 5.7.x  | ||||
|          ## -  | ||||
|          info_msg="create User creation SQL file for MySQL 5.7.x" | ||||
|          echononl "\t$info_msg" | ||||
|  | ||||
|          ## - begin timestamp | ||||
|          ## - | ||||
|          b_timestamp=`$date +"%s"` | ||||
|  | ||||
|          filedate=`$date +"%Y-%m-%d-%H%M"` | ||||
|  | ||||
| 			if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
| 						> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
|             else | ||||
| 					$( | ||||
| 						$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
| 						> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
|          else | ||||
| 				if [ -n "$mysql_credential_args" ] ; then | ||||
| 					$( | ||||
|                   $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
| 						> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
|             else | ||||
| 					$( | ||||
| 						$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
| 						> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
| 						exit $? | ||||
| 					) | ||||
| 					retval=$? | ||||
| 				fi | ||||
| 			fi | ||||
|     | ||||
|  | ||||
|          err_msg="Cannot create User Creation SQL file for MySQL 5.7.x" | ||||
|          keep_backup_on_error=false | ||||
|  | ||||
|          if [ "$retval" = 0 ];then | ||||
|             [ -z $mysql_gzip ] && mysql_gzip=false | ||||
|             if $mysql_gzip ; then | ||||
|                $gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
|                retval=$? | ||||
|                err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\"" | ||||
|                keep_backup_on_error=true | ||||
|             fi | ||||
|          fi | ||||
|  | ||||
|          ## - end timestamp | ||||
|          ## - | ||||
|          e_timestamp=`$date +"%s"` | ||||
|  | ||||
|          ## - determin duration | ||||
|          ## - | ||||
|          _time=`expr $e_timestamp - $b_timestamp` | ||||
|          t_h=`expr $_time / 60 / 60` | ||||
|          t_rest_h=`expr $_time - $t_h \\* 60 \\* 60` | ||||
|          t_m=`expr $t_rest_h / 60` | ||||
|          t_s=`expr $t_rest_h - $t_m \\* 60` | ||||
|          duration="" | ||||
|          if [ $t_h -gt 0 ]; then | ||||
|             duration="$t_h h : $t_m min : $t_s sec" | ||||
|          elif [ $t_m -gt 0 ];then | ||||
|             duration="$t_m min : $t_s sec" | ||||
|          else | ||||
|             duration="$t_s sec" | ||||
|          fi | ||||
|  | ||||
|          ## - look about errors.. | ||||
|          ## - | ||||
|          if [ "$retval" != "0" ]; then | ||||
|             echolog "" | ||||
|             echolog "\t[ERROR] ${err_msg}  [  $duration ]\n\t`$cat $err_Log`\n" | ||||
|             if ! $keep_backup_on_error ; then | ||||
|                rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql | ||||
|             fi | ||||
|          else | ||||
|  | ||||
|             ## - print durations right-aligned | ||||
|             ## - | ||||
|             [ -z $right_tabstop ] && right_tabstop=65 | ||||
|             _tmp_string="${info_msg}${duration}" | ||||
|             _strlen=${#_tmp_string} | ||||
|             _count_blank=`expr $right_tabstop - $_strlen` | ||||
|             _str_blanks="" | ||||
|             while [ $_count_blank -gt 1 ]; do | ||||
|                _str_blanks="$_str_blanks " | ||||
|                _count_blank=`expr $_count_blank - 1` | ||||
|             done | ||||
|             echononl "$_str_blanks" | ||||
|  | ||||
|             echolog "  [ $duration ]" | ||||
|          fi | ||||
|  | ||||
|          ## - Create User Craetion sql statements for MySQL 5.7.x | ||||
|          ## ---------------------------------- | ||||
|  | ||||
| 		fi # End: if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then | ||||
| 	 | ||||
| 	elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then | ||||
|  | ||||
|       ## ----------------------------- | ||||
|       ## - Create User Craetion sql statements (MariaDB) | ||||
|       ## -  | ||||
|       info_msg="create User creation SQL file (MariaDB)" | ||||
|       echononl "\t$info_msg" | ||||
|  | ||||
|       ## - begin timestamp | ||||
|       ## - | ||||
|       b_timestamp=`$date +"%s"` | ||||
|  | ||||
|       filedate=`$date +"%Y-%m-%d-%H%M"` | ||||
|  | ||||
|       if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
|          if [ -n "$mysql_credential_args" ] ; then | ||||
|             $( | ||||
|                $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          else | ||||
|             $( | ||||
|                $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          fi | ||||
|       else | ||||
|          if [ -n "$mysql_credential_args" ] ; then | ||||
|             $( | ||||
|                $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          else | ||||
|             $( | ||||
|                $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          fi | ||||
|       fi | ||||
|     | ||||
|  | ||||
|       err_msg="Cannot create User Creation SQL file (MariaDB)" | ||||
|       keep_backup_on_error=false | ||||
|  | ||||
|       if [ "$retval" = 0 ];then | ||||
|          [ -z $mysql_gzip ] && mysql_gzip=false | ||||
|          if $mysql_gzip ; then | ||||
|             $gzip ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log | ||||
|             retval=$? | ||||
|             err_msg="Cannot gzip \"MySQLCreateUser.sql-${filedate}.sql\"" | ||||
|             keep_backup_on_error=true | ||||
|          fi | ||||
|       fi | ||||
|  | ||||
|       ## - end timestamp | ||||
|       ## - | ||||
|       e_timestamp=`$date +"%s"` | ||||
|  | ||||
|       ## - determin duration | ||||
|       ## - | ||||
|       _time=`expr $e_timestamp - $b_timestamp` | ||||
|       t_h=`expr $_time / 60 / 60` | ||||
|       t_rest_h=`expr $_time - $t_h \\* 60 \\* 60` | ||||
|       t_m=`expr $t_rest_h / 60` | ||||
|       t_s=`expr $t_rest_h - $t_m \\* 60` | ||||
|       duration="" | ||||
|       if [ $t_h -gt 0 ]; then | ||||
|          duration="$t_h h : $t_m min : $t_s sec" | ||||
|       elif [ $t_m -gt 0 ];then | ||||
|          duration="$t_m min : $t_s sec" | ||||
|       else | ||||
|          duration="$t_s sec" | ||||
|       fi | ||||
|  | ||||
|       ## - look about errors.. | ||||
|       ## - | ||||
|       if [ "$retval" != "0" ]; then | ||||
|          echolog "" | ||||
|          echolog "\t[ERROR] ${err_msg}  [  $duration ]\n\t`$cat $err_Log`\n" | ||||
|          if ! $keep_backup_on_error ; then | ||||
|             rm -f ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql | ||||
|          fi | ||||
|       else | ||||
|  | ||||
|          ## - print durations right-aligned | ||||
|          ## - | ||||
|          [ -z $right_tabstop ] && right_tabstop=65 | ||||
|          _tmp_string="${info_msg}${duration}" | ||||
|          _strlen=${#_tmp_string} | ||||
|          _count_blank=`expr $right_tabstop - $_strlen` | ||||
|          _str_blanks="" | ||||
|          while [ $_count_blank -gt 1 ]; do | ||||
|             _str_blanks="$_str_blanks " | ||||
|             _count_blank=`expr $_count_blank - 1` | ||||
|          done | ||||
|          echononl "$_str_blanks" | ||||
|  | ||||
|          echolog "  [ $duration ]" | ||||
|       fi | ||||
|  | ||||
|       ## - End: Create User Craetion sql statements (MariaDB) | ||||
|       ## ---------------------------------- | ||||
|  | ||||
|       ## ----------------------------- | ||||
|       ## - Create User Craetion sql statements for MySQL 5.7.x (from MariaDB) | ||||
|       ## -  | ||||
|       info_msg="create User creation SQL file for MySQL 5.7.x (from MariaDB)" | ||||
|       echononl "\t$info_msg" | ||||
|  | ||||
|       ## - begin timestamp | ||||
|       ## - | ||||
|       b_timestamp=`$date +"%s"` | ||||
|  | ||||
|       filedate=`$date +"%Y-%m-%d-%H%M"` | ||||
|  | ||||
|       if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then | ||||
|          if [ -n "$mysql_credential_args" ] ; then | ||||
|             $( | ||||
|                $ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          else | ||||
|             $( | ||||
|                $ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          fi | ||||
|       else | ||||
|          if [ -n "$mysql_credential_args" ] ; then | ||||
|             $( | ||||
|                $mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          else | ||||
|             $( | ||||
|                $mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \ | ||||
|                   > ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log | ||||
|                exit $? | ||||
|             ) | ||||
|             retval=$? | ||||
|          fi | ||||
|       fi | ||||
|     | ||||
|  | ||||
|       err_msg="Cannot create User Creation SQL file for MySQL-5.7.x (MariaDB)" | ||||
|       keep_backup_on_error=false | ||||
|  | ||||
|       if [ "$retval" = 0 ];then | ||||
|          [ -z $mysql_gzip ] && mysql_gzip=false | ||||
|          if $mysql_gzip ; then | ||||
|             $gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log | ||||
|             retval=$? | ||||
|             err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\"" | ||||
|             keep_backup_on_error=true | ||||
|          fi | ||||
|       fi | ||||
|  | ||||
|       ## - end timestamp | ||||
|       ## - | ||||
|       e_timestamp=`$date +"%s"` | ||||
|  | ||||
|       ## - determin duration | ||||
|       ## - | ||||
|       _time=`expr $e_timestamp - $b_timestamp` | ||||
|       t_h=`expr $_time / 60 / 60` | ||||
|       t_rest_h=`expr $_time - $t_h \\* 60 \\* 60` | ||||
|       t_m=`expr $t_rest_h / 60` | ||||
|       t_s=`expr $t_rest_h - $t_m \\* 60` | ||||
|       duration="" | ||||
|       if [ $t_h -gt 0 ]; then | ||||
|          duration="$t_h h : $t_m min : $t_s sec" | ||||
|       elif [ $t_m -gt 0 ];then | ||||
|          duration="$t_m min : $t_s sec" | ||||
|       else | ||||
|          duration="$t_s sec" | ||||
|       fi | ||||
|  | ||||
|       ## - look about errors.. | ||||
|       ## - | ||||
|       if [ "$retval" != "0" ]; then | ||||
|          echolog "" | ||||
|          echolog "\t[ERROR] ${err_msg}  [  $duration ]\n\t`$cat $err_Log`\n" | ||||
|          if ! $keep_backup_on_error ; then | ||||
|             rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql | ||||
|          fi | ||||
|       else | ||||
|  | ||||
|          ## - print durations right-aligned | ||||
|          ## - | ||||
|          [ -z $right_tabstop ] && right_tabstop=65 | ||||
|          _tmp_string="${info_msg}${duration}" | ||||
|          _strlen=${#_tmp_string} | ||||
|          _count_blank=`expr $right_tabstop - $_strlen` | ||||
|          _str_blanks="" | ||||
|          while [ $_count_blank -gt 1 ]; do | ||||
|             _str_blanks="$_str_blanks " | ||||
|             _count_blank=`expr $_count_blank - 1` | ||||
|          done | ||||
|          echononl "$_str_blanks" | ||||
|  | ||||
|          echolog "  [ $duration ]" | ||||
|       fi | ||||
|  | ||||
|       ## - End: Create User Craetion sql statements  for MySQL 5.7.x (from MariaDB) | ||||
|       ## ---------------------------------- | ||||
|  | ||||
|  | ||||
| 	fi # End: if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]] ; then | ||||
|  | ||||
|  | ||||
|  | ||||
|    ## ----------------------------- | ||||
|    ## - Backup/Create Database Craetion sql statements  | ||||
|    ## -  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user