Скрипт резервного копирования vps серверов

Опубликовано:

Очень подходит для небольших vps. Заточен для Ubuntu, но думаю, это не проблема.

Скрипт создает 2 архива: в одном файлы, в другом директория с дампами всей БД по базам.
Нужно поменять настройки в начале.

#!/bin/bash

USER=root  #юзер базы данных
PASSWORD=password  #пароль
BACKUP=/media/Backup  #куда сохранять бэкапы
LOG=/var/log  # директория для чистки старых логов
OLD=30  # сколько дней хранить бэкапы (более старые будет удаляться)
PREFIX=work  # если несколько серверов - используйте разные префиксы, чтобы не путаться
DATE=`date '+%Y-%m-%d'`

echo "Backup database to $BACKUP"
mkdir $BACKUP/$DATE.sql
cd $BACKUP/$DATE.sql
    for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | grep -v information_schema | grep -v Database`;
        do mysqldump -u $USER -p$PASSWORD $i > $DATE-$i.sql;
    done

cd ..
tar -cjf $BACKUP/$DATE-sql-$PREFIX.tar.bz2 ./$DATE.sql
rm -rf ./$DATE.sql

echo "Backup files to $BACKUP"
tar -cjf $BACKUP/$DATE-files-$PREFIX.tar.bz2
    /var/www/
    /etc/
    /var/log/
    /root/
    --exclude=$BACKUP
echo "Deleting old backups and logs from $BACKUP & $LOG"
find $LOG -type f ( -name "*.gz" -o -name "*.1*" ) -exec rm '{}' ;
find $BACKUP -mtime +$OLD -exec rm '{}' ;

Понравилась статья, расскажи о ней друзьям, нажми кнопку!