ssh
나는 상자에 들어가 성공 또는 실패를 모니터링해야 하는 프로세스를 시작하고(사람이) 다음 상자로 이동하여 반복하는 스크립트를 작성하려고 합니다 .
프로세스에서 작성한 로그에서 tail을 사용하려고 시도했지만 스크립트가 실행되는 동안 키보드 입력을 읽도록 tail -f
하는 방법을 찾지 못했습니다 .tail -f
tail -f
이상적으로는 프로세스가 성공할 때까지 기록하고, 하나의 키를 누르고 스크립트가 계속되도록 하거나, 시작 오류가 있는 경우 다른 키를 누르고 스크립트를 종료하고 싶습니다 .
가능합니까?
지금까지 나는 단지 다음을 생각해 냈습니다.
#!/bin/bash
kb=""
until [ "$kb" == "n" ]; do
tail /var/log/java-app.log
read -t 1 kb
done
대부분 작동하지만 투박합니다. Java 애플리케이션을 시작하는 중 일시 중지가 발생하여 가끔 동일한 10줄이 반복되어 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