2012/07/21

July 21, 2012 at 07:33AM



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 件のコメント:

コメントを投稿