lftpミラーリングスクリプト

WebサイトをFTPで更新するとき,更新するファイルが一つか二つくらいならいいのですが,これが多くなるとちょっと大変です.更新し忘れたり,間違って古いファイルを上書きしてしまい,これまでの苦労が水の泡に…なんて経験はないでしょうか.それを防ぐためには,ミラーリングアップロードできるソフトウェアを使うのが一番です.

多機能なCUIのFTPクライアント「lftp」は,ミラーリングダウンロード,アップロードの機能を備えています.lftp単体でも十分に便利なのですが,シェルスクリプトに組み込めばさらに便利です.この記事では,lftpを核にして,第1引数で指定したディレクトリをミラーリングアップロードするスクリプトをつくってみます.

lftpの基本

lftpをスクリプトに組み込む

一通りの完成

最終的に,つぎのようになります.

#!/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 にするなどして,人に見られないよう注意しましょう(一番いいのは,パスワードをその都度入力することです).

Valid XHTML 1.1! home > コンピュータ > プログラミング >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.2.17HTML convert time to 0.052 sec.