国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
squid日志4

13.3.1 轉(zhuǎn)換文件號到路徑名


假如想要檢查某個特定的cache文件,你可稍費工夫?qū)⑽募栟D(zhuǎn)換到路徑名。另外目錄號和L1和L2值

也是必需的。在squid的源代碼里,storeUfsDirFullPath( )函數(shù)做這個事情。可在

src/fs/ufs/store_dir_ufs.c文件里找到它。如下短小的perl腳本模擬了當(dāng)前算法:


useragent_log /usr/local/squid/var/logs/useragent.log7


這樣使用它:


% echo 000DCD06 | ./fileno-to-pathname.pl            0D/CD/000DCD06


要在第N個cache_dir里找到該文件,簡單的進入到相應(yīng)的目錄,并列出或查看該文件:


% cd /cache2            % ls -l 0D/CD/000DCD06            -rw-------  1 squid  squid  391 Jun  3 12:40 0D/CD/000DCD06            % less 0D/CD/000DCD06





13.4 referer.log

可選的referer.log包含了來自客戶端請求的Referer頭部。為了使用該功能,必須在./configure時打

開--enable-referer-log選項。還必須用referer_log指令來指定一個路徑。例如:


referer_log /usr/local/squid/var/logs/referer.log


假如想禁止referer.log,則可設(shè)置文件名為none。


Referer頭部正常情況下包含一個URI,從這個URI獲取到了請求(見RFC2616的14.36節(jié))。例如,

當(dāng)web瀏覽器發(fā)布請求到某個內(nèi)嵌圖片時,Referer頭部被設(shè)置成包含該圖片的HTML網(wǎng)頁的URI。當(dāng)

你點擊HTML超鏈接時,它也被設(shè)置。某些web站點管理員使用Referer值來查找死鏈接。在使用

Squid作為代理人模式時,你也許發(fā)現(xiàn)referer.log特別有用。


referer.log格式簡單,僅有4個域。如下是一些示例:


1068047502.377 3.0.168.206            http://www.amazon.com/exec/obidos/search-handle-form/002-7230223-8205634            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            1068047503.109 3.0.168.206            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            http://g-images.amazon.com/./images/G/01/gourmet/gourmet-segway.gif            1068047503.196 3.0.168.206            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            http://g-images.amazon.com/./images/G/01/marketing/cross-shop/arnold/appar...            1068047503.198 3.0.168.206            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            http://g-images.amazon.com/./images/G/01/marketing/cross-shop/arnold/appar...            1068047503.825 3.0.168.206            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            http://images.amazon.com/./images/P/B00005R8BC.01.TZZZZZZZ.jpg            1068047503.842 3.0.168.206            http://www.amazon.com/exec/obidos/ASIN/0596001622/qid=1068047396/sr=2-1/...            http://images.amazon.com/./images/P/0596001622.01._PE_PI_SCMZZZZZZZ_.jpg


注意缺少Referer頭部的請求不會被記錄。這4個域描述如下:



           
       
  • 1. 時間戳


       

       
  • 請求時間,表現(xiàn)為Unix紀(jì)元以來的秒數(shù),是毫秒級的。
       


注意的是,不像access.log,referer.log在Squid接受到完整請求時,會立刻記錄。這樣,

referer.log條目在access.log之前發(fā)生,后者等待響應(yīng)完成才記錄。



           
       
  • 2. 客戶端地址


       

       
  • 客戶端地址跟access.log里的一樣。log_fqdn和client_netmask指令也影響該日志文件。


       

       
  • 3. referer


       

       
  • 來自客戶端請求的Referer頭部值。注意referer值可能有空格字符或其他字符,在寫
  • referer.log前Squid不會對其進行編碼。


       

       
  • 4. URI


       

       
  • 客戶端正請求的URI。它匹配access.log里的URI。
       





13.5 useragent.log

可選的useragent.log包含來自客戶端請求的User-Agent頭部值。為了使用該功能,必須在運行

./configure時打開--enable-useragent-log選項。還必須使用useragent_log指令來提供一個路徑

名。例如:


___FCKpd___5


User-Agent頭部正常情況下包含了發(fā)起請求的user-agent的描述。大多數(shù)情形下,該描述只是簡單

的產(chǎn)品名列表和版本信息。你應(yīng)該清楚應(yīng)用程序可以輕易的提供偽造的user-agent信息?,F(xiàn)代

user-agent提供途徑可定制該描述。甚至Squid在轉(zhuǎn)發(fā)請求里能改變這個User-Agent頭部。


useragent.log格式相對簡單,看起來如下:


3.0.168.206 [05/Nov/2003:08:51:43 -0700]            "Mozilla/5.0 (compatible; Konqueror/3; FreeBSD)"            3.0.168.207 [05/Nov/2003:08:52:18 -0700]            "Opera/7.21 (X11; FreeBSD i386; U)  [en]"            4.241.144.204 [05/Nov/2003:08:55:11 -0700]            "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/103u (KHTM..."            3.0.168.206 [05/Nov/2003:08:51:43 -0700]            "Java1.3.1_01"            64.68.82.28 [05/Nov/2003:08:52:50 -0700]            "Googlebot/2.1 (http://www.googlebot.com/bot.html)"            3.0.168.205 [05/Nov/2003:08:52:50 -0700]            "WebZIP/4.1 (http://www.spidersoft.com)"            4.241.144.201 [05/Nov/2003:08:52:50 -0700]            "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt; Hotbar 3.0)"            3.0.168.206 [05/Nov/2003:08:54:40 -0700]            "Bookmark Renewal Check Agent [http://www.bookmark.ne.jp/] (Version 2.0..."


不像其他日志文件,它僅有3個域:



           
       
  • 1. 客戶端地址


       

       
  • 跟access.log里的一樣。log_fqdn和client_netmask指令也影響該日志文件。


       

       
  • 2. 時間戳


       

       
  • 不像其他日志文件那樣,用Unix紀(jì)元以來的秒數(shù)來描述時間,這里使用人工可讀的格式。它是
  • HTTP通用日志文件格式的時間戳,看起來如下:
       

       
    [10/Jun/2003:22:38:36 -0600]

            注意方括號界定時間戳,它包含一個空格。也請注意,跟referer.log一樣,這些條目在
  • Squid接受到完整請求時,立刻被記錄。


       

       
  • 3. user-agent


       

       
  • User-Agent頭部的值。這些字串幾乎總包含空格。在將其寫入日志文件時,Squid不會編碼
  • User-Agent值。
       





13.6 swap.state

swap.state文件是目標(biāo)寫入cache目錄、或從cache目錄刪除的日志寫照。每個cache_dir有它自己

的swap.state文件。當(dāng)Squid啟動時,它讀取swap.state文件來重建cache目標(biāo)的內(nèi)存索引。這些

文件對Squid管理來說,至關(guān)重要。


默認情況下,每個cache.state文件位于它相應(yīng)的cache目錄。這樣,每個state文件自動駐留在每個

cache_dir下。這點很有用--假如你想重新排序cache_dir行,或想從cache_dir列表里刪除條目的

話。


如果想將它們放在其他位置,可使用cache_swap_log指令來做:


cache_swap_log /usr/local/squid/var/logs/swap.state


在此情況下,Squid對每個cache目錄創(chuàng)建一個swap.state文件,并增加數(shù)字后綴。例如,假如有4個

cache目錄,Squid創(chuàng)建如下日志:


/usr/local/squid/var/logs/swap.state.00            /usr/local/squid/var/logs/swap.state.01            /usr/local/squid/var/logs/swap.state.02            /usr/local/squid/var/logs/swap.state.03


在這個情形下,如果你要增加、刪除、或重排序cache_dir行,就必須手工重命名swap.state文件,

以保持事情一致。


技術(shù)上,swap.state格式是獨立于存儲機制的。然而,在當(dāng)前版本的Squid里,所有的存儲機制使用

同一種格式。swap.state文件使用修正大?。?8位)的二進制格式。各個域值以主機字節(jié)順序記錄,

這樣在不同的操作系統(tǒng)之間不便遷移。表13-3描述了swap.state日志條目的各個域的說明。




Table 13-3. swap.state entry fields


Name Size, in bytes Description
op 1 Operation on the entry: added (1) or deleted (2).
file number 4 Same as the fourth field of store.log, except it is stored in binary.
timestamp 4 A timestamp corresponding to the time when the response was generated or last validated. Taken from the Date header for responses that have one. Stored as the number of seconds since the Unix epoch.
lastref 4 A timestamp corresponding to the most recent access to the object.
expires 4 The object's expiration time, taken from an Expires header or Cache-Control max-age directive.
last-modified 4 The object's Last-Modified value.
swap file size 4 The amount of space the object occupies on disk. This includes HTTP headers and other Squid-specific meta-information.
refcount 2 The number of times this object has been requested.
flags 2 Various internal flags used by Squid.
key 16 The MD5 hash of the corresponding URI. Same as the key in store.log, except this one is stored in binary.




13.7 輪轉(zhuǎn)日志

Squid不斷的寫日志,假如cache非常忙,那么在一段時間后,這些日志文件可能變得很大。某些操作

系統(tǒng)甚至限制了文件的最大size(例如2G),假如寫文件超過了這個size就會報錯。為了保持日志文件

容易管理,以及讓Squid正常工作,必須定期輪轉(zhuǎn)日志。


Squid有內(nèi)建的功能用于輪轉(zhuǎn)日志??赏ㄟ^squid -k rotate命令來調(diào)用它,然后告訴Squid對每個日志

文件保持多少份舊拷貝。例如,假如設(shè)置它為7,對每個日志文件會有8個版本:1個當(dāng)前的,和7個舊

的。


舊日志文件以數(shù)字擴展來重命名。例如,當(dāng)執(zhí)行一次輪轉(zhuǎn)時,Squid重命名log.6到log.7,然后是

log.5到log.6,依此類推。當(dāng)前l(fā)og變成log.0,并且Squid創(chuàng)建一個新的空文件,命名為log。


每次執(zhí)行squid -k rotate時,Squid輪轉(zhuǎn)下述文件:cache.log, access.log, store.log,

useragent.log (假如激活), 以及referer.log (假如激活)。Squid也會創(chuàng)建最新版本的swap.state

文件。然而請注意,swap.state不會以數(shù)字擴展形式來輪轉(zhuǎn)。


Squid不會自己輪轉(zhuǎn)日志,最好的辦法是在crontab里自動執(zhí)行。例如:


0 0 * * * /usr/local/squid/sbin/squid -k rotate


假如你想編寫自己的腳本來管理日志文件,Squid提供了一個有用的模式,簡單的設(shè)置logfile_rotate

指令為0。這樣,當(dāng)你運行squid -k rotate命令時,Squid簡單的關(guān)閉當(dāng)前日志文件,并且打開新的。

如果操作系統(tǒng)允許重命名被其他進程打開的文件,則這點非常有用。下述shell腳本描述了一個思路:


#!/bin/sh            set -e            yesterday_secs=`perl -e 'print time -43200'`            yesterday_date=`date -r $yesterday_secs +%Y%m%d`            cd /usr/local/squid/var/logs            # rename the current log file without interrupting the logging process            mv access.log access.log.$yesterday_date            # tell Squid to close the current logs and open new ones            /usr/local/squid/sbin/squid -k rotate            # give Squid some time to finish writing swap.state files            sleep 60            mv access.log.$yesterday_date /archive/location/            gzip -9 /archive/location/access.log.$yesterday_date





13.8 隱私和安全

Squid的日志文件特別是access.log,包含了用戶的活躍記錄,因此它受隱私問題支配。作為Squid管

理員,你必須采取額外的小心來保證日志文件安全。最好的辦法是限制訪問Squid主機的人員的數(shù)量。

假如這點行不通,那么就要謹慎的檢查文件和目錄許可,確保日志文件不會被非信任的、或未授權(quán)的用

戶訪問。


也可利用client_netmask和strip_query_terms指令來保護用戶隱私。前者讓識別access.log里的用

戶困難;后者移除了URI查詢條件以避免泄露用戶私人信息。更多信息見13.2.4節(jié)。


如果想要保持歷史數(shù)據(jù)相當(dāng)長的時間,你也許可裁減日志來保證日志文件匿名。假如你僅對哪個URI被

訪問感興趣,而不是誰訪問了它們,就可從access.log里抽取出該域。這樣也讓文件更小,并且減少

了隱私違背的風(fēng)險。另一個技術(shù)是隨機處理客戶端IP地址。換句話說,就是創(chuàng)建一個過濾器,把真正的

IP地址映射到假的地址,前提是同一個真IP地址總是映射到同一個假IP。假如你在使用RFC 1413身份

驗證協(xié)議或HTTP認證,也可考慮保持這些域匿名。


);
printf("%02X/%02X/%08X\n",
(($filn / $L2) / $L2) % $L1,
($filn / $L2) % $L2,
$filn);
}

這樣使用它:

___FCKpd___58

要在第N個cache_dir里找到該文件,簡單的進入到相應(yīng)的目錄,并列出或查看該文件:

___FCKpd___59



13.4 referer.log

可選的referer.log包含了來自客戶端請求的Referer頭部。為了使用該功能,必須在./configure時打

開--enable-referer-log選項。還必須用referer_log指令來指定一個路徑。例如:

___FCKpd___60

假如想禁止referer.log,則可設(shè)置文件名為none。

Referer頭部正常情況下包含一個URI,從這個URI獲取到了請求(見RFC2616的14.36節(jié))。例如,當(dāng)web瀏覽器發(fā)布請求到某個內(nèi)嵌圖片時,Referer頭部被設(shè)置成包含該圖片的HTML網(wǎng)頁的URI。當(dāng)你點擊HTML超鏈接時,它也被設(shè)置。某些web站點管理員使用Referer值來查找死鏈接。在使用Squid作為代理人模式時,你也許發(fā)現(xiàn)referer.log特別有用。

referer.log格式簡單,僅有4個域。如下是一些示例:

___FCKpd___61

注意缺少Referer頭部的請求不會被記錄。這4個域描述如下:

  • 1. 時間戳

  • 請求時間,表現(xiàn)為Unix紀(jì)元以來的秒數(shù),是毫秒級的。

注意的是,不像access.log,referer.log在Squid接受到完整請求時,會立刻記錄。這樣,referer.log條目在access.log之前發(fā)生,后者等待響應(yīng)完成才記錄。

  • 2. 客戶端地址

  • 客戶端地址跟access.log里的一樣。log_fqdn和client_netmask指令也影響該日志文件。

  • 3. referer

  • 來自客戶端請求的Referer頭部值。注意referer值可能有空格字符或其他字符,在寫referer.log前Squid不會對其進行編碼。

  • 4. URI

  • 客戶端正請求的URI。它匹配access.log里的URI。



13.5 useragent.log

可選的useragent.log包含來自客戶端請求的User-Agent頭部值。為了使用該功能,必須在運行./configure時打開--enable-useragent-log選項。還必須使用useragent_log指令來提供一個路徑名。例如:

___FCKpd___62

User-Agent頭部正常情況下包含了發(fā)起請求的user-agent的描述。大多數(shù)情形下,該描述只是簡單的產(chǎn)品名列表和版本信息。你應(yīng)該清楚應(yīng)用程序可以輕易的提供偽造的user-agent信息?,F(xiàn)代user-agent提供途徑可定制該描述。甚至Squid在轉(zhuǎn)發(fā)請求里能改變這個User-Agent頭部。

useragent.log格式相對簡單,看起來如下:

___FCKpd___63

不像其他日志文件,它僅有3個域:

  • 1. 客戶端地址

  • 跟access.log里的一樣。log_fqdn和client_netmask指令也影響該日志文件。

  • 2. 時間戳

  • 不像其他日志文件那樣,用Unix紀(jì)元以來的秒數(shù)來描述時間,這里使用人工可讀的格式。它是HTTP通用日志文件格式的時間戳,看起來如下:
    ___FCKpd___64
    注意方括號界定時間戳,它包含一個空格。也請注意,跟referer.log一樣,這些條目在Squid接受到完整請求時,立刻被記錄。

  • 3. user-agent

  • User-Agent頭部的值。這些字串幾乎總包含空格。在將其寫入日志文件時,Squid不會編碼User-Agent值。



13.6 swap.state

swap.state文件是目標(biāo)寫入cache目錄、或從cache目錄刪除的日志寫照。每個cache_dir有它自己的swap.state文件。當(dāng)Squid啟動時,它讀取swap.state文件來重建cache目標(biāo)的內(nèi)存索引。這些文件對Squid管理來說,至關(guān)重要。

默認情況下,每個cache.state文件位于它相應(yīng)的cache目錄。這樣,每個state文件自動駐留在每個cache_dir下。這點很有用--假如你想重新排序cache_dir行,或想從cache_dir列表里刪除條目的話。

如果想將它們放在其他位置,可使用cache_swap_log指令來做:

___FCKpd___65

在此情況下,Squid對每個cache目錄創(chuàng)建一個swap.state文件,并增加數(shù)字后綴。例如,假如有4個cache目錄,Squid創(chuàng)建如下日志:

___FCKpd___66

在這個情形下,如果你要增加、刪除、或重排序cache_dir行,就必須手工重命名swap.state文件,以保持事情一致。

技術(shù)上,swap.state格式是獨立于存儲機制的。然而,在當(dāng)前版本的Squid里,所有的存儲機制使用同一種格式。swap.state文件使用修正大?。?8位)的二進制格式。各個域值以主機字節(jié)順序記錄,這樣在不同的操作系統(tǒng)之間不便遷移。表13-3描述了swap.state日志條目的各個域的說明。


Table 13-3. swap.state entry fields

Name Size, in bytes Description
op 1 Operation on the entry: added (1) or deleted (2).
file number 4 Same as the fourth field of store.log, except it is stored in binary.
timestamp 4 A timestamp corresponding to the time when the response was generated or last validated. Taken from the Date header for responses that have one. Stored as the number of seconds since the Unix epoch.
lastref 4 A timestamp corresponding to the most recent access to the object.
expires 4 The object's expiration time, taken from an Expires header or Cache-Control max-age directive.
last-modified 4 The object's Last-Modified value.
swap file size 4 The amount of space the object occupies on disk. This includes HTTP headers and other Squid-specific meta-information.
refcount 2 The number of times this object has been requested.
flags 2 Various internal flags used by Squid.
key 16 The MD5 hash of the corresponding URI. Same as the key in store.log, except this one is stored in binary.



13.7 輪轉(zhuǎn)日志

Squid不斷的寫日志,假如cache非常忙,那么在一段時間后,這些日志文件可能變得很大。某些操作系統(tǒng)甚至限制了文件的最大size(例如2G),假如寫文件超過了這個size就會報錯。為了保持日志文件容易管理,以及讓Squid正常工作,必須定期輪轉(zhuǎn)日志。

Squid有內(nèi)建的功能用于輪轉(zhuǎn)日志??赏ㄟ^squid -k rotate命令來調(diào)用它,然后告訴Squid對每個日志文件保持多少份舊拷貝。例如,假如設(shè)置它為7,對每個日志文件會有8個版本:1個當(dāng)前的,和7個舊的。

舊日志文件以數(shù)字擴展來重命名。例如,當(dāng)執(zhí)行一次輪轉(zhuǎn)時,Squid重命名log.6到log.7,然后是log.5到log.6,依此類推。當(dāng)前l(fā)og變成log.0,并且Squid創(chuàng)建一個新的空文件,命名為log。

每次執(zhí)行squid -k rotate時,Squid輪轉(zhuǎn)下述文件:cache.log, access.log, store.log, useragent.log (假如激活), 以及referer.log (假如激活)。Squid也會創(chuàng)建最新版本的swap.state文件。然而請注意,swap.state不會以數(shù)字擴展形式來輪轉(zhuǎn)。

Squid不會自己輪轉(zhuǎn)日志,最好的辦法是在crontab里自動執(zhí)行。例如:

___FCKpd___67

假如你想編寫自己的腳本來管理日志文件,Squid提供了一個有用的模式,簡單的設(shè)置logfile_rotate指令為0。這樣,當(dāng)你運行squid -k rotate命令時,Squid簡單的關(guān)閉當(dāng)前日志文件,并且打開新的。如果操作系統(tǒng)允許重命名被其他進程打開的文件,則這點非常有用。下述shell腳本描述了一個思路:

___FCKpd___68



13.8 隱私和安全

Squid的日志文件特別是access.log,包含了用戶的活躍記錄,因此它受隱私問題支配。作為Squid管理員,你必須采取額外的小心來保證日志文件安全。最好的辦法是限制訪問Squid主機的人員的數(shù)量。假如這點行不通,那么就要謹慎的檢查文件和目錄許可,確保日志文件不會被非信任的、或未授權(quán)的用戶訪問。

也可利用client_netmask和strip_query_terms指令來保護用戶隱私。前者讓識別access.log里的用戶困難;后者移除了URI查詢條件以避免泄露用戶私人信息。更多信息見13.2.4節(jié)。

如果想要保持歷史數(shù)據(jù)相當(dāng)長的時間,你也許可裁減日志來保證日志文件匿名。假如你僅對哪個URI被訪問感興趣,而不是誰訪問了它們,就可從access.log里抽取出該域。這樣也讓文件更小,并且減少了隱私違背的風(fēng)險。另一個技術(shù)是隨機處理客戶端IP地址。換句話說,就是創(chuàng)建一個過濾器,把真正的IP地址映射到假的地址,前提是同一個真IP地址總是映射到同一個假IP。假如你在使用RFC 1413身份驗證協(xié)議或HTTP認證,也可考慮保持這些域匿名。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
squid 日志清理
squid故障匯總
Squid啟動參數(shù)詳解
Squid中文權(quán)威指南第四章
FreeBSD下Squid安裝步驟
IIS網(wǎng)站日志綜合分析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服