ユーザ用ツール

サイト用ツール


apache:sample002

ログを別サーバへローテートのシェル_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
apache/sample002.txt · 最終更新: 2014/02/26 07:11 by clownclown

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki