Mac OS Xでディレクトリ同期

2018年2月25日

この記事は最初の投稿日から14年経過しています。内容が古い可能性があります。

結局、UNIXな方法が一番良いみたいです。

ローカルディスクとNASの間でディレクトリ同期を行う必要があるので、GUIの同期ツールを探してましたが、結局OSにはじめから入っているrsyncを使っています。

以下のようなシェルスクリプトを作成し、親スクリプトで引数に対象ディレクトリをつけてこれを呼び出しています。

注意)以下ではrsyncに’–delete’オプションをつけていますが、このオプションをつけている時にコピー元のディレクトリを間違えて指定するとコピー先のディレクトリがごっそり削除されてしまいます。十分確認の上で実行する必要があります。
また、すべての動作パターンで正常に動作するかどうか網羅的な確認は行っていませんので、ご自身でスクリプトの内容を確認の上実行してください。

2010/11/27追記
引数が2個指定されているかどうかチェックする処理を追加しました。
また、このスクリプトだとスペースを含むディレクトリを指定しても動作しません。

#!/bin/shFROM=$1TO=$2if[$#-ne2];thenecho 引数が足りません.exitfiecho$FROM to $TOif[-d$FROM-a-d$TO];then
rsync -av -P --delete $FROM/ $TOelseecho ディレクトリが存在しません.fi#echo$'\a\a\a'

呼び出す側の親スクリプトは、こんな感じにて。

#!/bin/sh
./myrsync.sh from-path to-path

今のところの課題は、転送先のNASのマウントを自動でできないという点です。未マウントであれば自動的にマウントできれば良いのですが、まだ方法がわかりません。

Mac

Posted by toshyon