Mac自动化配置Tomcat环境的Bash脚本

脚本特点

  • 自动化环境变量设置:脚本自动检测并设置TOMCAT_HOME环境变量。
  • Tomcat版本检测:通过Homebrew获取当前安装的Tomcat版本。
  • 用户管理:添加或更新Tomcat的admin用户,密码固定为Test_password
  • 服务重启:自动重启Tomcat服务以应用更改。

使用步骤

  1. 确保系统安装了Bash和Homebrew,Tomcat通过Homebrew安装。
  2. 保存脚本为setup_tomcat.sh
  3. 给予执行权限:chmod +x setup_tomcat.sh
  4. 运行脚本:./setup_tomcat.sh
#!/bin/bash

# 函数:询问用户是否继续操作
ask_to_continue() {
    read -p "$1 (Y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        echo "操作已取消"
        exit 1
    fi
}

# 函数:安全地添加或更新环境变量到~/.zshrc
add_or_update_zshrc() {
    local var_name=$1
    local var_value=$2

    if grep -q "^export $var_name=" ~/.zshrc; then
        echo "$var_name 环境变量已经存在,准备更新..."
        # 更新现有的环境变量
        sed -i.bak "s|^export $var_name=.*|export $var_name=$var_value|" ~/.zshrc
    else
        echo "export $var_name=$var_value" >> ~/.zshrc
    fi
}

# 检查 TOMCAT_HOME 环境变量
if grep -q "export TOMCAT_HOME" ~/.zshrc; then
    echo
    echo "TOMCAT_HOME 环境变量已经存在。"
    ask_to_continue "是否要更新这个配置?"
fi

# 获取 Tomcat 的完整版本号
tomcat_version=$(brew info tomcat | grep /usr/local/Cellar/tomcat | awk -F'/' '{print $6}' | awk '{print $1}')
if [ -z "$tomcat_version" ]; then
    echo "未能找到 Tomcat 版本信息,请确保 Tomcat 已通过 Homebrew 安装。"
    exit 1
fi

# 设置 TOMCAT_HOME 环境变量并添加到 .zshrc
export TOMCAT_HOME=/usr/local/Cellar/tomcat/$tomcat_version
add_or_update_zshrc "TOMCAT_HOME" "$TOMCAT_HOME"

# 启动一个新的 zsh 会话以应用环境变量更改
echo
echo "正在启动新的 zsh 会话以应用更改..."
zsh -c "source ~/.zshrc && echo '新的 TOMCAT_HOME 环境变量为:' && echo \$TOMCAT_HOME"

# 检查 Tomcat 用户配置文件
tomcat_users_file=$TOMCAT_HOME/libexec/conf/tomcat-users.xml
if grep -q "<user username=\"admin\" " $tomcat_users_file; then
    echo
    echo "Tomcat admin 用户已经存在。"
    ask_to_continue "是否要覆盖这个配置?"
    # 删除原来的 admin 用户
    sed -i.bak '/<user username="admin" /d' $tomcat_users_file
fi

# 设置固定的 Tomcat admin 用户密码
tomcat_password="Test_password"

# 添加新的 Tomcat 用户
echo
echo "正在添加 admin 用户..."
echo "新密码为:$tomcat_password"
sed -i.bak "s|</tomcat-users>|  <role rolename=\"manager-gui\"/>\n  <role rolename=\"admin-gui\"/>\n  <user username=\"admin\" password=\"$tomcat_password\" roles=\"manager-gui,admin-gui\"/>\n</tomcat-users>|" $tomcat_users_file

# 重启 Tomcat 服务
echo
echo "正在重启 Tomcat 服务..."
brew services restart tomcat

# 完成提示
echo
echo "操作完成!"

安全提示

脚本中使用了固定密码,建议仅在开发或测试环境中使用,或更改为强密码以提高安全性。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值