WebサイトをFTPで更新するとき,更新するファイルが一つか二つくらいならいいのですが,これが多くなるとちょっと大変です.更新し忘れたり,間違って古いファイルを上書きしてしまい,これまでの苦労が水の泡に…なんて経験はないでしょうか.それを防ぐためには,ミラーリングアップロードできるソフトウェアを使うのが一番です.
多機能なCUIのFTPクライアント「lftp」は,ミラーリングダウンロード,アップロードの機能を備えています.lftp単体でも十分に便利なのですが,シェルスクリプトに組み込めばさらに便利です.この記事では,lftpを核にして,第1引数で指定したディレクトリをミラーリングアップロードするスクリプトをつくってみます.
最終的に,つぎのようになります.
#!/bin/sh test -z "$1" && echo "USEGE: lftpdir.sh <dirname>" && exit DIRNAME=$1 USERID=****** PASSWAD=****** FTPSITE=****** if [ $DIRNAME = welcome -o \ $DIRNAME = mathInPhys -o \ $DIRNAME = mechanics -o \ $DIRNAME = elemag -o \ $DIRNAME = thermo -o \ $DIRNAME = quantum -o \ $DIRNAME = solid -o \ $DIRNAME = energy ] then lftp <<- END open -u $USERID,$PASSWAD $FTPSITE set ftp:list-options -a lcd ~/public_html/$DIRNAME cd /$DIRNAME mirror -Rev END else echo "No such directry." fi
「******」の部分には,実際の環境に合わせて書き直してください.このスクリプトは,ファイルにパスワードを直接書くことになりますので,パーミッションは 700 にするなどして,人に見られないよう注意しましょう(一番いいのは,パスワードをその都度入力することです).