1【例文】grep "キーワード" $(ls -t /var/log/* | head -1)
【解説】
ls -t /var/log/*
コマンドは、/var/log/
ディレクトリ内のすべてのファイルの一覧を作成します。-t
オプションは、最新のファイルが一覧の先頭に表示されるようにします。head -1
コマンドは、一覧の先頭のファイルのみを抽出します。$(command)
は、サブシェル内でコマンドを実行し、その結果を取得するための構文です。これにより、最新のログファイル名が取得されます。grep "キーワード" ファイル名
は、指定されたキーワードを持つ行を含むファイル内のテキストを検索します。上記のコマンドでは、最新のログファイルに対してgrepコマンドが実行されます。
2【例文】grep "キーワード" $(find /var/log -type f -mtime 0 -o -mtime 1)
【解説】
-
find /var/log -type f -mtime 0 -o -mtime 1
コマンドは、/var/log/
ディレクトリ内のファイルを検索します。-type f
は、ファイルのみを対象に検索することを指定します。-mtime 0
は、最終変更日が現在の日付と一致するファイルを選択します(当日のログ)。-o
は、またはの意味で、前の条件に加えて次の条件も適用します。-mtime 1
は、最終変更日が現在の日付の前日と一致するファイルを選択します(前日のログ)。
-
$(command)
は、サブシェル内でコマンドを実行し、その結果を取得するための構文です。これにより、当日または前日のログファイル名が取得されます。 -
grep "キーワード" ファイル名
は、指定されたキーワードを持つ行を含むファイル内のテキストを検索します。上記のコマンドでは、当日または前日のログファイルに対してgrepコマンドが実行されます。
このコマンドを使用すると、指定したキーワードを持つ当日または前日のログの内容が表示されます。必要に応じてパスやキーワードを調整してください。
3【例文】grep "キーワード" $(find /var/log -type f -mtime 0 -o -mtime 1) | while read -r line; do echo "$(date -d "$(echo "$line" | awk '{print $1 " " $2 " " $3}')" +'%Y:%m:%d:%H:%M:%S') $(echo "$line" | awk '{$1=$2=$3=""; print $0}')" ; done
【解説】
-
grep "キーワード" $(find /var/log -type f -mtime 0 -o -mtime 1)
コマンドは、当日または前日のログファイルからキーワードを検索します。 -
while read -r line; do ... done
は、grep
コマンドの出力を1行ずつ処理するためのループを作成します。 -
date -d "$(echo "$line" | awk '{print $1 " " $2 " " $3}')" +'%Y:%m:%d:%H:%M:%S'
は、echo "$line" | awk '{print $1 " " $2 " " $3}'
で抽出したタイムスタンプを指定した形式に変換します。 -
echo "$line" | awk '{$1=$2=$3=""; print $0}'
は、ログメッセージ部分を表示します。
このコマンドを使用すると、指定したキーワードを含む当日または前日のログが、Y:M:D:h:m:s形式のタイムスタンプとともに表示されます。
4【例文】grep "キーワード" $(find /var/log -type f -mtime 1) | wc -l
-
find /var/log -type f -mtime 1
コマンドは、前日のログファイルを検索します。 -
grep "キーワード"
は、キーワードを含む行を検索します。 -
wc -l
コマンドは、行数をカウントします。
- 必要に応じてパスを調整してください。
キーワード
には、実際に検索したいキーワードを指定してください。- コマンドは特定のログ形式やファイル名に依存しており、環境によって異なる場合があります。必要に応じて適宜調整してください。
- 忘備録なので責任はとれませんNCでお願いします。