公司里面一個長時間運行的環境會出現問題, 這邊簡單寫了一個腳本自動獲取日志信息
腳本如下
注意 我的path 其實就是復用的 我們應用里面的jdk 剩下的就非常簡單了.
每個日志都自動打包 並且移除源文件來減少磁盤占用量.
export PATH=$PATH:/gscloud/jstack/runtime/java/x86_64-linux/bin/ export pid=`jps |grep caf-bootstrap.jar |awk '{print $1 }' ` echo $pid export now=`date +%Y%m%d%H%M` echo $now cd /javalog jcmd $pid VM.flags >> $now.log jcmd $pid Thread.print >> $now.log jcmd $pid GC.class_histogram >> $now.log jcmd $pid GC.heap_info >> $now.log tar -zcvf $now.log.tar.gz $now.log --remove-files
設置后之后放到 /javalog 目錄下面
然后執行一個計划任務就可以
crontab -e 輸入 */2 * * * * /javalog/java.sh