Jar 패키지 원클릭으로 다시 시작하는 셸 스크립트 및 새 서버 배치 경험

3080 단어
원문은 블로그원에서 시작되었고 작가: 포스트 사춘기의 Keats;주소:https://www.cnblogs.com/keatsCoder/옮겨 싣겠습니다. 감사합니다.

앞말


최근에 회사에서 고객을 위해 새로운 환경을 재배치했습니다. 제가 기초 환경의 배치를 완성했습니다. 배치 과정에서 경험을 정리하고 정원의 친구들에게 공유했습니다.
  • curl 명령을 사용하여 네트워크를 새 서버로 가져온 후 먼저 서버 네트워크가 원활한지 확인합니다.우리가 자주 사용하는 ping 명령은 ICMP 프로토콜을 사용합니다. 대부분의 서버는 도메인 이름 출입국 규칙을 설정합니다. 일부 주소는 ping이 통하더라도 서버에 접근할 수 없는 경우가 있습니다.이 때curlhost:port 명령을 사용하여 이 서버가 http 요청을 외부 서버에 정상적으로 보낼 수 있는지 테스트할 수 있습니다
  • JDK 새 서버를 설치하면 일반적으로 JDK가 없고 자바-version 명령으로 볼 수 있습니다.없으면yum명령을 통해 설치합니다. 만약 버전이 틀렸다면 먼저 마운트를 해제하고 설치할 수 있습니다
    #   
    rpm -qa | grep java | xargs rpm -e --nodeps 
    #   1.8
    yum install java-1.8.0-openjdk* -y
    
  • 서버 시간을 검사합니다. 일반적으로 새 서버 시간은 네트워크 시간과 일치하지 않습니다. 이 때 서버 시간date/timedatectl 명령을 동기화하여 시스템의 현재 시간을 볼 수 있습니다. 만약 네트워크 시간과 일치하지 않는다면
    #  
    yum -y install ntp ntpdate
    #  
    ntpdate cn.pool.ntp.org
    #  
    hwclock --systohc
    
  • 지정된 포트를 열어 응용 프로그램을 배치한 후 방화벽의 제한으로 인해 응용 프로그램이 사용하는 포트를 수동으로 열어야 한다.열기 명령은 다음과 같습니다
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    
    실행이 끝난 후 방화벽 설정을 다시 불러옵니다
    firewall-cmd --reload    
    
    어떤 서버는 내망에 있고 외망 도메인 이름이 비치며 이 포트의 외망을 내망에 개방해야 한다.이것은 서비스 성격에 따라 확정된다.만약 어떤 마이크로서비스가 서비스 간의 인터넷 방문일 뿐이라면.공망에 노출되는 것을 건의하지 않는다

  • Jar 패키지 원클릭 재시작


    Java 프로젝트는 Linux 환경에서 일반적으로 War 패키지를 Tomcat 또는jar 패키지에 배치하는 방식으로 Linux에 배치한다. 자동화 배치가 유행하는 오늘날에도 많은 회사들이 수동 배치 방식으로jar 패키지를 배치한다(예를 들어 우리 회사).최근에 우리 회사는 고객을 위해 새로운 환경(새 버전이 새 서버에 출시됨)을 다시 업그레이드했습니다. 제가 운송(rengbao)위(chongqi) 엔지니어를 겸임하여 프로젝트의 배치를 담당합니다.프로젝트가 처음 출시될 때 재부팅 작업은 매우 빈번합니다. 일반적으로 우리는 다음과 같은 명령을 사용합니다.
    ps -ef |grep  
    kill -9 PID
    nohup java -jar   &
    tail -1000f nohup.out
    

    이 네 걸음은 단숨에 이루어지고 손속도가 빠르면 10s 정도면 OK입니다. 그러나 마이크로서비스 항목이 많을 때 입력해야 할 명령 수량은 4n입니다. 한 번은 서버 시간이 정확하지 않습니다. 제가 서버 시간을 재설정하여 시계가 되돌아가고 눈꽃 ID가 생성되지 않습니다.나는 모든 서비스를 단숨에 재개했다. 그것은 시큼하고 시원하다...
    그래서 나는 셸 명령을 배워서 간단한 단추로 로그를 다시 시작하고 출력하는 스크립트를 써 보았다

    스크립트 내용

    #!/bin/bash
    #    Keats
    #   https://www.cnblogs.com/keatsCoder/
    
    
    #  
    defaultAppName='redis-cli.jar'
    appName=''
    
    if [ $1 && $1!=0 ]
    then
    	appName=$1
    else
    	appName=$defaultAppName
    fi
    
    echo ">>>>>> : $appName <<<<<

    사용 방법


    vi/vim 명령을 사용하여jar 패키지가 있는 디렉터리에 새 restart를 만듭니다.sh 파일
    vi restart.sh
    

    위의 코드를 복사하여 실행 가능한 파일 권한을 변경합니다
    chmod +x restart.sh
    

    스크립트를 실행합니다.para1para2는 옵션입니다.para1은 다시 시작하는 프로젝트의 이름을 지정합니다.para2가 존재할 때 시작만 하고 프로세스를 죽이지 않습니다
    ./restart.sh [para1] [para2]
    

    향상된 사용 방법


    세심한 친구는 스크립트에 변수 default AppName이 있다는 것을 알 수 있습니다. 이것은 기본적으로 다시 시작하는 프로젝트 이름입니다. 일반적인jar 패키지 이름은 자주 수정되지 않기 때문에 기본 응용 프로그램 이름을 수정하는 방식으로 실행할 때 응용 프로그램 이름을 입력하는 절차를 간소화할 수 있습니다.
    기본 이름을 수정한 후 시작 모드만 사용하려면
    ./restart 0 1
    

    첫 번째 매개 변수 0은 응용 이름으로 식별되지 않고 자리 차지 문자로만 사용됩니다.

    좋은 웹페이지 즐겨찾기