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