sitecopyを使ったサイトの同期

ちょっと前にレンタルサーバのデータ消失事件などがありましたが…

自前でサーバを運用でもしていないかぎり、やはりそこは生命線(^_^;)

 

いざという時の為の備えはやはり必要だよね、と思うわけです。

 

そんな訳で、FTPなどでごっそりファイルを拾ってきて、ローカルにバックアップしておけば、後はTimeMachineが上手いことやってくれると思ったので、そんな感じで手順を考えてみることに( ´ ▽ ` )ノ

ここで、なんか良さそうなソフトウェアなどは見つからず…

やむなくsitecopyを使う事に( ´ ▽ ` )ノ

# 10年くらい前から存在を知っていた(というか使っていた)ので、大丈夫か?というくらいに枯れている事はわかっていたw

 

まずはインストール

MacPortを探してみたらあったので、それで簡単にインストールしてしまうことに( ´ ▽ ` )ノ

$ sudo port install sitecopy
--->  Computing dependencies for sitecopy
--->  Dependencies to be installed: neon
--->  Fetching archive for neon
--->  Attempting to fetch neon-0.29.6_1.darwin_11.x86_64.tbz2 from http://packages.macports.org/neon
--->  Attempting to fetch neon-0.29.6_1.darwin_11.x86_64.tbz2.rmd160 from http://packages.macports.org/neon
--->  Installing neon @0.29.6_1
--->  Activating neon @0.29.6_1
--->  Cleaning neon
--->  Fetching archive for sitecopy
--->  Attempting to fetch sitecopy-0.16.6_1.darwin_11.x86_64.tbz2 from http://packages.macports.org/sitecopy
--->  Fetching distfiles for sitecopy
--->  Attempting to fetch sitecopy-0.16.6.tar.gz from http://distfiles.macports.org/sitecopy
--->  Verifying checksum(s) for sitecopy
--->  Extracting sitecopy
--->  Applying patches to sitecopy
--->  Configuring sitecopy
--->  Building sitecopy
--->  Staging sitecopy into destroot
--->  Installing sitecopy @0.16.6_1
--->  Activating sitecopy @0.16.6_1
--->  Cleaning sitecopy
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.

portが使える環境にあれば、難しい事は何もありません(^_^;)

 

必要な環境の準備

とりあえずまずは必要な物を用意するだけしておきましょう。

$ mkdir ~/.sitecopy      # DBディレクトリ作成
$ touch ~/.sitecopyrc    # 設定ファイル作成
$ chmod 0700 ~/.sitecopy    # 他のユーザから見えない様に
$ chmod 0600 ~/.sitecopyrc  # 同上

同期の為のデータベースなどを保持するディレクトリ(~/.sitecopy)と、設定ファイル(~/.sitecopyrc)を作成しておきます。

共に、読み取り可能属性にしておかないとsitecopyが動作してくれないので、先にこれだけ設定しておきます( ´ ▽ ` )ノ

 

設定ファイルの編集

ファイルが出来たら、その中身の編集です。

$ vi ~/.sitecopyrc
$ cat ~/.sitecopyrc 
site sixcore
    server ftp.example.org
    protocol ftp
    username user
    password pass
    remote ~/
    local ~/Backup/Sixcore
    url http://www.ksworks.org/
    permissions all

面倒なのでviとかでやっちゃったのですが、viに使い慣れてない方は、普通にテキストエディタなどで編集することも出来るはず( ´ ▽ ` )ノ

設定内容については、適時ご自分の環境に合わせて server/username/password などの編集が必要になります。

 

いざ、ファイルのコピー__ \ノ’∀ン ヒャッホウ

設定関連が出来たら、後は実際にファイルを拾って来るのみです。

$ mkdir ~/Backup/Sixcore # 設定ファイルで local に設定したダウンロード先を指定
$ sitecopy -af # 先にファイル一覧を取得
(略)
sitecopy: ファイルの一覧取得に成功しました。
$ sitecopy -as # 実際にファイルをダウンロード
(略)
sitecopy: ダウンロードに成功しました。

最初、sitecopy -asの実行時に、ローカル側にディレクトリが無いので、作成途中で何度も失敗していました(^_^;)

なので、完全に成功するまで、何度もリトライw

※注意:もし間違えて「何も無いローカルのファイルで、リモートのファイルを上書き」などしてしまうと大変危険な事になるので、実行時のコマンドのパラメータについては注意してください。もし、サイトのデータ全部消えた…とかなってしまったも、当方では責任を負えませんorz

 

ついでに自動化

ここまでやっておけば、後はcronなどで自動的に更新される様にしておけば、以後心配することはありません( ´ ▽ ` )ノ

自宅に居るときだけスクリプトを動作させる - ksworks.org
さて、先日sitecopyで同期する方法を実装した訳ですが…自宅に居るときだけ同期するようにしてみました。

[2012-07-15追記] cronの登録方法は別記事にしましたので、そちらのリンクに差し替えます

 

よし、これでちょっと懸念事項がまた一つ減った( ´ ▽ ` )ノ