Shammer's Philosophy

My private adversaria

Mac OS X での rsync コマンド

同じ rsync コマンドなのに OS によって微妙にオプションとかが異なるので・・・例によってメモ。Mac では以下のようにすればできた。

rsync -avu -e "ssh -p $SSH_PORT_NUMBER" $SOURCE_DIRECTORY $REMOTE_USER@$REMOTE_HOST:$TARGET_DIRECTORY

ここで指定する ssh のポートオプションは小文字だった。コマンドの時とは違うのがややこしい。
EmacsSKK の辞書を Google Drive を使ってひとまとめにしたいと思っていたが、実際にやってみるとすぐに壊れてしまうことがわかった。なので、SSHアクセス可能なレンタルサーバでこれをやることにした。SKK の辞書は、~/.emacs.d/share/skk/ 以下に保存されているので、上記は具体的には以下のようになる。

rsync -avu -e "ssh -p $SSH_PORT_NUMBER" ~/.emacs.d/share/skk/ $REMOTE_USER@$REMOTE_HOST:.emacs.d/share/skk/

これを何らかのファイルとして保存して実行権限を付与し、ログオンとログオフの時に実行されるようにすればいいだろう。これで複数環境で Emacs の設定ファイルを同期できるはず。~/.emacs.d/auto-install/ も同期させておくか。

ログオンとログオフの時に実行されるようにするには、以下のコマンドを実行すればいいらしい(参考サイト:Mac OS X: ログインフックを作成する - Apple サポート

sudo defaults write com.apple.loginwindow LoginHook /path/to/script ;; This script will be invoked when login.
sudo defaults write com.apple.loginwindow LogoutHook /path/to/script ;; This script will be invoked when logout.

defaults read を使用すれば、設定を読むこともできるみたいだ。