1 |
jpp |
1.1 |
diff -Nur e-smith-mysql-2.6.0.old/root/etc/e-smith/events/actions/mysql-dump-tables e-smith-mysql-2.6.0/root/etc/e-smith/events/actions/mysql-dump-tables |
2 |
|
|
--- e-smith-mysql-2.6.0.old/root/etc/e-smith/events/actions/mysql-dump-tables 2021-01-27 14:37:21.692000000 -0500 |
3 |
|
|
+++ e-smith-mysql-2.6.0/root/etc/e-smith/events/actions/mysql-dump-tables 2021-01-27 14:43:58.451000000 -0500 |
4 |
|
|
@@ -1,6 +1,35 @@ |
5 |
|
|
#!/bin/sh |
6 |
|
|
|
7 |
|
|
status=$(/sbin/e-smith/config getprop mariadb status) |
8 |
|
|
+fixtables=$(/sbin/e-smith/config getprop mariadb autofixtables || echo "disabled") |
9 |
|
|
+if [ "$fixtables" = "enabled" ]; then |
10 |
|
|
+ /sbin/e-smith/config delprop mariadb failsbackup |
11 |
|
|
+fi |
12 |
|
|
+failsbackup=$(/sbin/e-smith/config getprop mariadb failsbackup || echo "disabled") |
13 |
|
|
+ |
14 |
|
|
+ |
15 |
|
|
+onfailure () { |
16 |
|
|
+ db=$1 |
17 |
|
|
+ message="" |
18 |
|
|
+ if [ "$failsbackup" = "enabled" ]; then |
19 |
|
|
+ exit 1; |
20 |
|
|
+ message="There was an error trying to dump database $db, please fix this db. We stop there without backups." |
21 |
|
|
+ echo $message |
22 |
|
|
+ echo $message | /usr/bin/mail -s "error on backup of $db MariaDB database" admin |
23 |
|
|
+ fi |
24 |
|
|
+ message="$message \nThere was an error trying to dump database $db, please check for table errors in this db. Forcing a backup of the corrupted DB." |
25 |
|
|
+ mysqldump --force --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db"-failed.dump || message="$message \nFailed to force backup of corrupted db $db as $db-failed.dump" >&2 |
26 |
|
|
+ if [ "$fixtables" = "enabled" ]; then |
27 |
|
|
+ repair="failure" |
28 |
|
|
+ message="$message \nTrying to auto-repair the db and do a backup after..." |
29 |
|
|
+ mysqlcheck -s --auto-repair -c "$db" && \ |
30 |
|
|
+ mysqldump --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump && repair="success" |
31 |
|
|
+ message="$message \n => $repair" |
32 |
|
|
+ fi |
33 |
|
|
+ echo $message |
34 |
|
|
+ echo $message | /usr/bin/mail -s "error on backup of $db MariaDB database" admin |
35 |
|
|
+} |
36 |
|
|
+ |
37 |
|
|
if [ "$status" = "disabled" ] |
38 |
|
|
then |
39 |
|
|
echo "mysqld is disabled - no tables dumped" >&2 |
40 |
|
|
@@ -8,5 +37,5 @@ |
41 |
|
|
fi |
42 |
|
|
for db in $(mysql -BNre "show databases;"|egrep -vi "^information_schema$|^performance_schema$") |
43 |
|
|
do |
44 |
|
|
- mysqldump --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump || exit 1 |
45 |
|
|
+ mysqldump --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump || onfailure $db |
46 |
|
|
done |