@@ -66,6 +66,8 @@ load_default_config() {
66
66
CONFIG_rotation_monthly=150
67
67
CONFIG_mysql_dump_port=3306
68
68
CONFIG_mysql_dump_usessl=' yes'
69
+ CONFIG_mysql_dump_encrypted_login=' no'
70
+ CONFIG_mysql_dump_login_path=' '
69
71
CONFIG_mysql_dump_username=' root'
70
72
CONFIG_mysql_dump_password=' '
71
73
CONFIG_mysql_dump_host=' localhost'
@@ -436,6 +438,13 @@ backup_local_files () {
436
438
# @args: (none)
437
439
# @deps: load_default_config
438
440
parse_configuration () {
441
+ # Authentification per login-path or user/pass // available as of MySQL 5.6.6: http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html
442
+ if [[ " ${CONFIG_mysql_dump_encrypted_login} " = " yes" ]]; then
443
+ authentication=" --login-path=" ${CONFIG_mysql_dump_login_path} " "
444
+ else
445
+ authentication=" --user=" ${CONFIG_mysql_dump_username} " --password=" ${CONFIG_mysql_dump_password} " --host=" ${CONFIG_mysql_dump_host} " "
446
+ fi
447
+
439
448
# OPT string for use with mysqldump ( see man mysqldump )
440
449
opt=( ' --quote-names' ' --opt' )
441
450
@@ -514,7 +523,7 @@ parse_configuration () {
514
523
db=${i% .* }
515
524
table=${i# " $db " .}
516
525
r=' \*' ; [[ " $i " =~ $r ]] || { tmp[z++]=" $i " ; continue ; }
517
- while read -r; do tmp[z++]=" ${db} .${REPLY} " ; done < <( mysql --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${mysql_opt[@]} " --batch --skip-column-names -e " select table_name from information_schema.tables where table_schema='${db} ' and table_name like '${table// \* /% } ';" )
526
+ while read -r; do tmp[z++]=" ${db} .${REPLY} " ; done < <( mysql ${authentication} " ${mysql_opt[@]} " --batch --skip-column-names -e " select table_name from information_schema.tables where table_schema='${db} ' and table_name like '${table// \* /% } ';" )
518
527
done
519
528
for l in " ${tmp[@]} " ; do echo " exclude $l " ; done
520
529
CONFIG_table_exclude=(" ${tmp[@]} " )
@@ -535,28 +544,28 @@ dbstatus() {
535
544
if (( $CONFIG_dryrun )) ; then
536
545
case " ${CONFIG_mysql_dump_compression} " in
537
546
' gzip' )
538
- echo " dry-running: mysqlshow --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_dbstatus[@]} | gzip_compression > ${1}${suffix} " ;
547
+ echo " dry-running: mysqlshow ${authentication } ${opt_dbstatus[@]} | gzip_compression > ${1}${suffix} " ;
539
548
;;
540
549
' bzip2' )
541
- echo " dry-running: mysqlshow --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_dbstatus[@]} | bzip2_compression > ${1}${suffix} " ;
550
+ echo " dry-running: mysqlshow ${authentication } ${opt_dbstatus[@]} | bzip2_compression > ${1}${suffix} " ;
542
551
;;
543
552
* )
544
- echo " dry-running: mysqlshow --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_dbstatus[@]} > ${1}${suffix} " ;
553
+ echo " dry-running: mysqlshow ${authentication } ${opt_dbstatus[@]} > ${1}${suffix} " ;
545
554
;;
546
555
esac
547
556
return 0;
548
557
else
549
558
case " ${CONFIG_mysql_dump_compression} " in
550
559
' gzip' )
551
- mysqlshow --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_dbstatus[@]} " | gzip_compression > " ${1}${suffix} " ;
560
+ mysqlshow ${authentication} " ${opt_dbstatus[@]} " | gzip_compression > " ${1}${suffix} " ;
552
561
return $?
553
562
;;
554
563
' bzip2' )
555
- mysqlshow --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_dbstatus[@]} " | bzip2_compression > " ${1}${suffix} " ;
564
+ mysqlshow ${authentication} " ${opt_dbstatus[@]} " | bzip2_compression > " ${1}${suffix} " ;
556
565
return $?
557
566
;;
558
567
* )
559
- mysqlshow --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_dbstatus[@]} " > " ${1}${suffix} " ;
568
+ mysqlshow ${authentication} " ${opt_dbstatus[@]} " > " ${1}${suffix} " ;
560
569
return $?
561
570
;;
562
571
esac
@@ -571,28 +580,28 @@ fullschema () {
571
580
if (( $CONFIG_dryrun )) ; then
572
581
case " ${CONFIG_mysql_dump_compression} " in
573
582
' gzip' )
574
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_fullschema[@]} | gzip_compression > ${1}${suffix} " ;
583
+ echo " dry-running: mysqldump ${authentication } ${opt_fullschema[@]} | gzip_compression > ${1}${suffix} " ;
575
584
;;
576
585
' bzip2' )
577
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_fullschema[@]} | bzip2_compression > ${1}${suffix} " ;
586
+ echo " dry-running: mysqldump ${authentication } ${opt_fullschema[@]} | bzip2_compression > ${1}${suffix} " ;
578
587
;;
579
588
* )
580
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt_fullschema[@]} > ${1}${suffix} " ;
589
+ echo " dry-running: mysqldump ${authentication } ${opt_fullschema[@]} > ${1}${suffix} " ;
581
590
;;
582
591
esac
583
592
return 0;
584
593
else
585
594
case " ${CONFIG_mysql_dump_compression} " in
586
595
' gzip' )
587
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_fullschema[@]} " | gzip_compression > " ${1}${suffix} " ;
596
+ mysqldump ${authentication} " ${opt_fullschema[@]} " | gzip_compression > " ${1}${suffix} " ;
588
597
return $?
589
598
;;
590
599
' bzip2' )
591
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_fullschema[@]} " | bzip2_compression > " ${1}${suffix} " ;
600
+ mysqldump ${authentication} " ${opt_fullschema[@]} " | bzip2_compression > " ${1}${suffix} " ;
592
601
return $?
593
602
;;
594
603
* )
595
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt_fullschema[@]} " > " ${1}${suffix} " ;
604
+ mysqldump ${authentication} " ${opt_fullschema[@]} " > " ${1}${suffix} " ;
596
605
return $?
597
606
;;
598
607
esac
@@ -710,13 +719,13 @@ process_dbs() {
710
719
uid=" ${uid:- 8: 8} "
711
720
case " ${CONFIG_mysql_dump_compression} " in
712
721
' gzip' )
713
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " | gzip_compression > " $cfname " ;
722
+ mysqldump ${authentication} " ${opt[@]} " " $@ " | gzip_compression > " $cfname " ;
714
723
;;
715
724
' bzip2' )
716
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " | bzip2_compression > " $cfname " ;
725
+ mysqldump ${authentication} " ${opt[@]} " " $@ " | bzip2_compression > " $cfname " ;
717
726
;;
718
727
* )
719
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " > " $cfname " ;
728
+ mysqldump ${authentication} " ${opt[@]} " " $@ " > " $cfname " ;
720
729
;;
721
730
esac
722
731
add_manifest_entry " $manifest_file " " $cfname " " $pid " " $db " && parse_manifest " $manifest_file " && cp -al " $cfname " " ${CONFIG_backup_dir} " /latest/ && echo " Generated master backup $cfname " && return 0 || return 1
@@ -729,29 +738,29 @@ process_dbs() {
729
738
case " ${CONFIG_mysql_dump_compression} " in
730
739
' gzip' )
731
740
if (( $filename_flags & $filename_flag_gz )) ; then
732
- diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
741
+ diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
733
742
elif (( $filename_flags & $filename_flag_bz2 )) ; then
734
- diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
743
+ diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
735
744
else
736
- diff " ${manifest_latest_master_entry[0]} " <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
745
+ diff " ${manifest_latest_master_entry[0]} " <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | gzip_compression > " $cfname " ;
737
746
fi
738
747
;;
739
748
' bzip2' )
740
749
if (( $filename_flags & $filename_flag_gz )) ; then
741
- diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
750
+ diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
742
751
elif (( $filename_flags & $filename_flag_bz2 )) ; then
743
- diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
752
+ diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
744
753
else
745
- diff " ${manifest_latest_master_entry[0]} " <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
754
+ diff " ${manifest_latest_master_entry[0]} " <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) | bzip2_compression > " $cfname " ;
746
755
fi
747
756
;;
748
757
* )
749
758
if (( $filename_flags & $filename_flag_gz )) ; then
750
- diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) > " $cfname " ;
759
+ diff <( gzip_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) > " $cfname " ;
751
760
elif (( $filename_flags & $filename_flag_bz2 )) ; then
752
- diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) > " $cfname " ;
761
+ diff <( bzip2_compression -dc " ${manifest_latest_master_entry[0]} " ) <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) > " $cfname " ;
753
762
else
754
- diff " ${manifest_latest_master_entry[0]} " <( mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " ) > " $cfname " ;
763
+ diff " ${manifest_latest_master_entry[0]} " <( mysqldump ${authentication} " ${opt[@]} " " $@ " ) > " $cfname " ;
755
764
fi
756
765
;;
757
766
esac
@@ -765,28 +774,28 @@ process_dbs() {
765
774
if (( $CONFIG_dryrun )) ; then
766
775
case " ${CONFIG_mysql_dump_compression} " in
767
776
' gzip' )
768
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt[@]} $@ | gzip_compression > ${cfname} "
777
+ echo " dry-running: mysqldump ${authentication } ${opt[@]} $@ | gzip_compression > ${cfname} "
769
778
;;
770
779
' bzip2' )
771
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt[@]} $@ | bzip2_compression > ${cfname} "
780
+ echo " dry-running: mysqldump ${authentication } ${opt[@]} $@ | bzip2_compression > ${cfname} "
772
781
;;
773
782
* )
774
- echo " dry-running: mysqldump --user= ${CONFIG_mysql_dump_username} --password= ${CONFIG_mysql_dump_password} --host= ${CONFIG_mysql_dump_host } ${opt[@]} $@ > ${cfname} "
783
+ echo " dry-running: mysqldump ${authentication } ${opt[@]} $@ > ${cfname} "
775
784
;;
776
785
esac
777
786
return 0;
778
787
else
779
788
case " ${CONFIG_mysql_dump_compression} " in
780
789
' gzip' )
781
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " | gzip_compression > " ${cfname} "
790
+ mysqldump ${authentication} " ${opt[@]} " " $@ " | gzip_compression > " ${cfname} "
782
791
ret=$?
783
792
;;
784
793
' bzip2' )
785
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " | bzip2_compression > " ${cfname} "
794
+ mysqldump ${authentication} " ${opt[@]} " " $@ " | bzip2_compression > " ${cfname} "
786
795
ret=$?
787
796
;;
788
797
* )
789
- mysqldump --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${opt[@]} " " $@ " > " ${cfname} "
798
+ mysqldump ${authentication} " ${opt[@]} " " $@ " > " ${cfname} "
790
799
ret=$?
791
800
;;
792
801
esac
@@ -1057,13 +1066,13 @@ check_dependencies () {
1057
1066
#
1058
1067
parse_databases () {
1059
1068
# bash 4.x version
1060
- # mapfile -t alldbnames < <(mysql --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" --batch --skip-column-names -e "show databases")
1069
+ # mapfile -t alldbnames < <(mysql ${authentication} --batch --skip-column-names -e "show databases")
1061
1070
alldbnames=()
1062
1071
1063
1072
printf " # Parsing databases ... "
1064
1073
# bash 3.0
1065
1074
local i; i=0;
1066
- while read -r; do alldbnames[i++]=" $REPLY " ; done < <( mysql --user= " ${CONFIG_mysql_dump_username} " --password= " ${CONFIG_mysql_dump_password} " --host= " ${CONFIG_mysql_dump_host} " " ${mysql_opt[@]} " --batch --skip-column-names -e " show databases" )
1075
+ while read -r; do alldbnames[i++]=" $REPLY " ; done < <( mysql ${authentication} " ${mysql_opt[@]} " --batch --skip-column-names -e " show databases" )
1067
1076
unset i
1068
1077
1069
1078
# mkfifo foo || exit; trap 'rm -f foo' EXIT
0 commit comments