Skip to content

Commit 6bbac7d

Browse files
committed
sort databases alphabetically
- Sort databases alphabetically before looping through them - Excluded databases will no longer be analyzed or optimized
1 parent 51b7c79 commit 6bbac7d

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

mysqlbackup-plus.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,14 @@ if [ "$ANALYZE_OPTIMIZE_DB" = "YES" ] && [ "$CURRENT_WEEKDAY" -eq "$ANALYZE_OPTI
188188
MYSQL_CMD="$MYSQL --defaults-file=$HOME/.my.cnf -Bs"
189189

190190
# Get list of databases, excluding system databases
191-
CHECK_DATABASES=$($MYSQL_CMD -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');")
191+
CHECK_DATABASES=$($MYSQL_CMD -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');" | LC_ALL=C sort)
192+
193+
# Exclude any databases
194+
if [ -n "$EXCLUDE_DATABASES" ]; then
195+
for EXCLUDED_DB in $EXCLUDE_DATABASES; do
196+
CHECK_DATABASES=$(echo "$CHECK_DATABASES" | grep -v -E "(^| )$EXCLUDED_DB( |$)")
197+
done
198+
fi
192199

193200
printf "Start analyzing or optimizing databases\n\n"
194201

@@ -236,14 +243,16 @@ printf "%s\n" "========================================"
236243

237244
# If ALL is set, fetch all databases
238245
if [ "$DATABASES" = "ALL" ]; then
239-
DATABASES=$($MYSQL --defaults-file="$HOME/.my.cnf" -e "SHOW DATABASES;" | sed '1d' | grep -v -E "information_schema|performance_schema|mysql|sys")
246+
DATABASES=$($MYSQL --defaults-file="$HOME/.my.cnf" -e "SHOW DATABASES;" | sed '1d' | grep -v -E "information_schema|performance_schema|mysql|sys" | LC_ALL=C sort)
240247

241248
# Exclude any databases
242249
if [ -n "$EXCLUDE_DATABASES" ]; then
243250
for EXCLUDED_DB in $EXCLUDE_DATABASES; do
244251
DATABASES=$(echo "$DATABASES" | grep -v -E "(^| )$EXCLUDED_DB( |$)")
245252
done
246253
fi
254+
else
255+
DATABASES=$(echo "$DATABASES" | tr ' ' '\n' | LC_ALL=C sort | tr '\n' ' ')
247256
fi
248257

249258
# Loop through the databases

0 commit comments

Comments
 (0)