
ssh
私はボックスに入って成功または失敗を監視する必要があるプロセスを開始し(人が)、次のボックスに移動して繰り返しスクリプトを作成しようとしています。
プロセスによって作成されたログでtailを使用しようとしましたが、スクリプトの実行中にキーボード入力を読み取るtail -f
方法が見つかりませんでした。tail -f
tail -f
理想的には、プロセスが成功するまで記録し、1つのキーを押してスクリプトを続行するか、起動エラーがある場合は別のキーを押してスクリプトを終了したいと思います。
可能ですか?
これまで私はただ次のことを思い出しました。
#!/bin/bash
kb=""
until [ "$kb" == "n" ]; do
tail /var/log/java-app.log
read -t 1 kb
done
ほとんどがうまくいきますが、這います。 Javaアプリケーションの起動中に一時停止が発生し、時々同じ10行が繰り返され、[OK]をクリックする必要がenterありますn。私はtail -f
キーボードで別の変数(好ましくは2つ)を使用して読み続けたいと思います。可能ですか?
{編集}
実際にそう思いました。
tail -f /var/log/java-app.log | tee > ( grep -q "YADA YADA" )
私の最善の選択です。Ctrl+C間違いを見つければできます。
答え1
#! /bin/bash
echo "Starting tail in the background..."
tail -f input &
pid=$!
trap "kill $pid" EXIT
while true; do
read kb
test n = "$kb" && break
done