データの同期と管理
英語でプレイしている原神でわからない言い回しをメモしていたファイルが消えてしまいました。「なんとなく動いているからいいや」と思いながらてきとうにrsyncで同期していたのが原因です。こうなる予感はしつつも、後回しにしていたらこれです。バックアップも取らなきゃと思いながらも、こっちも後回しにしていました。運用がてきとうだったというのもあるかもしれません。レンタルサーバ上のファイルがprimaryという認識は持ちつつも、パソコンにコピーしてきたファイルをディレクトリごといじったりしたものをrsync -av --deleteで反映させたりしていましたから。消えてしまったものはしかたがないので、今からちゃんとやりましょう。なぜ消えたのかの追求はめんどうなのでパスします。
まずレンタルサーバにあるファイルをprimaryとします。他のものは全部コピーです。そしてiPhoneの LiquidLogicから直接変更するのは基本の機能とします。iPhoneのローカルにコピーするという運用も考えられますが、ちょこちょこメモしたものをいちいち同期するのはめんどうです。
もう一つのアクセス方法はパソコンからです。そのうちLinuxに移行しようと思っているのですが、現状はWindowsなので、今の状況のみを考慮することにします。基本的にrsyncで同期したものをCygwin Terminal上のtmuxでvimで編集しています。sshでレンタルサーバにアクセスして直接変更してもよいのですが、タイムアウトして接続が切れるとめんどうなんですよね。
で、今回はrsyncでローカルにコピーしてファイル内容の変更だけではなく、移動削除を気楽にやってアップロードして反映したために消えてしまったと思われます。細かい原因は追及していないのでわかりませんが。
取るべき対策として、ファイルが消えないようにするのと、不具合が起きたときに原因がわかるようにするという2つがあると思います。
前者の対策としては、ファイルの移動などはsshでアクセスして、レンタルサーバ上のファイルを直接変更するようにするぐらいでしょうか?rsyncの--deleteを使わなければ消える心配が減りますので。抜本的な対策をするならばバージョンコントロールシステムの導入でしょうか?でも、あまりめんどうなのは勘弁願いたいところです。
簡易的なバージョンコントロールとしてはDropboxの利用があると思います。変更履歴が追えたり、消えたファイルの復活ができたりして便利です。今これを採用していないのは、メインであるさくらのレンタルサーバからアクセスできないからです。いったんパソコンに持ってきてからDropboxという手順が必要になるんですよね。なので採用しなかったんですが、細かくDropboxにバックアップを取ることで簡易的なバージョンコントロールをするのは有用な気がします。今回も、そうしていればファイルを復活できたでしょう。導入予定のArchLinuxからもDropboxは利用できるみたいですし。
もう一つの「不具合が起きたときに原因がわかるようにする方法」ですが、これはrsyncのログを取っておくぐらいでしょうか?もしかしてファイルの移動や消去はrsyncの--deleteを積極的に使ったほうがログが残って良いでしょうか?
コメント
コメントを投稿