2013年5月15日

さくらのレンタルサーバ バックアップ設定(s3cmd)


photo credit: Marco Crupi Visual Artist via photopin cc

先日移転させたので、忘れないうちにバックアップの設定をします
全て Amazon S3 にバックアップします。利用するのはs3cmdです

Amazon S3でやったこと

・Access Keyを新たに作成
https://portal.aws.amazon.com/gp/aws/securityCredentials
・S3バケットも専用に作成

さくらのレンタルサーバにログイン

s3cmdをwgetでダウンロードします
https://github.com/s3tools/s3cmd/archive/master.zip

wget https://github.com/s3tools/s3cmd/archive/master.zip --no-check-certificate
unzip master.zip

ディレクトリ s3cmd-master ができるので
s3cmd --configureで設定します。
Access KeyとSecret Keyは先ほど作ったものを利用

% ./s3cmd-master/s3cmd --configure

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3
Access Key:
Secret Key:

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/local/bin/gpg]:

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]: yes

New settings:
Access Key:
Secret Key:
Encryption password:
Path to GPG program: /usr/local/bin/gpg
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)

Save settings? [y/N] y
Configuration saved to '/home/username/.s3cfg'


やることはEncryption passwordを決めることくらいでしょうか?
これでs3cmdを使う準備ができました

バックアップ用script

次にバックアップを作成してs3cmdで送信するスクリプト(backup.sh)
・バックアップ用ディレクトリをbackup(mkdir backup && chmod 700 backupするとよい)
・amazon s3 bucketネームは各自置き換えてください(S3BUCKET)
・amazon s3にバックアップを残す期間 7日なら 7dに(DAYS)
やっていることは www ディレクトリをtarで固めてS3に送っているだけです

#!/bin/sh

tarfile=`date +%Y%m%d`
USER=`whoami`

DAYS=30d
BACKUP='backup'
S3BUCKET='bucketname'

tar zcf $BACKUP/$tarfile.tar.gz ./www
chmod 600 $BACKUP/$tarfile.tar.gz
/home/$USER/s3cmd-master/s3cmd put -rr /home/$USER/$BACKUP/$tarfile.tar.gz s3://$S3BUCKET/$tarfile.tar.gz

oldtar=`date -j -v "-$DAYS" +%Y%m%d`
rm -f $BACKUP/$oldtar.tar.gz
/home/$USER/s3cmd-master/s3cmd del s3://$S3BUCKET/$oldtar.tar.gz


mysqlをdumpしてないのは更新してないためです

最後にcrontab -eで登録して完了です
例)毎日0時にバックアップを走らせる場合

# NAME: backup
0 0 * * * /home/username/backup.sh

バックアップは、移転完了後に設定しておくようにしています

関係がありそうなのは

ファーストサーバーの事故 法律解釈まとめ
http://kuni92.net/2012/07/post-88.html

ファーストサーバはベテランの人災でFAなのかな?
http://kuni92.net/2012/08/fa.html

スポンサーリンク



  • follow us in feedly