lftp でサイトをバックアップして pdumpfs でスナップショットをとる

お仕事で使うのでちょっと実験。

事の発端は・・・
現在、複数人でサイトの更新をしているが、個々にやってるからデグレードが起きたりする。
このへんはコミュニケーションをちゃんととったとしても、人間なのでミスるんだから、
そうならないような更新の仕組みを考えているところ。

で、今、最も恐しいことは、最新のデータがサーバー上にあがっているものだけしかないということ。
つまりは、ミスってファイル消したら、誰も持っていない!? ということが起こりうる。
ひっじょーにおっかない。RAID にしてたって、自分で消したら無くなるし。

作業をする前に全部のデータをダウンロードするのは、時間かかりすぎるのでむずかしい。
なぜかというと、サーバーの時間が大幅に狂っているので どれが新しいのかわからないんだ。
直してほしいのだが、こっちで管理してないのと、大人の事情で一筋縄ではいかなそうでねorz。

当然社内に git や svn リポジトリを作って〜という事も考えているけど、すぐには無理。
サーバー側で生成しているものもある。
あと、誰もやってくれなそうだからうちがやることになるだろうってのと、
社内サーバーたてるとっから始まるし、どのツールをどうやって組みあわせていくかをまだ考え中。
あと、手順も考えたりと、先は長い。

ん〜・・・正攻法でいくには時間がかかる。
が、サイト群の構成がぐっちゃんぐっちゃんな為、
今すぐ保険をかけとかないと恐すぎる!

というわけで、まず1日1回 全サイトのデータをバックアップをとろう!と。
で、ミスがすぐに発見されるとは限らないので、ちゃんとその日その日でとっておかないとマズイ。あと、当然自動で。
しばらくは、何かあったら redmine につけてる作業ログから判断し、修正することで逃げる。

そしたら、どうやるか。
まず ftp でサイトのデータをダウンロードしなくちゃ。
rsync や git は使えないから lftp で。
lftp の mirror コマンドで一発ダウンロードできて便利。
あと、lftp -f をつかうと、lftp のコマンドをスクリプトファイルに出せるので、
ps ax したときに ID PASS 丸見え! という恐ろしい事態は避けられそう。
ま、そのスクリプトファイルは、自分しか見えないようにしておかないとマズいんだけど。

で、落としたデータをまたスナップショットをとりながらバックアップは、pdumpfs。
ハードリンクなので、途中をゴソっト抜いても大丈夫

そして、こいつらを毎日 cron で回すと、一応目標達成。

あと、このサイト群には個人情報は無いハズなので、
暗号化についてはとりあえずしなくて平気かな。

そろそろ寝ないと明日死にそうなので、また明日。