リモートサーバーからローカルディレクトリまでログファイルを追跡できるスクリプトを作成しようとしています。テール-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