さくらインターネット共有サーバ専用バックアップスクリプト
さくらです♡こんばんわ☆彡
ちょっと前にさくらインターネットで稼働中の鯖を撤去するとかふざけたミスがあったでしょ。幸いさくらはトラブルに巻き込まれなかったんだけど、何か起こる前にバックアップをしなきゃと思ったのね。なんで今日はさくらインターネットの共有サーバ専用バックアップスクリプトを作ってみました!!
とりあえずスクリプトはこっからダウンロードできまふw
シェルスクリプトでっすww
いつも通りの MIT ライセンスだから煮るなり焼くなり好きにしてもらって構わないわよ〜
設定
スクリプトをダウンロードしたら、まずサーバの設定をスクリプトに書き込むの。ファイルをエディタで開いて以下のあたりを編集してね。ちなみにスクリプトの文字コードは ISO-2022-JP になってるから、メモ帳とかで開いたら文字化けすると思うわよ。
# バックアップファイル名。 # デフォルトは backup-YYYY-MM-DD.tar.gz になってます。 BACKUP_FILENAME="backup-`date '+%Y-%m-%d'`.tar.gz" # バックアップ対象のディレクトリとかファイルとか。 BACKUP_TARGETS="www" # MySQL のバックアップをするなら yes、しないなら no。 MYSQLDUMP="yes" # MySQL アカウント。上からユーザ名、パスワード、ホスト名、データベース名れす。 # 大文字部分を自分のアカウントのに変えてね。 MYSQLDUMP_USER="USERNAME" MYSQLDUMP_PASSWORD="PASSWORD" MYSQLDUMP_HOST="HOSTNAME" MYSQLDUMP_DBNAME="DBNAME" # MySQL のバックアップファイル名。 # 最終的にこのファイルも BACKUP_FILENAME にバックアップされますので # 一時ファイル名みたいなものと思ってください。 MYSQLDUMP_FILENAME="mysql.dump" # mysqldump コマンド。 # MySQL4 を使ってる場合は mysqldump-4.0 に変更すること。 MYSQLDUMP_COMMAND="/usr/local/bin/mysqldump"
とりあえず設定しないといけないのは MySQL 関係の部分ね。一応さくらも WordPress 使ってるんで MySQL のバックアップをデフォルトで有効にしてあるの。そのままで良かったら MySQL のアカウントを設定してね。MySQL のバックアップが不要なら MYSQLDUMP=”no” に変えるだけで (アカウントとかは設定しなくて) OK よ。
自分でプログラムをインスコしてる人は BACKUP_TARGETS に適当にディレクトリとかファイルを足してもらったら、それもバックアップ対象になるわ。
設定が終わったらサーバの適当なディレクトリにアップロードしてね。vi とか使える人は先にアップしてからサーバ上で設定してもらってもいいわよ。とりあえず $HOME/sakurabackup.sh に置いたということで話を進めるわね。
バックアップ
ファイルをアップしたら ssh か telnet でサーバにログインしてスクリプトを実行するの。
$ nice sh sakurabackup.sh
これで BACKUP_FILENAME (デフォルトだと backup-YYYY-MM-DD.tar.gz) にバックアップファイルが出来上がるわ。後は sftp か ftp でバックアップファイルをダウンロードしたらバックアップ完了よ。
データ量にもよりますが、全部で5分程度の簡単なお仕事ですwww
あと一つ注意しとくけど、それなりに重いから注意っていうかちゃんと見ながら動かした方がいいと思うわよ。
リストア
tar と mysqldump でバックアップファイル作ってるだけだから、$HOME でバックアップファイルを展開して、mysql でダンプを戻せばリストアできるはずよ。
$ tar xvzf backup-2009-05-29.tar.gz $ mysql DBNAME < mysql.dump
はずっていうのは、サーバの設定とかがバックアップ時と同じならこれで戻るって意味。サーバが飛んだ時はたぶんサーバの一部が前と変わってるだろうから、自分で環境を色々いじくってる人は簡単には戻らないと考えといた方がいいと思うわよ。
いずれにしてもちゃんと戻ってるか確認しつつ作業する必要があるわね。そういう意味では今回説明した方法は、*NIX とか MySQL の基本的な操作方法を知ってる人向けかもね。でもバックアップなんてそんなものよ。やり方分かんなかったらサーバの使い方を覚えるか、もっと良さげなツールを自分で探すか、お金払って誰かにやってもらうことねww
さくら