===== ログを別サーバへローテートのシェル_2 =====
・3種類のファイルをWEBサーバからバッチ実行サーバへコピーして、そこからログ保管サーバへコピー。
・WEBサーバ<->バッチサーバ、バッチサーバ<->ログサーバは鍵認証でパスワード不要
・WEBサーバ<->ログサーバは直接アクセス不可
・実行時に日付オプションを渡せばその日付のファイルが処理される。渡さなければ昨日の日付。
sh /tmp/logCrawler.sh "2013-02-26"
sh /tmp/logCrawler.sh
#!/bin/bash
# パラメータ
LOG_DIR="/usr/local/apache2/logs/"
ACCESSLOG="access_log"
GAMESLOG="other_log"
ERRORLOG="error_log"
YESTERDAY=$1
echo $YESTERDAY
if [ -z "$YESTERDAY" ]; then
YESTERDAY=`date -d '1 days ago' '+%F'`
fi
echo $YESTERDAY
SERVER_IP=("10.204.1.34" "10.204.1.36" "10.204.1.37" "10.204.1.38" "10.204.1.39" "10.204.1.40" "10.204.1.41" "10.204.1.52" )
SERVER_DIR=("www1" "www2" "www3" "www4" "www5" "www6" "www7" "www8")
LOG_SERVER="10.204.1.42"
for (( i = 0; i < ${#SERVER_IP[@]}; i++ ))
do
rsync -av ${SERVER_IP[$i]}:$LOG_DIR$ACCESSLOG.$YESTERDAY /data/${SERVER_DIR[$i]}/
rsync -av /data/${SERVER_DIR[$i]}/$ACCESSLOG.$YESTERDAY ${LOG_SERVER}:/data/${SERVER_DIR[$i]}/
rm -rf /data/${SERVER_DIR[$i]}/$ACCESSLOG.$YESTERDAY
#ssh ${SERVER_IP[$i]} "rm -rf $LOG_DIR$ACCESSLOG.$YESTERDAY"
rsync -av ${SERVER_IP[$i]}:$LOG_DIR$GAMESLOG.$YESTERDAY /data/${SERVER_DIR[$i]}/
rsync -av /data/${SERVER_DIR[$i]}/$GAMESLOG.$YESTERDAY ${LOG_SERVER}:/data/${SERVER_DIR[$i]}/
rm -rf /data/${SERVER_DIR[$i]}/$GAMESLOG.$YESTERDAY
#ssh ${SERVER_IP[$i]} "rm -rf $LOG_DIR$GAMESLOG.$YESTERDAY"
rsync -av ${SERVER_IP[$i]}:$LOG_DIR$ERRORLOG.$YESTERDAY /data/${SERVER_DIR[$i]}/
rsync -av /data/${SERVER_DIR[$i]}/$ERRORLOG.$YESTERDAY ${LOG_SERVER}:/data/${SERVER_DIR[$i]}/
rm -rf /data/${SERVER_DIR[$i]}/$ERRORLOG.$YESTERDAY
#ssh ${SERVER_IP[$i]} "rm -rf $LOG_DIR$ERRORLOG.$YESTERDAY"
done