Сделан на основе предыдущего скрипта. Но служит исключительно для локального сохранения резервных копий. На этот раз реализована ротация, таким образом хранятся копии за 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


No comments
RSS / trackback