Rackspace 云站点的备份解决方案?

Rackspace 云站点的备份解决方案?

我有哪些选项可以备份 Rackspace Cloud Sites 的内容(包括文件和数据库)?我知道他们有 cron 作业,但我不确定在这方面我有哪些选项。

以下是他们所支持的 cron 作业的一些内容

答案1

我使用两个脚本来备份我的 VPS(托管在 Linode 上,但同样可以在 Rackspace 上使用)。

首先,对于 mysql 备份,我使用自动mysql备份脚本。它负责转储数据库、压缩数据库,并维护备份文件的多个每日/每周/每月副本。它还可以通过电子邮件向您发送压缩的 .sql 转储。

对于一般的文件系统备份,我使用表里不一- 这可以使用许多不同的存储后端(ftp、scp、nfs 等),但我选择使用 Amazon S3 后端。Duplicity 将根据您的需要执行完整或增量备份。如果您愿意,它还将处理备份文件的压缩以及加密。

答案2

Rackspace 不允许 SSH 访问他们的云站点,所以我认为 Duplicity 将无法工作,除非你能说服他们安装它。

我们也在寻找解决方案,但最终构建了一个备份系统,该系统存档文件和 SQL 转储并将它们传输到 Rackspace Cloud Files,并命名和注明日期。该系统负责清理旧备份(我们保留各种每日/每周/每月备份),并作为专用 Drupal 安装上的模块工作。管理员会反馈每个备份的状态,并填充 Google 电子表格以提供概览。它还可以与 Rackspace 以外的任何站点一起使用,因为它使用 PHP 客户端来完成所有工作(将一个 PHP 脚本上传到要备份的站点,在管理 UI 上进行设置,主站点将负责所有调度/身份验证/等...)我们正在内部使用它,但如果有兴趣,可能会将其作为模块发布,所以请告诉我。

答案3

我知道的唯一方法是创建一个 cron 作业来备份您的数据和数据库,并让其使用 ftp 或任何您想要用于传输数据的方法。这是一个示例脚本。

#!/bin/sh
# System + MySQL backup script
# Full backup day - Sun (rest of the day do incremental backup)
# Copyright (c) 2005-2006 nixCraft 
# This script is licensed under GNU GPL version 2.0 or above
# Automatically generated by http://bash.cyberciti.biz/backup/wizard-ftp-script.php
# ---------------------------------------------------------------------
### System Setup ###
DIRS="/home /etc /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"
### MySQL Setup ###
MUSER="admin"
MPASS="mysqladminpassword"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
### FTP server Setup ###
FTPD="/home/vivek/incremental"
FTPU="vivek"
FTPP="ftppassword"
FTPS="208.111.11.2"
NCFTP="$(which ncftpput)"
### Other stuff ###
EMAILID="[email protected]"
### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :
### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
FTPD="/home/vivek/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<
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

答案4

使用 duplicity 在 rackscpace 云文件中进行备份的非常简单的脚本

http://github.com/contenidosonline/cloud-files-backup

相关内容