Вчера мой выделенный веб-сервер упал из-за сбоя оборудования. Он был заменен другим сервером Leaseweb. Это те же характеристики, но другой сервер, поэтому его необходимо переустановить. Это означает, что я должен сделать несколько резервных копий, прежде чем он будет повторно установлен, поскольку его нельзя просто клонировать.
Теперь сервер загружен с помощью GRML (Linux Live), и у меня есть доступ к нему через SSH и SFTP.
Как лучше всего сделать резервную копию всего? Я не хочу ничего пропустить. Мне нужны базы данных MySQL, файлы и так далее.
Какие-нибудь советы?
вы можете сделать локальный дамп ваших баз данных в архив и rsync их на другой сервер, например:
#!/bin/sh
SNAPSHOT_DATE=`date '+%d%m%y_%Hh%M'`
LOCAL_TARBALLS=/tmp
# COMPRESSION MODE
GZIP="$(which gzip)"
[[ -z $GZIP ]] && aptitude -y install gzip # for Debian's like
GZ_COMPRESSION_LEVEL="-9" # 1=low compression but fast, -9=high compression but slow
# ##############
# MYSQL dump
# ##############
TARBALL="mysql"
# guess binary names
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
# do it Safe
[[ -z $MYSQL ]] || [[ -z $MYSQLDUMP ]] && echo "mysql commands not found" && exit 1
# mysql version
$MYSQL -V > $LOCAL_TARBALLS/$TARBALL/myql_version
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
# dump dbs and generate one tarball by database
for db in $DBS
do
FILE="$LOCAL_TARBALLS/$TARBALL/mysqldump_$db-$SNAPSHOT_DATE.sql"
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db > $FILE && $GZIP $GZ_COMPRESSION_LEVEL $FILE
done
# Or generate ONE dump for all databases
# FILE=$LOCAL_TARBALLS/$TARBALL/"mysql_dump".$SNAPSHOT_DATE".sql"
# $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS --all-databases > $FILE && $GZIP -9 $FILE
else
echo "Mysql: No backup of databases have been performed (because no or wrong credentials have been entered)"
fi
Вам нужно будет адаптировать некоторые данные в оболочке, указанные в качестве подсказки.
То же самое относится к вашим данным (/ home и т. Д.), Я имею в виду использование rsync ваши архивы резервных копий (rsync использует ssh). Даже эти rsync можно управлять в cronjob, чтобы резервное копирование выполнялось регулярно.
Надеюсь, поможет.
rsync - лучший способ сделать резервную копию ваших файлов. Если что-то выйдет из строя, запустите rsync снова, и он продолжит работу с последнего файла резервной копии, а не с начала.
Но перед этим нужно сделать резервную копию базы данных :)
Вы можете сделать резервную копию своей временной точки монтирования вашего сервера, используя tar через SSH:
ssh youraccount@yourremoteserver "tar jcfp - /livemntpoint" > mybackup.tar.bz
Сохранение позволит вам сохранить один и тот же идентификатор пользователя / группу, если вы хотите сохранить аналогичную настройку пользователей / разрешений между двумя системами.
Есть много способов сделать резервную копию ваших веб-файлов и вашей базы данных, лично я бы рекомендовал создать образ вашего экземпляра сервера в хорошем состоянии, если ваш хостинг-провайдер предлагает эту функцию. В дополнение к этому, взгляните на двуличие что позволяет делать резервные копии и шифровать файлы. У вас будет возможность хранить свои резервные копии в локальном файловом хранилище, поддерживаются scp / ssh, ftp, rsync, HSI, WebDAV, Tahoe-LAFS и Amazon S3 и другие.
Недавно я реализовал это для клиента, использующего Jenkins (главный и подчиненный) для управления заданием с уведомлением в случае сбоя. Я предпочитаю этот метод, поскольку он позволяет мне управлять резервными копиями как заданием, а не использовать cron на каждом отдельном сервере. Если вам когда-нибудь понадобится помощь с такой реализацией, дайте мне знать.