サーバ名や、ユーザ名を適当に自分の環境に合わせて読んでください。質問不可。
/usr/lib/mirror/ 以下に以下のファイルがあることを確認する。
dateconv.pl*
ftp.pl*
lchat.pl*
lsparse.pl*
この中の dateconv.pl にはバグがあるようなので、最後のあたりを以下のように修正する。
実行結果をメールするときに日付の表示がおかしくなってます。
別にたいしたことないところなので修正しなくてもいいです。
ファイルの最後の方です。赤字の様に追加変更する。
# input time number, output GMT string as "dd Mmm YY HH:MM"
sub main'time_to_standard
{
package dateconv;
local( $time ) = @_;
local( $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst
) =
gmtime( $time );
if(
$year < 70 ){
$year += 2000;
}
else
{
$year += 1900;
}
return sprintf( "%2d $months[
$mon + 1 ] %04d %02d:%02d", $mday, $year,
$hour, $min );
}
$ mirror -v
と入力して以下のような感じに返ってきたら大丈夫だと思う。
$Id: mirror.pl,v 2.9 1998/05/29 19:01:07 lmjm Exp lmjm $
ダウンロード用 mirror.copyfrom
(/home/yutakano/mirror.copyfrom)
Hi-Hoの /html/ フォルダの中身を ローカルの/home/httpd/html/yutakano/
へコピーします。
cgi-bin のコピーは含まれていません。
# これはデフォルトの mirror の設定です。
# サンプルなので適当に変更して使用してください。
#
# <yutakano@tim.hi-ho.ne.jp>
package=defaults
## default の設定
## local
: 自分のサーバ
## remote
: ミラー先のサーバ
## ローカルサーバのホスト名
hostname=hogehoge.com
## ローカルサーバから転送するディレクトリ
local_dir=/home/httpd/html/
## local_dir が存在することを最初にチェック
local_dir_check=true
## 実行結果の送り先
mail_to=yutakano@localhost
#
## ミラー先サーバ名
site=www.tim.hi-ho.ne.jp
## ミラー先サーバのユーザー名
remote_user=yutakano
## ミラー先サーバのパスワード
remote_password=XXXXXXXX
## ミラー先ディレクトリに残すログファイル名
update_log=.mirror
## 転送元と同じファイル・モードでコピーする
## (false : ファイル・モード固定)
mode_copy=false
## 転送するファイルやディレクトリのファイル・モード
dir_mode=0755
file_mode=0644
## 転送するファイルやディレクトリのユーザとグループ
(root の場合は0)
user=501
group=501
## 無効なシンボリック・リンクもコピーする(するtrue,しないfalse)
make_bad_symlinks=false
##
##
timeout=300
##
package=copyfrom
## ミラー先サーバからコピーする設定
## ファイルをミラー先からローカルに持ってくる
## (するtrue,しないfalse)
get_file=true
## ミラー先ディレクトリ
remote_dir=/html
## ローカルディレクトリ
## (default+hogehoge)
local_dir+yutakano
## 転送元のファイルを削除した場合にミラー側のファイルを消す
## (するtrue,しないfalse)
do_deletes=false
##
アップロード用 mirror.copyto
(/home/yutakano/mirror.copyto)
ローカルの/home/httpd/html/yutakano/ フォルダの中身を Hi-Hoの /html/
へコピーします。
cgi-bin のコピーは含まれていません。
# これはデフォルトの mirror の設定です。
# サンプルなので適当に変更して使用してください。
#
# <yutakano@tim.hi-ho.ne.jp>
package=defaults
## default の設定
## local
: 自分のサーバ
## remote
: ミラー先のサーバ
## ローカルサーバのホスト名
hostname=hogehoge.com
## ローカルサーバから転送するディレクトリ
local_dir=/home/httpd/html/
## local_dir が存在することを最初にチェック
local_dir_check=true
## 実行結果の送り先
mail_to=yutakano@localhost
#
## ミラー先サーバ名
site=www.tim.hi-ho.ne.jp
## ミラー先サーバのユーザー名
remote_user=yutakano
## ミラー先サーバのパスワード
remote_password=XXXXXXXX
## ミラー先ディレクトリに残すログファイル名
update_log=.mirror
## 転送元と同じファイル・モードでコピーする
## (false : ファイル・モード固定)
mode_copy=false
## 転送するファイルやディレクトリのファイル・モード
dir_mode=0755
file_mode=0644
## 転送するファイルやディレクトリのユーザとグループ
(root の場合は0)
user=501
group=501
## 無効なシンボリック・リンクもコピーする(するtrue,しないfalse)
make_bad_symlinks=false
##
##
timeout=300
##
package=copyto
## ミラー先サーバへコピーする設定
## ファイルをミラー先からローカルに持ってくる
## (するtrue,しないfalse)
get_file=false
## ミラー先ディレクトリ
remote_dir=/html
## ローカルディレクトリ
## (default+hogehoge)
local_dir+yutakano
## 転送元のファイルを削除した場合にミラー側のファイルを消す
## (するtrue,しないfalse)
do_deletes=true
## 転送しないファイルを指定する。
## (正規表現) (.htaccess、count、CSV、.bakで終わるファイルを除外)
local_ignore=(.htaccess|count|CVS|\.bak)
##
ファイルの作成後に
$ chmod 600 ./mirror.copyto
$ chmod 600 ./mirror.copyfrom
とする。
パスワードがこのファイルに直接書き込まれているので他のユーザに見せないため。
$ mirror mirror.copyfrom
と入力するとファイルをコピーしているメッセージが出てくる。
ローカルにファイルがコピーされているはず。
2回目以降は更新されたファイルのみが転送されます。
続けてもう一度やると以下のようなメッセージが出るはず。
package=copyfrom www.tim.hi-ho.ne.jp:/html -> /home/httpd/html/yutakano
No files to transfer
$ mirror mirror.copyto
と入力するとローカルのフォルダの中身をHi-Hoへ転送する。