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
33
34
35
36
37
38
39
40
41
42
43
44
  
#!/bin/bash
  
export DB_BACKUP="/data/mysql_dump/backups"
export DB_HOST='127.0.0.1'
export DB_PORT='3306'
export DB_USER="username"
export DB_PASSWORD="passworld"
export MYSQL="/usr/bin/mysql"
export MYSQLDUMP="/usr/bin/mysqldump"
#禁止备份的数据库名单,"|"分割
export NOT_DB="mysql|information_schema|performance_schema|sys"
  
$MYSQL --host=$DB_HOST --user=$DB_USER --password=$DB_PASSWORD --port=$DB_PORT -Bse 'select 1'
if [ $? -eq 0 ]; then
    echo "* Rotating backups..."
  
    rm -rf $DB_BACKUP/07
    mv $DB_BACKUP/06 $DB_BACKUP/07
    mv $DB_BACKUP/05 $DB_BACKUP/06
    mv $DB_BACKUP/04 $DB_BACKUP/05
    mv $DB_BACKUP/03 $DB_BACKUP/04
    mv $DB_BACKUP/02 $DB_BACKUP/03
    mv $DB_BACKUP/01 $DB_BACKUP/02
    mkdir -p $DB_BACKUP/01
  
    echo "* Creating new backup..."
  
    cd $DB_BACKUP/ && cd $DB_BACKUP/01 && $MYSQL --host=$DB_HOST --user=$DB_USER --password=$DB_PASSWORD --port=$DB_PORT -Bse 'show databases' | grep -v -E "^$NOT_DB$" while read m; \
    do
    echo $m
        $MYSQLDUMP --host=$DB_HOST --user=$DB_USER --password=$DB_PASSWORD --port=$DB_PORT `echo $m` | bzip2 > `echo $m`.sql.bz2; 
    done
    echo "Backup done! `date`" >> $DB_BACKUP/report.log
  
    exit 0
else
    echo "Wrong mysql user or password"
    exit 1
 
fi
 
 
  
---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。