ftp設定ファイルを作成する
シェルでftpを使用してオートログインする場合

ftp -n < ftp.txt
というように設定ファイルを読み込んでftp接続します。
ftp.txtにはサーバの情報、ユーザ情報、ファイルのアップロードやダウンロードをするコマンドを記述しています。
以下、ftp.txtの例です。

ftp.txtサンプル
open 11.22.33.44
user confrage 12345
cd /log
get access_log.2007-02-20 access_log
bye
このようなログローテートされたファイルをダウンロードしたい場合、2007-02-20という文字列がファイルにくっついてしまいます。
システムの運用をしていると、前日のログを解析したいということがよくありますが、ローテートされているファイルをダウンロードするとなると一々ftp.txtを書き換えないといけません。
これでは手動でダウンロードするほうが早いので、意味がありません。

ですので、シェルの先頭でftp.txtを作成し、ローテート部分はdateコマンドを使用してファイル名を作成します。
以下は前日のファイルをダウンロードします。以下のようなシェルで可能になります。

ファイルをダウンロードするサンプル
#!/usr/bin/bash

date=`env TZ=JST+15 date +%Y-%m-%d`
ftp=tmp.ftp
log=access_log
echo "open 11.22.33.44" > $ftp
echo "user confrage 12345" >> $ftp
echo "cd /log" >> $ftp
echo "get access_log.$date" "access_log" >> $ftp
echo "bye" >> $ftp

ftp -n < $ftp

Back to top

Information