カレンダーおよびスケジュール管理の iCal,パスワード管理のキーチェーン,Safari のブックマーク,そしてアドレスデータなどをインターネットを介して複数の Macintosh 間で同期を行う .Mac Sync.とても便利に使っていますが,その同期のタイミングが問題.
「".Mac Sync" 環境設定」から,「.Mac と同期:」という項目で同期のスケジューリングを設定するんだけど,「自動」「一時間ごと」,「一日ごと」,「一週間ごと」「手動」しかない.
本当は朝と夕方の指定時間にやりたい.
.Mac Sync の実行中に ps コマンドでプロセスを見てみると dotmacsyncclient っていうコマンドがあった:
/System/Library/CoreServices/dotmacsyncclient --sync com.apple.DotMacSync --entitynames com.apple.keychain.Internetpassword,com.apple.keychain.
/System/Library/CoreServices/dotmacsyncclient --help でいろいろ情報を見る事ができた.
Terminal.app から /System/Library/CoreServices/dotmacsyncclient --sync com.apple.DotMacSync --entitynames com.apple.keychain.Internetpassword,com.apple.keychain. って打ったら,同期が始まった.
つまりこのコマンドを決まった時間に実行すれば良いみたい.
一昔前なら,cron で実行するところだけど,Mac OS X 10.4 では,launchd ってのがある.それの設定を簡単に行うのが Lingon だ.
Lingon で File メニューから New を選び My Agent を作成する.GUI でいろいろ簡単に設定できるが,結果は plist の XML になる.その XML は Expert タブで見る事ができる..Mac Sync を毎日 10:00 に実行する場合はこんなんだ:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>.MacSync朝</string>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>/System/Library/CoreServices/dotmacsyncclient</string>
<key>ProgramArguments</key>
<array>
<string>--sync com.apple.DotMacSync --entitynames com.apple.keychain.Internetpassword,com.apple.keychain.</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>10</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
これをこのまま Expert で表示されている XML のところに上書きで貼付ければ,同じ設定になる.そのあとで,Basic タブや Miscellaneous タブを見れば,だいたい設定の仕方も分かると思う.
今,試しに設定してみたところだから,これでうまくかどうかは,これから確認.
そもそもの目的は,.Mac との同期を必要最低限の頻度にしたいということなので,とりあえず 「".Mac Sync" 環境設定」の「.Mac と同期:」という項目は「一日ごと」にしてみる. うまく行けば,環境設定側でのタイミングの他に,Lingon から設定したタイミングでも同期するはず.