なんかかきたい

プログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてます

HTTPでバックアップファイルを軽く配る

最近はバックアップファイルを配る時にHTTPを使っている。

クライアント側では curl を使って手軽に引っ張ってこれてそのまま tar に流して簡単に展開できて便利。

あとは scp だとCPUが貧弱なマシンだとやや使いづらい。

クライアント側からのアップロードをするには WebDAV を使う必要があって少し手間だけどその程度で一回用意すれば使い勝手はそこそこよい。

あとは Subversion と組み合わせるのとかも便利かな。いや、これはどっちでもいいか。

curl

curlでhttpリクエスト飛ばすだけでいいけど、バックアップサーバはHDDのようなストレージを乗せていて、 バックアップを取ってる時に復元しようとするとIO的にしんどいタイミングがある。

そういうタイミングは --limit-rate をつけてちょっとだけ優しくするとよい。

curl --limit-rate 100M http://backup.local/data.tar.gz | tar xzv

100M は何となく。シーケンシャルで取るならHDDでも100Mくらいは軽く出るけど、出ないときもあるのでその時はもっと優しくする。 あとは、 ionice しておくとか。ただサーバ側でつけるのは面倒だしクライアント側だけで完結する --limit-rate 程度が手間がなくていいかな。人力なのがちょっとだけ温かみがある。

rsync と scp

暗号化されてCPUが貧弱だと辛い時があるけど、一般にはよく使われる。 rsync はパスの指定で最後に / を付けるようにしているけどたまに忘れると面倒なことになる。 まあこれはどうでもいい。

あと、暗号化方式を軽くする時に -e "ssh -c arcfour" を入れるというテクニックもあったけど、 openssl のバージョンアップに伴って RC4 は使えなくなりつつある。

まとめ

HTTPサーバは apache とか nginx あたりを適当に使えばいいので作るのは簡単。 Web屋さんなら軽く用意できるかな、って感じです。