Browse Source

27.02.19:16.57 - Last version

master 5 years ago
parent
commit
ef37e8e9a6
2 changed files with 54 additions and 2 deletions
  1. 2 2
      README.md
  2. 52 0
      src/back_db.sh

+ 2 - 2
README.md

@@ -1,4 +1,4 @@
1 1
 # backupdb
2 2
 
3
-Скрипт на языке bash, для автоматизилованных backup баз данных.
4
-Поддерживаются базы: postgresql, mysql
3
+* Скрипт на языке bash, для автоматизилованных backup баз данных.
4
+* Поддерживаются базы: postgresql, mysql

+ 52 - 0
src/back_db.sh

@@ -0,0 +1,52 @@
1
+#!/bin/bash
2
+## only pgsql & mysql
3
+## the array database name
4
+DBDATA=( "base1" "base2" );
5
+## the array backup paths
6
+BACKPATH=( "/backup/db" "/backup/db" );
7
+## the array login for databases
8
+LOGINDB=( "dblogin1" "dblogin2" );
9
+## the array pass for databases
10
+PASSWDB=( "mypassdb1" "mypassdb2" );
11
+## the array type databases
12
+TYPEDB=( "pgsql" "mysql" )
13
+## log file
14
+LOG_FILE="/var/log/syslog.log";
15
+## messages
16
+MESS_OK="Резервное копирвание базы $DBNAME выполнено"; # Backup database $ DBNAME done
17
+MESS_FAIL="Ошибка резервного копирования базы $DBNAME"; # Backup database $ DBNAME error
18
+## intermediate values
19
+dbname="none";
20
+#########################################################
21
+function backDB() {
22
+for ((dbinx=0; dbinx != ${#DBDATA[@]}; dbinx++))
23
+    do
24
+    rdate=$(date +%d%m%y);
25
+    dbname=${DBDATA[$dbinx]};
26
+    rpath=${BACKPATH[$dbinx]};
27
+    dbtype=${TYPEDB[$dbinx]};
28
+    dblogin=${LOGINDB[$dbinx]}
29
+    dbpass=${PASSWDB[$dbinx]}
30
+    if [ "$dbtype" = "pgsql" ];
31
+     then
32
+	sudo -u postgres pg_dump -C $dbname > $rpath/$dbname"_"$rdate.sql
33
+	tar -cJf $rpath/$dbname"_"$rdate.tar.xz $rpath/$dbname"_"$rdate.sql;
34
+	rm $rpath/$dbname"_"$rdate.sql;
35
+	echo "$(date) -- backup pgbase $MESS_OK">>$LOG_FILE
36
+    fi
37
+    if [ "$dbtype" = "mysql" ];
38
+     then
39
+	mysqldump -u $dblogin -p$dbpass $dbname| gzip > $rpath/$dbname"_"$rdate.sql.gz
40
+	echo "$(date) -- backup mysqlbase $MESS_OK">>$LOG_FILE
41
+    fi
42
+done
43
+}
44
+
45
+if [ ! -d $BACKPATH ];
46
+     then
47
+	mkdir -p $BACKPATH;
48
+fi
49
+
50
+backDB;
51
+
52
+exit 0