読者です 読者をやめる 読者になる 読者になる

無趣味な人

生まれてこの方、無趣味。ハマったものこれといって特になし。

MACでSyncDifferentの挙動がおかしい。NASとフォルダを同期していたのだが…

PC周りや開発環境に関する小技

しばらく、SyncDifferentというフリーのアプリを使ってNASへ作業ファイルをバックアップしていた。 でも、挙動がおかしかったので今は使うのは止めた。

環境だが、MAC側のOS X バージョンは10.9.2で、NASはQNAP Turbo NAS。 SMBで接続している。 バックアップが目的なのでMAC側からNAS側への一方向で同期していた。

ある日、Syncdifferentが同期の実行中にそのログをボケーッと見ていた。 ほとんどファイルを変更していないので、すぐに終わるのだろうと思っていた。 しかし、フル回転で同期を実行していた。 なかなか終わらない。 中身をよく見ると、更新した覚えのないファイル群をNASへ上書きしまくっていた。 ひょっとして、全部を上書きしちゃってるのかと思い調べてみた。

原因はファイルの更新日時の不一致だった。  以下のような動きをしていた。例はファイルAをローカルで更新したときの挙動だ。

  1. ローカルでファイルAが変更された。
  2. SyncdifferentがファイルAの変更をNAS側に反映するためコピーする。この時にNAS側のファイルの更新日時が、このコピーした時間に変更されてしまう。
  3. 次回、SyncdifferentがファイルAをチェック。
  4. SyncDifferent「あっ、更新日時が不一致だ。ちゃんと合わせなきゃ」とNAS側へファイルをコピー。この時にまたこのコピーした時間に更新日時が変更されてしまう。
  5. 次回、SyncdifferentがファイルAをチェック。
  6. 「あっ、更新日時が不一致だ。ちゃんと合わせなきゃ」とNAS側へファイルをコピー。

と言った形で以降ループで上書きし続けてしまっていた。

今は、SynKronというアプリを使っている。上記のファイル更新日時がおかしくなるという問題はない。 しかし、起動のたびに「ネットワーク受信接続を許可しますか」と警告されてしまう。 これを表示しない方法を調べ出したらまたドツボにはまってしまった。 NASとフォルダを同期したいだけなのに、なかなかいいのに出会えない。