원격 서버에서 로컬 디렉터리까지 로그 파일을 추적할 수 있는 스크립트를 만들려고 합니다.테일-F내가 사용하고있는 것이지만 파이핑 후에보관소, 로그 파일의 로컬 복사본이 생성되더라도 아무 일도 일어나지 않습니다.
고쳐 쓰다: 스크립트가 실행되지만 테일링을 끝내려면 ctrl+c를 입력해야 하기 때문에 gzip 명령에 도달할 수 없습니다. 따라서 압축도 하지 않고 스크립트를 종료합니다.
to_Tomcat(){
# tail log file -> zips it using gzip
tail -F /sampleRemoteDirectory/logs/tomcat/sample.log > "$TomcatLogFileName"-Tomcat.log | gzip "$TomcatLogFileName"-Tomcat.log
echo ""
echo "...tailing the log file and saving it as $TomcatLogFileName-JBoss.log.gz"
echo ""
}
to_Tomcat TomcatLogFileName
sleep 10
ret=$?
# last note before the user has to exit the shell script
echo ""
echo "Saved file: $TomcatLogFileName-Tomcat.log.gz"
답변1
tail -f
마지막 몇 줄을 캡처하려면 (100 또는 무엇이든) timeout
시도해야 한다는 점을 제외하면 대화형을 의미합니다 .tail -100
주요 부분은
tail -100 /whatever/sample.log | gzip > /whatever/sample.log.gz