labunix's blog

labunixのラボUnix

■Squidログの検索結果のURLデコード

■「squid.conf」に以下の設定をした際の「%[0-9A-F][0-9A-F」」形式のURLをデコードします。

strip_query_terms off

■squidログのURLデコード
 Linuxの場合(debian lenny)

$ sudo cat /var/log/squid/access.log | nkf -w8 --url-input

■PowerShellでURLデコード
 Windowsの場合(WindowsXPHome)
 ※検索文字列に対してのみ有効。

 参考:文字列のURLエンコード/デコード
 http://blog.powershell-from.jp/?p=222

PS> Get-Content .\squidlog-decode.ps1
[void][reflection.assembly]::LoadWithPartialName("System.Web")
function global:Get-UrlEncode([string]$EncodeString)
{
    return [System.Web.HttpUtility]::UrlEncode($EncodeString)
}
function global:Get-UrlDecode([string]$DecodeString)
{
    return [System.Web.HttpUtility]::UrlDecode($DecodeString)
}

$Lines = Get-Content c:\squid\var\logs\access.log
Get-UrlDecode $Lines > c:\squid\var\logs\access.unicode.log
PS> Set-ExecutionPolicy RemoteSigned
PS> ./squidlog-decode.ps1
PS> Set-ExecutionPolicy Restricted

■Windows版のログもちゃんと変換するには。

> c:\squid\sbin\squid.exe -k rotate -n "Squid""
> scp c:\squid\var\logs\access.log.1 user@remote-debian-host:/home/user
$ sudo cat ~/access.log.1 | nkf -w8 -Lu -d | nkf --url-input