12

7月 17

 

fswatchを使ってディレクトリの変更を監視し、lftpにより自動でサーバーに反映させる

terminal

前回の記事

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コマンドが実行され、ローカルの変更が即座にリモートに反映されます。