在CentOS系统中,Java恢复可以通过以下几种方法进行:
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/home/logs/gc-${POD_IP}-(date '+%s').log
-XX:OnOutOfMemoryError=/home/restart.sh
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/logs/dump-${POD_IP}-(date '+%s').hprof
top
和 jstack
命令:通过 top -Hp <PID>
查看线程资源占用情况,使用 jstack <PID>
获取线程调用栈,定位并解决死循环等问题。restart.sh
,检查Java进程是否运行,如果未运行则重启服务。#!/bin/sh
export JAVA_HOME=/usr/java/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/tools.jar
jarDir= "/home"
jarFile= "wuliaokankan.cn-1.1-0.0.1.jar"
logFile= "/home/logs/restart.log"
restart () {
cd $jarDir
if [ ! -f $jarFile ]; then
echo "jar not exist" >> $logFile
return
fi
(java -jar $jarFile &)
}
check () {
count=$(ps -ef | grep $jarFile | grep -v "grep" | wc -l)
if [ $count -gt 0 ]; then
echo " $(date) : $jarFile is running" >> $logFile
else
restart $jarDir $jarFile
echo " $(date) : $jarFile is down. restarting" >> $logFile
fi
}
check $jarDir $jarFile
使用 crontab -e
将该脚本加入系统定时任务,每小时检查一次Java进程状态。TestDisk
或 extundelete
:这些工具可以帮助恢复误删除的文件。TestDisk
适用于多种文件系统,extundelete
专门用于ext3和ext4文件系统。Alternatives
工具:如果系统中安装了多个Java版本,可以使用 Alternatives
工具来设置默认的Java版本。ps -ef | grep java
命令查找Java进程并记录其PID。kill -9 <PID>
命令停止Java进程,替换 <PID>
为找到的进程ID。java -jar /path/to/your-jar-file.jar
命令启动Java应用程序。extundelete
工具。首先需要安装 extundelete
,然后使用 extundelete /dev/sdXY --restore-all
或 extundelete /dev/sdXY --restore-directory /path/to/deleted/directory
命令恢复文件。logrotate
进行日志轮转和备份,可以定期备份Java日志文件。如果需要恢复日志,可以从备份目录中恢复相应的日志文件。yum
命令来安装或卸载Java相关的软件包。例如,使用 yum install java-1.8.0-openjdk
安装Java环境。通过上述方法,可以在CentOS系统中有效地进行Java服务的恢复和数据的管理。