Home > bash, Lab > bash script за бекъп (backup) на база данни

bash script за бекъп (backup) на база данни

В момента съм в процес на ъпгрейд на бекъп системата ми. Не се учудвайте ако видите нещо да е “не както трябва”, защото все пак цялата система е писана за лични нужди и скоро няма изгледи да бъде пусната за масово ползване.

За пореден път: авторите на блога не отговарят за щетите, които може да нанесете на системата си, използвайки и прилагайки статиите написани тук!

Ето го и скрипта 🙂

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
 
DBUSER="root"
DBPASS="password_here"
DIR="/home/blagomir/test/"
DUMP="/usr/bin/mysqldump"
 
 
DATABASES=`mysql -u $DBUSER -p$DBPASS -e"show databases"`
for b in $DATABASES ;
	do
	TABLES=`mysql -u $DBUSER -p$DBPASS -e"show tables from $b"`
 
	echo "=============================================="
	echo "Backup database $b"
 
	for t in $TABLES ;
	do
 
		VARIABLE="Tables_in_$b"
		if [[ "$VARIABLE" != $t ]];
		then
			echo "Backup table $b.$t"
			$DUMP -u $DBUSER -p$DBPASS --database $b --table $t > $DIR$b.$t.sql
		fi
 
	done
 
	echo "Done backup $b"
	echo "=============================================="
 
done
Categories: bash, Lab Tags:
Вижте всички статии от
Technology lover
Този автор е написал 156 статии

  • Лоша практика е да ползваш променливи, когато не ти трябват, консумират памет 🙂 в този скрипт спокойно можеш да махнеш $DATABASES, $TABLES, $VARIABLE
    И между другото е добре да добавяш дата към имената на файловете.
    Ако искаш, може да ползваш grep за да разкараш изобщо частта с $VARIABLE