私のウェブサイトのアクセスログからライブ出力を見たい。私は、この場合、 ".php"にマッチするエントリーのcertailタイプだけを見たいと思っています。Linux tail + grep + less
これは正常に動作しますが、行は次の行に折り返すと、私はそれを望んでいない:
tail -f access-log | fgrep ".php" --line-buffered
これは、行の折り返しを回避するために正常に動作しますが、それはフィルタリングされません。
less +F -S access-log
出力の構造がわかりやすいので、次の行に改行しないでファイルを調べるほうが好きです。これは私がless -S
のために必要なものです。
この種の機能はありますが、「カーソル」はファイルの最下部にとどまりません。入力するコマンドはless
です(ストリームが到着すると下部にとどまるために「SHIFT + F」を押します) :
tail -f access-log | fgrep ".php" --line-buffered | less -S
しかし、これがすべてでは動作しません:
tail -f access-log | fgrep ".php" --line-buffered | less +F -S
だから、私が欲しいものを達成する方法はありますか?
私はまた、sed
で切断して、各行が決して自分の画面よりも長くならないように、外部のソリューションを利用しますか?私が提案するのbashで
watch -n1 tail access-log | fgrep ".php" --line-buffered
は、プログラミングに関する質問であり、Linuxの使用または設定に関する質問ではありません。 SuperUser.comまたはunix.stackexchange.comは、このような質問のためのより良い場所になります。 – Barmar
ごめんなさい、これはスクリプトのように見え、Linuxの設定に似ていないと思った。私はPHPや他の言語で同じことを達成することができました –
これは設定ではなく、コマンドラインツールの通常の使用です。確かに複雑なコマンドラインとスクリプトの間にはあいまいな線があります。しかし、良い経験則(IMO)は、変数を持たない1ライナーであれば、実際にはスクリプトではないということです。 – Barmar