И еще один backup bash-скрипт для локального сохранения


Tagged , , , , ,

Сделан на основе предыдущего скрипта. Но служит исключительно для локального сохранения резервных копий. На этот раз реализована ротация, таким образом хранятся копии за 3 последних дня. +4 означает что будут удалятся файлы 4 и более дней давности.

#!/bin/bash

MYSQL_USER=root
MYSQL_PASS=password
MYSQL_DB=$2

BACKUP_DIR=$1

STORE_DIR=/backups
STORE_DIR_APP=${STORE_DIR}/app/
STORE_DIR_DB=${STORE_DIR}/db/


stat $BACKUP_DIR > /dev/null 2>&1
ISEXISTS=$?

if [ $ISEXISTS != 0 ];
then
        echo "File or directory not found"
        exit 1
fi

mkdir -p ${STORE_DIR_APP}
mkdir -p ${STORE_DIR_DB}

# Backup files
tar czf ${STORE_DIR_APP}/`basename $BACKUP_DIR`-`date +%Y.%m.%d_%H-%M`.tar.gz ${BACKUP_DIR}
echo "[`date +'%Y.%m.%d %H:%M'`] Directory was backuped"

# Backup db
if [ -z "$MYSQL_DB" ];
then
        echo "[`date +'%Y.%m.%d %H:%M'`] DB not set"
        echo "#####"
        exit 0
fi

mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | gzip > ${STORE_DIR_DB}/${MYSQL_DB}-`date +%Y.%m.%d_%H-%M`.sql.gz
echo "[`date +'%Y.%m.%d %H:%M'`] DB was backuped"
echo "#####"


### ROTATION APP (4+ will be deleted)
find ${STORE_DIR_APP} -maxdepth 1 -type f | sort -r | tail -n +4 | xargs rm > /dev/null 2>&1

### ROTATION DB (4+ will be deleted)
find ${STORE_DIR_DB} -maxdepth 1 -type f | sort -r | tail -n +4 | xargs rm > /dev/null 2>&1

Share:

No comments

RSS / trackback

Respond