Guest User

Untitled

a guest
Oct 18th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. MYDUMPER=/usr/bin/mydumper
  4. _MYDUMPER_OPTS=""
  5.  
  6. pre() {
  7. :
  8. }
  9.  
  10. post() {
  11. :
  12. }
  13.  
  14. _yesno() {
  15. [ -z "${1}" ] && return 1
  16.  
  17. case "${1}" in
  18. [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;;
  19. [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;;
  20. esac
  21.  
  22. return 1
  23. }
  24.  
  25. _add_opts() {
  26. local args="${*}"
  27.  
  28. _MYDUMPER_OPTS="${_MYDUMPER_OPTS:+${_MYDUMPER_OPTS}} ${args}"
  29. echo "DEBUG: ${_MYDUMPER_OPTS}"
  30. }
  31.  
  32. die() {
  33. echo $* >&2
  34. exit 1
  35. }
  36.  
  37. # Try to parse a default config
  38. [ -e "/etc/mydumper-backup.conf" ] && {
  39. . "/etc/mydumper-backup.conf" || die "Error: Parsing /etc/mydumper-backup.conf failed!"
  40. }
  41.  
  42. # Parse additional configs first, other options than "c" will be preserved.
  43. while getopts :C: name; do
  44. case $name in
  45. C)
  46. . "${OPTARG}" || die "Error: Parsing ${OPTARG} failed!"
  47. shift $(($OPTIND - 1))
  48. continue
  49. ;;
  50. esac
  51. done
  52.  
  53. OPTIND=1 # Reset OPTIND
  54. # Commandline opts will override the settings from the default/additional
  55. # confgis.
  56. while getopts B:T:o:x:L:h:P:S:u:p:t:bc name; do
  57. case $name in
  58. B) MD_DATABASE=${OPTARG}; echo "EHEHEHE"; continue;;
  59. T) MD_TABLES="${OPTARG}"; continue;;
  60. o) MD_OUTPUTDIR=$OPTARG; continue;;
  61. x) MD_REGEX=$OPTARG; continue;;
  62. L) MD_LOGFILE=$OPTARG; continue;;
  63. h) MD_HOST=$OPTARG; continue;;
  64. P) MD_PORT=$OPTARG; continue;;
  65. S) MD_SOCKET=$OPTARG; continue;;
  66. u) MD_USER=$OPTARG; continue;;
  67. p) MD_PASSWORD=$OPTARG; continue;;
  68. t) MD_THREADS=$OPTARG; continue;;
  69. b) MD_BINLOGS=1; continue;;
  70. c) MD_COMPRESS=1; continue;;
  71. esac
  72. done
  73. shift $(($OPTIND - 1))
  74.  
  75. # Try to use the MySQL socket by default
  76. [ -z "${MD_HOST}" -a -z "${MD_PORT}" -a -z "${MD_SOCKET}" -a -e /var/run/mysqld.sock ] && _add_opts "--socket /var/run/mysqld.sock"
  77.  
  78. [ -n "${MD_DATABASE}" ] && _add_opts "--database ${MD_DATABASE}"
  79. [ -n "${MD_TABLES}" ] && _add_opts "--table-list ${MD_TABLES}"
  80. [ -n "${MD_OUTPUTDIR}" ] && _add_opts "--outputdir ${MD_OUTPUTDIR}"
  81. [ -n "${MD_REGEX}" ] && _add_opts "--regex ${MD_REGEX}"
  82. [ -n "${MD_LOGFILE}" ] && _add_opts "--logfile ${MD_LOGFILE}"
  83. [ -n "${MD_HOST}" ] && _add_opts "--host ${MD_HOST}"
  84. [ -n "${MD_PORT}" ] && _add_opts "--port ${MD_PORT}"
  85. [ -n "${MD_SOCKET}" ] && _add_opts "--socket ${MD_SOCKET}"
  86. [ -n "${MD_THREADS}" ] && _add_opts "--threads ${MD_THREADS}"
  87. [ -n "${MD_USER}" ] && _add_opts "--user ${MD_USER}"
  88. [ -n "${MD_PASSWORD}" ] && _add_opts "--password ${MD_PASSWORD}"
  89. [ -n "${MYDUMPER_OPTS}" ] && _add_opts ${MYDUMPER_OPTS}
  90.  
  91. if _yesno ${MD_COMPRESS}; then
  92. _add_opts "--compress"
  93. fi
  94. if _yesno ${MD_BINLOGS}; then
  95. _add_opts "--binlogs"
  96. fi
  97.  
  98. pre || die "Error: running pre() failed!"
  99. echo "_MYDUMPER_OPTS: ${_MYDUMPER_OPTS}"
  100. echo "REST: $*"
  101. #echo $MYDUMPER $_MYDUMPER_OPTS $*
  102. post || die "Error: running post() failed!"
Add Comment
Please, Sign In to add comment