Резервное копирование VDS и выделенных серверов (Linux)

Выделенный сервер

Выделенный сервер

Арендуйте выделенный сервер в отказоустойчивом дата-центре

Смотреть конфигурации серверов

Ниже представлены две редакции скрипта для организации резервного копирования данных (бэкап) с VDS Linux. Обе версии один раз в неделю, по воскресеньям, создают полную копию всех данных и БД MySQL, а в остальные – только инкрементные архивы. Для автоматического запуска следует в диспетчер заданий cron добавить строку наподобие следующей:

10 0 * /root/bin/backup.sh >/dev/null 2>&1

Для работы скриптов необходимо, чтобы объем свободного места на диске в системе превышал размер копируемых данных.

Резервное копирование на сервер FTP

Первоначально присвойте значения нескольким переменным. DIRS – перечень каталогов через пробел для резервного копирования. MUSER и MPASS – данные администратора СУБД MySQL для подключения. FTPU и FTPP – данные пользователя для подключения к серверу FTP. FTPS – имя сервера FTP. EMAILID – адрес электронной почты, на который будут направляться отчеты об ошибках. Для корректной работы необходимо, чтобы в системе был установлен клиент ncftp:
#!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### FTP server Setup ###
FTPD="/backup/incremental"
FTPU="user"
FTPP="password"
FTPS="ftp1.sim-networks.com"
NCFTP="$(which ncftpput)"

### Other stuff ###
EMAILID="user@yourdomain.com"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
FTPD="/backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

### Dump backup using FTP ###
#Start FTP backup using ncftp
ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
lcd $BACKUP
mput
quit
EOF

### Find out if ftp backup failed or not ###
if [ "$?" == "0" ]; then
rm -f $BACKUP/

else
T=/tmp/backup.fail
echo "Date: $(date)">$T
echo "Hostname: $(hostname)" >>$T
echo "Backup failed" >>$T
mail -s "BACKUP FAILED" "$EMAILID" <$T
rm -f $T
fi

Колокейшн

Колокейшн

Узнайте, как разместить сервер в безопасных дата-центрах в Германии

Читать далее

Резервное копирование на локальный диск, сетевое хранилище NFS, iSCSI

Рассмотрим переменные, которые необходимо настроить. DIRS – перечень каталогов через пробел для резервного копирования. MUSER и MPASS – данные администратора СУБД MySQL для подключения. MNTD – каталог, в котором будет организовано хранилище резервных копий. Это может быть просто директория на локальном жестком диске, либо смонтированное в этой точке сетевое хранилище NFS или iSCSI: #!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### Datastore Setup ###
MNTD="/mnt"
DSD="backup/incremental"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
DSD="backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

mkdir -p $MNTD/$DSD/$NOW
mv -f $BACKUP/ $MNTD/$DSD/$NOW
rm -f $BACKUP/

Эта статья была полезной?

Тэги:

#server

Понравилась статья?

Согласие на использование файлов cookie

Нажимая «Я согласен», вы даете согласие на использование cookie, чтобы предоставить вам релевантный опыт. Посетите «Управление cookie», чтобы дать ограниченное согласие. Подробнее

Настройки файлов cookie

Функциональные

Необходимые файлы cookie имеют решающее значение для основных функций веб-сайта, и без них веб-сайт не будет работать должным образом.

Аналитические

Аналитические файлы cookie используются для понимания того, как посетители взаимодействуют с веб-сайтом.

Рекламные

Рекламные файлы cookie используются для предоставления посетителям релевантной рекламы и маркетинговых кампаний.