Последняя активность 1 month ago

MySQL Backup Script

Lucas Teske ревизий этого фрагмента 12 years ago. К ревизии

1 file changed, 51 insertions

mysql.sh(файл создан)

@@ -0,0 +1,51 @@
1 + #!/bin/bash
2 + LOCKFILE=/tmp/bkpmysql
3 + if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`
4 + then
5 + echo "Já rodando!"
6 + exit
7 + fi
8 +
9 + trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
10 + echo $$ > ${LOCKFILE}
11 +
12 + DB_USER='usuario'
13 + DB_PASS='senha'
14 + DB_PARAM='--all-databases --add-drop-table --add-locks --extended-insert --single-transaction -quick'
15 +
16 + DESTINO=/dados/backup/data/mysql/
17 + TMPDESTINO=/dados/backup/tmp/mysql/
18 + NOME=auto
19 + QTDE=5
20 + CONTADOR=0
21 + PLATFORM=$(uname)
22 + PARSIZE=100m
23 +
24 + if [ ! -d $DESTINO ]; then
25 + mkdir $DESTINO
26 + fi
27 + ULTIMO_BACKUP=`find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | head -n 1`
28 + find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | tail -n +`expr $QTDE + 1` | while read antigo; do
29 + rm -rf "$antigo"
30 + done
31 + ID=`date +%Y-%m-%d-%H-%M-%S`
32 + BACKUP_ATUAL="$DESTINO/$NOME.$ID"
33 + echo "- Criando pasta $BACKUP_ATUAL"
34 + mkdir $BACKUP_ATUAL
35 + if [ "$ULTIMO_BACKUP" != "" ]; then
36 + echo "- Copiando pasta $ULTIMO_BACKUP para $BACKUP_ATUAL"
37 + if [ "$PLATFORM" == "FreeBSD" ]; then
38 + pasta=$(pwd)
39 + cd $ULTIMO_BACKUP
40 + pax -rwl -pe . $BACKUP_ATUAL
41 + cd $pasta
42 + fi
43 + fi
44 +
45 + echo "- Efetuando Backup do MySQL para $TMPDESTINO"
46 + mysqldump $DB_PARAM -u $DB_USER -p$DB_PASS > $TMPDESTINO/mysql.sql
47 + echo "- Compactando $TMPDESTINO para $BACKUP_ATUAL com partes de tamanho $PARSIZE"
48 + tar cz $TMPDESTINO/* | split -b $PARSIZE - $BACKUP_ATUAL/mysql.tar.gz
49 + echo "- Limpando $TMPDESTINO"
50 + rm -fr $TMPDESTINO/*
51 + rm -f ${LOCKFILE}
Новее Позже