Lucas Teske ревизій цього gist 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} | |
Новіше
Пізніше