スポンサーサイト
-------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。

何度も調べてるので備忘録でメモします。
■特定のURLに来たアクセスをIPアドレスごとにグルーピングしてカウントする
zcat access_log.23.gz | grep -E 'GET [^"]+/path/to' | cut -d ' ' -f 1 | sort | uniq -c | sort -n
zcat access_log.23.gz | grep -E 'GET [^"]+/path/to' | cut -d ' ' -f 4,5,1,6,7,8,11
zcat access_log.23.gz access_log.22.gz access_log.21.gz
cat /path/to/access.log | grep 'GET / HTTP/1.1' | cut -d ' ' -f 1 | sort | uniq -c
cat /path/to/access.log | grep 'GET / HTTP/1.1' | grep 'www.google.co.jp' | cut -d ' ' -f 1 | sort | uniq -c
cat /path/to/access.log | grep 'GET / HTTP/1.1' | grep 'search.yahoo.co.jp' | cut -d ' ' -f 1 | sort | uniq -c
linux+apache+SSL(open ssl)+mod_rewriteの設定でハマったので書いておきます。
SSLの設定はこちらのサイトを参考にさせて頂きました。
ハマったのは、対象サーバーで既に多数の名前ベースのバーチャルホストを運用していたことです。そもそも、そのあたりの仕組みをあまり理解していなかったのが原因ですが・・・
名前ベースのバーチャルホストでは
NameVirtualHost *:80このようにして、まず名前ベースで使うIPアドレス(ポート)を指定して
<VirtualHost *:80>こんな感じでDocumentRootとServerNameのペアを登録していきます。他のサイトは80のまま運用したいので、このNameVirtualHostを443に変えてしまうわけには行きません。
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost 192.168.0.2:443>と別途書いてやります。
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
SSL........
</VirtualHost>
/etc/httpd/conf.d/ssl.confここに設定ファイルが自動で作成されるのでそちらを編集するか、読み込まないようにしましょう。
<Directory "/www/domain">.htaccessの上書きを許可するのを忘れてました。
AllowOverride All
</Directory>
まず、findコマンドでファイルのリストを取ります。結果をパイプでコピーコマンドに渡しますので、相対パスでリストしたいので、コピーしたいソースのディレクトリに入ります。
また、リストにディレクトリが含まれると、再帰的にコピーしてしまい、取り除きたいディレクトリもコピーしてしまうので、-typeを指定してファイルのみ検索します。
ディレクトリを取り除くのは、-regexを使用します。-nameはファイル名に対するパターンです。複数取り除きたいときは-regexを繰り返し使用できます。
この段階で一回コマンドを実行して、期待するファイルをリストアップしてるか確認するといいでしょう。
cd /path/to/src/dir
find ./ -type f -regex '\./path/to/except/dir1/.*' -regex '\./path/to/except/dir2/.*'
cpioのオプションの意味は
find ./ -type f -regex '\./path/to/except/dir1/.*' -regex '\./path/to/except/dir2/.*' | cpio -pdv /path/to/dest/dir
で見ることが出来ます。
cpio --help
teeというコマンドがあります。
標準・エラーともに出力するならこんな感じでしょうか。
command 2>&1 | tee file.txt