fix (test)
This commit is contained in:
parent
e0b0f88dff
commit
6ce4550518
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# JDK 17 安装脚本 for CentOS
|
||||||
|
# 作者:awt
|
||||||
|
# 日期:mx
|
||||||
|
|
||||||
|
# 检查是否以root用户运行
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "请使用root用户或通过sudo运行此脚本"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 安装必要依赖
|
||||||
|
echo "正在安装必要依赖..."
|
||||||
|
yum install -y wget tar gzip
|
||||||
|
|
||||||
|
# 设置JDK版本
|
||||||
|
JDK_VERSION="17.0.10"
|
||||||
|
JDK_BUILD="7"
|
||||||
|
JDK_ARCHIVE="jdk-${JDK_VERSION}_linux-x64_bin.tar.gz"
|
||||||
|
JDK_URL="https://download.oracle.com/java/${JDK_VERSION%%.*}/archive/jdk-${JDK_VERSION}_linux-x64_bin.tar.gz"
|
||||||
|
|
||||||
|
# 安装目录
|
||||||
|
INSTALL_DIR="/usr/lib/jvm"
|
||||||
|
JAVA_HOME_DIR="jdk-${JDK_VERSION}"
|
||||||
|
|
||||||
|
# 创建安装目录
|
||||||
|
mkdir -p ${INSTALL_DIR}
|
||||||
|
cd ${INSTALL_DIR}
|
||||||
|
|
||||||
|
# 下载JDK (使用--no-check-certificate和--no-cookies配合Oracle的复杂下载逻辑)
|
||||||
|
echo "正在下载JDK ${JDK_VERSION}..."
|
||||||
|
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" ${JDK_URL} -O ${JDK_ARCHIVE}
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "JDK下载失败,请检查网络连接或URL有效性"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 解压安装
|
||||||
|
echo "正在安装JDK..."
|
||||||
|
tar -xzf ${JDK_ARCHIVE}
|
||||||
|
rm -f ${JDK_ARCHIVE}
|
||||||
|
|
||||||
|
# 设置环境变量
|
||||||
|
echo "配置环境变量..."
|
||||||
|
cat > /etc/profile.d/java.sh <<EOF
|
||||||
|
export JAVA_HOME=${INSTALL_DIR}/${JAVA_HOME_DIR}
|
||||||
|
export PATH=\$JAVA_HOME/bin:\$PATH
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 加载环境变量
|
||||||
|
source /etc/profile.d/java.sh
|
||||||
|
|
||||||
|
# 更新alternatives系统
|
||||||
|
echo "设置系统默认Java..."
|
||||||
|
if [ -d "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin" ]; then
|
||||||
|
update-alternatives --install "/usr/bin/java" "java" "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/java" 1000
|
||||||
|
update-alternatives --install "/usr/bin/javac" "javac" "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/javac" 1000
|
||||||
|
update-alternatives --set java "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/java"
|
||||||
|
update-alternatives --set javac "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/javac"
|
||||||
|
else
|
||||||
|
echo "Java二进制文件未找到,安装可能失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 验证安装
|
||||||
|
echo "验证Java版本..."
|
||||||
|
java -version
|
||||||
|
javac -version
|
||||||
|
|
||||||
|
echo "JDK ${JDK_VERSION} 安装完成!"
|
||||||
|
echo "JAVA_HOME 设置为: ${INSTALL_DIR}/${JAVA_HOME_DIR}"
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 日志级别定义
|
||||||
|
LOG_LEVEL_DEBUG=10
|
||||||
|
LOG_LEVEL_INFO=20
|
||||||
|
LOG_LEVEL_WARNING=30
|
||||||
|
LOG_LEVEL_ERROR=40
|
||||||
|
|
||||||
|
# 当前日志级别
|
||||||
|
CURRENT_LOG_LEVEL=$LOG_LEVEL_INFO
|
||||||
|
|
||||||
|
# 颜色定义
|
||||||
|
COLOR_RESET="\033[0m"
|
||||||
|
COLOR_DEBUG="\033[0;36m"
|
||||||
|
COLOR_INFO="\033[0;32m"
|
||||||
|
COLOR_WARNING="\033[0;33m"
|
||||||
|
COLOR_ERROR="\033[0;31m"
|
||||||
|
|
||||||
|
# 日志函数
|
||||||
|
log() {
|
||||||
|
local level=$1
|
||||||
|
shift
|
||||||
|
local message="$*"
|
||||||
|
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||||
|
local color=$COLOR_RESET
|
||||||
|
|
||||||
|
if [ "$level" -ge "$CURRENT_LOG_LEVEL" ]; then
|
||||||
|
case $level in
|
||||||
|
$LOG_LEVEL_DEBUG)
|
||||||
|
color=$COLOR_DEBUG
|
||||||
|
;;
|
||||||
|
$LOG_LEVEL_INFO)
|
||||||
|
color=$COLOR_INFO
|
||||||
|
;;
|
||||||
|
$LOG_LEVEL_WARNING)
|
||||||
|
color=$COLOR_WARNING
|
||||||
|
;;
|
||||||
|
$LOG_LEVEL_ERROR)
|
||||||
|
color=$COLOR_ERROR
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo -e "${color}[$timestamp] [${level}] $message${COLOR_RESET}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 帮助函数
|
||||||
|
show_help() {
|
||||||
|
echo "Usage: $0 [options]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " -h, --help Show this help message and exit"
|
||||||
|
echo " -v, --verbose Set log level to debug"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 解析命令行参数
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
-h|--help)
|
||||||
|
show_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-v|--verbose)
|
||||||
|
CURRENT_LOG_LEVEL=$LOG_LEVEL_DEBUG
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown parameter passed: $1"
|
||||||
|
show_help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# 示例日志记录
|
||||||
|
log $LOG_LEVEL_INFO "Script started"
|
||||||
|
log $LOG_LEVEL_DEBUG "This is a debug message"
|
||||||
|
log $LOG_LEVEL_WARNING "This is a warning message"
|
||||||
|
log $LOG_LEVEL_ERROR "This is an error message"
|
||||||
Loading…
Reference in New Issue