前回の記事
lftpで自動的にcdとlcdコマンドを使って環境を合わせる方法 » WisdomTrees : http://wisdomtrees.net/?p=707
の続きです。
lftpで自動的に目標のサーバーへmirror出来るようになったので、更に発展させてローカルでの編集を監視して、即座にサーバーに反映させるような仕組みを作りました。
まず前回作ったコマンドを使ってlftp mirrorをする仕組みをシェルスクリプト化します。
#target_mirror.sh
#!/bin/sh
lftp -c 'connect XXX; cd /target/Dir/; lcd ~/Dropbox/target/Dir/; mirror -R'
そしてディレクトリの監視には、fswatchというソフトを使います。
brew install fswatch
でinstallできます。
Linux環境だと似たようなのにinotify-toolsというものがあるようです。
あとは、自分が編集しているディレクトリを監視させて、変更があった場合にはtarget_mirror.shを実行する仕組みを作ります。
fswatch -o ~/Dropbox/target/Dir | xargs -n1 -I{} target_mirror.sh
これで、ファイルを保存したタイミングで自動的にlftp mirrorコマンドが実行され、ローカルの変更が即座にリモートに反映されます。