• Linux 脚本内容指定用户执行


    #!/bin/bash
    set -x
    
    ## 因为这些变量在下面要用,所以要写在最上面,
    
    ## 如果直接写在下面,则变量获取不到,并且下面的 $ 标识的都要用 引号引起来,否则这些参数接收不到
    
    tarfile=$1
    
    tarfile_name=${tarfile##*/}
    
    echo "$tarfile"
    echo "$tarfile_name"
    
    ## 切换用户,下面的命令都以这个用户创建文件获执行命令
    
    su - admin <<EOF
    
    # 切换目录,因为切换用户后,目录变为 /home ,而不是在当前脚本执行的目录
    
    cd /export/console_deploy
    
    # 判断输入参数是否为空
    
    if [ ! -n "$1" ] || [ ! -n "$2" ] || [ ! -n "$3" ];then
    echo "参数个数少于3个"
    exit;
    fi
    
    # 判断目录是否存在
    
    if [ -d /export/App/"$3" ] ; then
    echo "$3 目录已存在"
    else
    echo "创建目录 $3"
    mkdir /export/App/"$3"
    fi
    
    # 将变量tarfile 中的字符进行替换,变为新的url
    wget ${tarfile//"要替换的字符"/"替换的字符"}
    
    # 解压下载的文件到指定目录
    
    tar zxvf "$tarfile_name" -C ../console_deploy_pkgs
    
    /bin/rm -rf /export/App/"$3"/*
    
    # 解压 war 包 到指定的目录下
    unzip "../console_deploy_pkgs/target/"$2".war" -d /export/App/"$3"
    
    # 替换application.properties 中的 spring.profiles.active= 的值
    sed -i "s/spring.profiles.active=.*/spring.profiles.active=console_dev/g" /export/App/"$3"/WEB-INF/classes/application.properties
    
    /bin/rm -rf "$tarfile_name"
    /bin/rm -rf ../console_deploy_pkgs/*
    
    /export/Shell/"$3"/tomcat
    
    EOF
    

      

  • 相关阅读:
    Android开发-API指南-<uses-configuration>
    Android开发-API指南-<supports-screens>
    Android开发-API指南-<supports-gl-texture>
    Android开发-API指南-<service>
    Android开发-API指南-<receiver>
    Android开发-API指南-<provider>
    Android开发-API指南-<permission-tree>
    maven scope 以及依赖传递
    转发和重定向
    Apache
  • 原文地址:https://www.cnblogs.com/zhangjianbin/p/9245014.html
Copyright © 2020-2023  润新知