複数の出力行にまたがるときにパターン「301domaname.com200」がBASH内に存在するかどうかを検証するための迅速で簡単な方法は何ですか?
私は次のようなものを使用していました:
awk '/301|domain.com|200/'
pcregrep -M '301|domain\.com|200'
しかし、順序は重要ではありません。私はそれをどのように述べるのかわかりません。どうやらうまくいくと思ったのは、行末をキャッチしていないことです。
pcregrep -M '301.*domain\.com.*200'
バックグラウンド:
小さなmod_rewriteサーバーを構築していますが、どのドメインがどの宛先にリダイレクトされているかを監視する方法が必要です。
その結果、私はこれを処理する小さなNagiosチェックスクリプトを組み立てています。
私がこれまでに持っているのは次のとおりです。
curl qa-mod-rewrite.domain.com -i -I -L
HTTP/1.1 301 Moved Permanently
Via: 1.1 GREGORY
Connection: close
Proxy-Connection: close
Date: Thu, 14 Nov 2013 16:35:19 GMT
Location: http://qa.domain.com/
Content-Type: text/html; charset=iso-8859-1
Server: Apache/2.2.3 (CentOS)
HTTP/1.1 200 OK
Via: 1.1 GREGORY
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 56772
Expires: -1
Date: Thu, 14 Nov 2013 16:35:03 GMT
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
Cache-Control: no-cache, no-store
Pragma: no-cache
X-AspNet-Version: 2.0.50727
Set-Cookie: cfcausa.qa#sc_wede=1; path=/
Set-Cookie: ASP.NET_SessionId=i4z1c4ahqoiw13552z413hbs; path=/; HttpOnly
X-Powered-By: ASP.NET
301.*domain\.com.*200
たとえば次のように一致するように、そこには誤検知の余地があります。
HTTP / 1.1 404見つかりません Content-Length:301 0 X-Pingback:http:// blah。domain.com / xmlrpc 最終更新日:200年11月14日木曜日、9 19:27:05 GMT
あなたはもう少し徹底して、例えばそれを書くことができます:
curl -sIL http://qa-mod-rewrite.domain.com |
tr -d '\r' |
awk -v RS= '
NR == 1 && $2 == "301" && /\nLocation: [^\n]*domain\.com/ {redir=1}
$2 == "200" {end=1}
END {exit !(redir*end)}'
変数データの場合:
url=$1
EXPECTED_REDIRECTION=$2
EXPECTED_REDIRECTION_CODE=$3
EXPECTED_TERMINAL_CODE=$4
export EXPECTED_REDIRECTION EXPECTED_REDIRECTION_CODE EXPECTED_TERMINAL_CODE
curl -sIL "$url" |
tr -d '\r' |
awk -v RS= '
BEGIN {
re = ENVIRON["EXPECTED_REDIRECTION"]
gsub(/[][^.$+?\\()]/, "\\&",re)
re = "\nLocation: [^\n]*" re
}
NR == 1 && $2 == ENVIRON["EXPECTED_REDIRECTION_CODE"] && $0 ~ re {redir=1}
$2 == $ENVIRON["EXPECTED_TERMINAL_CODE"] {end=1}
END {exit !(redir*end)}'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加