2012-05-11 3 views

答えて

3

1つの可能な解決策(bashで)。

[email protected]_server:/remote/backup/path/ 
SITE_ROOT=/path/to/your/site/ 

cd "$SITE_ROOT" 
now=$(date +%Y%m%d%H%M) 
tar -cvzf /tmp/yoursite.$now.tar.gz . 
scp /tmp/yoursite.$now.tar.gz "$BACKUP_SERVER_PATH" 

権限(docrootへの読み取りアクセス)とリモートサーバー(scp用)へのsshアクセスを考慮する必要があります。

これは本当に多くの方法があることに注意してください。別の方法として、圧縮されていないバージョンのサイトを格納しても構わない場合は、rsyncを使用することです。

1

TimothéeGroleauが提供する答えはうまくいくはずですが、私のバックアップマシン(利用可能なストレージが多いサーバー)から他のすべてのサーバーをバックアップするプロセスを起動します。

192.168.44.34 userfoo /var/www/foosites 
192.168.44.35 userbar /var/www/barsites 
/usr/local/etc/backupservers.conf:

は、私の環境では、私はすべてのサーバー、各サーバーの有効なユーザーおよびバックアップへのパスを一覧表示し、設定ファイルを使用します

は/ usr/local/sbinに/ backupservers

#!/bin/sh 
CONFFILE=/usr/local/etc/backupservers.conf 
SSH=`which ssh` 

if [ ! -r "$CONFFILE" ] 
then 
    echo "$CONFFILE not readable" >&2 
    exit 1 
fi 

if [ ! -w "/var/backups" ] 
then 
    echo "/var/backups is not writable" >&2 
    exit 1 
fi 

while read host user path 
do 
    file="/var/backups/`date +%Y-%m-%d`.$host.$user.tar.bz2" 
    touch $file 
    chmod 600 $file 
    ssh [email protected]$host tar jc $path > $file 
done 

これはCORRを機能させるにはあなたはSSH鍵を交換する必要があるバックアップするすべてのサーバのパスワードを入力する必要はありません(これを行う方法については、stackoverflowに関する多くの質問/回答があります)。

そして、最後のステップは、各夜プロセスを起動するためにcronにこれを追加することです:

は/ etc/crontabの

0 2 * * * backupuser /usr/local/sbin/backupservers 
関連する問題