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