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屋さんなら軽く用意できるかな、って感じです。
ガルパやりたい
— シリル@バンドリフレンズ (@d_cyrill1129) May 6, 2017