通过SSH和Linux Live进行networking服务器备份

昨天我的专用networking服务器由于硬件故障而崩溃。 它已被Leasewebreplace为另一台服务器。 这是相同的规格,但另一台服务器,所以需要重新安装。 这意味着我必须在重新安装之前做一些备份,因为它不能被克隆。

服务器现在使用GRML(Linux Live)启动,并通过SSH和SFTP访问。

什么是最好的办法来支持一切? 我不想错过任何东西。 我需要MySQL数据库,文件等。

有小费吗?

你可以将你的数据库本地转储到一个tar包中,并将它们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 

您将不得不修改shell中的一些数据,作为提示。

同样适用于你的数据(/ home等等),我的意思是使用rsync你的备份tarballs( rsync使用ssh )。 即使这些rsync可以在cronjob中进行pipe理,以便定期完成备份。

希望能帮助到你。

您可以使用tar通过SSH备份您的服务器的临时安装点:

 ssh youraccount@yourremoteserver "tar jcfp - /livemntpoint" > mybackup.tar.bz 

如果你想保持两个系统之间的用户/权限类似的设置,保留将允许你保持相同的userid / groupid。

rsync是备份文件的最佳方法。 如果有什么事情崩溃,再次启动rsync,它将从最后一个备份文件继续,而不是从一开始。

但在此之前,你必须备份你的数据库:)

有很多方法来备份您的网页文件和数据库,我个人build议您将服务器实例映射到一个良好的状态,假设您的托pipe服务提供商提供了这个function。 除此之外,看看是否允许你备份和encryption你的文件的副本。 您可以select将备份存储在本地文件存储,scp / ssh,ftp,rsync,HSI,WebDAV,Tahoe-LAFS和Amazon S3等。

我最近为一个使用Jenkins(主从)的客户端实现了这个function来pipe理这个工作,并在出现失败时发出通知。 我更喜欢这种方法,因为它允许我将备份作为工作来pipe理,而不是在每台服务器上使用cron。 如果你需要帮助像这样的实施让我知道。