AppleScriptで外付けHDDの接続を検知して自動で双方向同期する方法.
外付けHDDの接続状態を1時間毎にチェックして,
接続された時にunisonというコマンドを使って双方向同期するAppleScriptを書いた.
スクリプトエディタで以下を書いて,
保存時にファイルフォーマットをアプリケーションにし,
「実行後,自動的に終了しない」にチェックを入れれば使える.
<同期元のフォルダのパス>と<HDD名>は要書き換え.
global Connection
set Connection to "Offline"
on idle
try
set FileAlias to alias "<HDD名>:"
if Connection = "Offline" then
tell application "Terminal"
do script with command "unison <同期元のフォルダのパス>/ /Volumes/<HDD名>/SyncFolder/ -times -prefer newer -owner -batch && echo '---同期終了---'"
end tell
end if
set Connection to "Online"
on error
set Connection to "Offline"
end try
return 3600
end idle
unisonコマンドはMacPortsで
sudo port install unison
などとすればすぐ使える.
詳しい使い方は以下を参照.
http://d.hatena.ne.jp/oxon/20120415/1334466160
Unison を使って実現する大量データの双方向同期 - 宇宙線実験の覚え書き
1. 実現したい事 数百 GB から数 TB に及ぶ大量のデータを、複数の計算機環境で Dropbox のように同期した..
Original post on Google+
0 件のコメント:
コメントを投稿