シェルスクリプトでFTPでバックアップ

| | コメント(0) | トラックバック(0)

バックアップ処理をbourn shellで書いた。
※主に{}内を環境に合わせて書き換える必要アリ。

・バックアップというか指定のファイルをFTPでゲットして、結果のメールをする感じ
・ファイルはワイルドカードとか使って複数指定可
・ゲットする予定のファイル数と合わなければメール本文にバックアップ失敗と書いて送信する
・ログとかのバックアップ目的で書いたので、バックアップ対象のファイル数は予測できるという前提にたっている

RESULT_TEXTのあたりとか色々微妙だけど、まあいいや。
何か、こうしたらいいとかアドバイスいただけたらウレピーです。

==================
#!/bin/sh

#========================
#Configuration
#========================
#ftp setting
FTP_CMD=/usr/bin/ftp
FTP_USER={user id}
FTP_PASS={password}

REMOTE_SVR={target server ip or domain name}
REMOTE_DIR={target file directory}
LOCAL_DIR={file distination directory}

DATE_YYYYMMDD=`date +%Y%m%d`
TARGET_FILE=*$DATE_YYYYMMDD.tar.gz

#log setting
LOGDIR={log directory}
LOG=$LOGDIR/ftpbackup.log

#mail setting
MAIL_CMD=/bin/mail
MAILTO={mail to}
MAIL_SUBJECT="backup report"


#========================
#Back up start
#========================

echo `date` backup start >>$LOG
echo >>$LOG

#ftp start
$FTP_CMD -i -v -n $REMOTE_SVR<< END >> $LOG 2>&1
user $FTP_USER $FTP_PASS
cd $REMOTE_DIR
lcd $LOCAL_DIR
bin
mget $TARGET_FILE
quit
END

#test ftp result
RESULT=`/bin/ls -1 $LOCAL_DIR | grep ${DATE_YYYYMMDD} | wc -l`
if [ $RESULT -ne 2 ]
then
echo `date` backup failed >>$LOG
RESULT_TEXT="backup faild!!!!!!!"
EXIT_CD=1
else
echo `date` backup complete >>$LOG
RESULT_TEXT="backup complete"
EXIT_CD=0
fi

$MAIL_CMD -s ${MAIL_SUBJECT} ${MAILTO} <<_EOF

`date +"%Y-%m-%d %H:%M"`
${RESULT_TEXT}

_EOF

exit $EXIT_CD
==================


FTP_PASSのところでちょっとハマったんですが、シェルで処理するときに、スクリプト内に"#"とかの記号(何がアウトなのかはよく調べてない)がついていると、別解釈されてしまうっぽい。
そんなときはシングルクォート"'"で囲えばケーオツ。

あと適当にcronとか設定する感じですね。


トラックバック(0)

このブログ記事を参照しているブログ一覧: シェルスクリプトでFTPでバックアップ

このブログ記事に対するトラックバックURL: http://hirop0164.s326.xrea.com/mt/mt-tb.cgi/150

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ぴろしが2008年4月28日 20:05に書いたブログ記事です。

ひとつ前のブログ記事は「Eclipseの日本語化」です。

次のブログ記事は「EclipseでDerbyを使ってみる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。