apache日誌內容匯入資料庫
應用需求:
---------------------------------------------------------------
請將 1,2日誌內容插入 1.75 資料庫warehouse 賬號下
1,2日誌都在1.75伺服器上
1.
/logbackup/
|-- apache
目錄下
如下訪問日誌
m.xrcj.wxxr.cn
service.stock.test.wxxr.cn
stock.test.wxxr.cn
v1x
需要的欄位,site,ip,時間(date型別),url ,請求結果程式碼,返回位元組數
作業系統上的檔案資訊:
-----------------------------------------
[oracle@searchdb2 201209]$pwd
/logbackup/apache/201209
[oracle@searchdb2 201209]$ls
m.xrcj.wxxr.cn-access_log_20120911 stock.test.wxxr.cn-access_log_20120916 v1x-access_log_20120906
m.xrcj.wxxr.cn-access_log_20120912 v1x-access_log v1x-access_log_20120907
m.xrcj.wxxr.cn-access_log_20120913 v1x-access_log_20120822 v1x-access_log_20120908
m.xrcj.wxxr.cn-access_log_20120914 v1x-access_log_20120823 v1x-access_log_20120909
m.xrcj.wxxr.cn-access_log_20120915 v1x-access_log_20120824 v1x-access_log_20120910
m.xrcj.wxxr.cn-access_log_20120916 v1x-access_log_20120825 v1x-access_log_20120911
service.stock.test.wxxr.cn-access_log_20120911 v1x-access_log_20120826 v1x-access_log_20120912
service.stock.test.wxxr.cn-access_log_20120912 v1x-access_log_20120827 v1x-access_log_20120913
service.stock.test.wxxr.cn-access_log_20120913 v1x-access_log_20120828 v1x-access_log_20120914
service.stock.test.wxxr.cn-access_log_20120914 v1x-access_log_20120829 v1x-access_log_20120915
service.stock.test.wxxr.cn-access_log_20120915 v1x-access_log_20120830 v1x-access_log_20120916
service.stock.test.wxxr.cn-access_log_20120916 v1x-access_log_20120831 -access_log_20120911
stock.test.wxxr.cn-access_log_20120911 v1x-access_log_20120901 -access_log_20120912
stock.test.wxxr.cn-access_log_20120912 v1x-access_log_20120902 -access_log_20120913
stock.test.wxxr.cn-access_log_20120913 v1x-access_log_20120903 -access_log_20120914
stock.test.wxxr.cn-access_log_20120914 v1x-access_log_20120904 -access_log_20120915
stock.test.wxxr.cn-access_log_20120915 v1x-access_log_20120905 -access_log_20120916
[oracle@searchdb2 201209]$more m.xrcj.wxxr.cn-access_log_20120911
124.193.121.146 - - [11/Sep/2012:16:03:18 +0800] "GET / HTTP/1.1" 200 2041
124.193.121.146 - - [11/Sep/2012:16:03:18 +0800] "GET /favicon.ico HTTP/1.1" 404 952
124.193.121.146 - - [11/Sep/2012:16:03:19 +0800] "GET / HTTP/1.1" 200 885
124.193.121.146 - - [11/Sep/2012:16:03:19 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/a1.png HTTP/1.1"
200 46335
124.193.121.146 - - [11/Sep/2012:16:03:19 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/a2.png HTTP/1.1"
200 3359
124.193.121.146 - - [11/Sep/2012:16:03:19 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/a3.png HTTP/1.1"
200 3748
124.193.121.146 - - [11/Sep/2012:16:03:19 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/a4.png HTTP/1.1"
200 58813
124.193.121.146 - - [11/Sep/2012:16:03:20 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/android.png HTTP/
1.1" 200 2505
124.193.121.146 - - [11/Sep/2012:16:03:20 +0800] "GET /magnoliaPublic/dms/templating-kit/themes/finance/img/ios.png HTTP/1.1"
200 4551
資料庫表結構:
SQL> desc log_file
Name Null? Type
----------------------------------------------------------------------------------------------------------- -------- ------------------------------------------------------------------------
SITE VARCHAR2(2000)
IP VARCHAR2(15)
ACCESS_TIME DATE
URL VARCHAR2(2000)
CODE NUMBER(38)
LENGTH VARCHAR2(2000)
--------------------------------- insert_log.ctl --------------------------------
load data
append into table log_file
fields terminated by WHITESPACE TRAILING NULLCOLS
( SITE, IP, ACCESS_TIME DATE "dd/mm/yyyy:hh24:mi:ss", URL, CODE,LENGTH)
【IP:$1 access_time:$4 url:$7 code:$9 length:$10】
-----------------------------------insert_log.sh--------------------------------
#!/bin/bash
#FIlE_NAME:insert_log.sh
parent_dir=/logbackup/apache
month_dir=`date -d '1 day ago' +%Y%m`
log_dir=${parent_dir}/${month_dir}
yesterday=`date -d '1 day ago' +%Y%m%d`
cur_path=`pwd`
#echo $log_dir
cd $log_dir
list=`ls | grep $yesterday`
k=1
for i in $list ; do
echo --------------------------
echo $k:$i
echo --------------------------
site=`echo $i | awk -F"-" '{print $1}'`
cat $i | awk -v v_out=$site '{print v_out "\t" $1 "\t" $4 "\t" $7 "\t" $9 "\t" $10}' | sed 's/\[//g' > /tmp/log_dir
/${i}.dat
#sqlldr
echo "sqlldr userid=warehouse/oracle control=$cur_path/insert_log.ctl data="/tmp/log_dir/$i.dat" log=/tmp/log_dir/${i
}.log bad=/tmp/log_dir/${i}.bad"
sqlldr userid=warehouse/oracle control=$cur_path/insert_log.ctl data="/tmp/log_dir/$i\.dat" log=/tmp/log_dir/${i}.log
bad=/tmp/log_dir/${i}.bad > /dev/null
let k++
rm -rf /tmp/log_dir/*
done
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-743841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IIS 日誌匯入到資料庫的方法資料庫
- 日誌服務資料匯入
- apache日誌匯入oracle(日誌經過python處理)ApacheOraclePython
- 如何使用MySQL資料庫來分析Apache日誌?MySql資料庫Apache
- 如何將Excl內資料匯入資料庫?資料庫
- excel檔案內容匯入資料庫的問題及解決Excel資料庫
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- 成功使用Eclipse匯入專案,並實驗Mybatis操作了資料庫內容。EclipseMyBatis資料庫
- Oracle redo日誌內容探索(一)Oracle Redo
- 資料庫的匯入匯出資料庫
- mysql 資料庫匯入匯出MySql資料庫
- MySQL資料庫匯入匯出MySql資料庫
- scrapy爬蟲成長日記之將抓取內容寫入mysql資料庫爬蟲MySql資料庫
- 大文字資料,匯入匯出到資料庫資料庫
- 日誌分析-apache日誌分析Apache
- 【mysql】資料庫匯出和匯入MySql資料庫
- mysqldump匯入匯出mysql資料庫MySql資料庫
- oracle資料庫匯入匯出命令!Oracle資料庫
- Mysql 資料庫匯入與匯出MySql資料庫
- Oracle redo日誌內容探索之二Oracle Redo
- mybatis-plus匯入sql日誌MyBatisSQL
- MySQLSlowlog慢查詢日誌的配置以及清空日誌內容MySql
- 資料庫冷備份內容資料庫
- 資料庫鍵方面的內容資料庫
- oracle資料庫巡檢內容Oracle資料庫
- 資料庫運維工作內容資料庫運維
- Access 匯入 oracle 資料庫Oracle資料庫
- excel 匯入sqlyog資料庫ExcelSQL資料庫
- 將XML匯入資料庫XML資料庫
- 在SQL Server資料庫中匯入匯出資料SQLServer資料庫
- oracle資料庫mmnl日誌很大Oracle資料庫
- 分析資料庫日誌(LogMiner)資料庫
- 清除SQL Server資料庫日誌SQLServer資料庫
- apache 訪問日誌如何設定每日新增一個日誌檔案、如何限制大小、設定記錄內容Apache
- 【匯入匯出】sqlldr 匯入含有內嵌換行符的資料SQL
- SQL資料庫的匯入和匯出SQL資料庫
- plsql developer匯入匯出資料庫方法SQLDeveloper資料庫
- 畢業設計二:日誌匯入