1. 程式人生 > >jdk 自動化指令碼

jdk 自動化指令碼

新增沒有登入許可權

需要理解linux使用者,首先登陸的是root使用者,擁有所有的許可權,但是該許可權太大,一般都會分配其他使用者使用,並且在部署程式時,需要分配一個沒有登入許可權的使用者,這樣改程式不能隨意被修改,如何新增沒有登入許可權的使用者和使用者組如下:

  1. groupadd groupname
    useradd -g groupname username -s /bin/false //-s為預設shell,不給shell,也就不能登入
  2. groupadd groupname
    useradd -g groupname username -s /sbin/nologin //-s為預設shell,預設給予shell,但是不給登入shell

指令碼

先給出指令碼 (java.sh 指令碼名稱):

#!/bin/sh

app_User=ice-app
App_Group=app

# 安裝檔案
Java_Install_File=jdk-8u192-linux-x64.tar.gz
#Java 目錄名稱
Java_File_Name=jdk1.8.0_192
# 應用程式目錄
Java_Home_Opt=/opt
# 
Java_Home_App=/opt/jdk1.8.0_192
# 解壓Java檔案
install(){
        echo "Install Java..."
        sudo tar zxvf $Java_Install_File
        #移動Java程式到opt目錄下
        sudo mv $Java_File_Name $Java_Home_Opt
        #create group if not exists  
        egrep "^$App_Group" /etc/group >& /dev/null
        if [ $? -ne 0 ]
        then
                echo "Creating Application Group:"$App_Group
                sudo groupadd -f $App_Group
        fi
        #create user if not exists  
        egrep "^$app_User" /etc/passwd >& /dev/null
        if [ $? -ne 0 ]
        then
                echo "Creating Application User:"$app_User
                sudo useradd -g $App_Group -d /home/$app_User -m -s /bin/false -r $app_User
        fi
        #設定目錄許可權
        echo "Set The Permission For User: "$app_User
        sudo chown -R $app_User $Java_Home_App
        sudo chmod -R o+w $Java_Home_App
        # 追加Java環境變數
        echo '# java environment param' >> /etc/profile
        echo "export JAVA_HOME=$Java_Home_App" >> /etc/profile
        echo 'export JRE_HOME=$JAVA_HOME/jre' >> /etc/profile
        echo 'export PATH=$JAVA_HOME:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH' >> /etc/profile

        # 重新整理配置文
        source /etc/profile
}
# 刪除Java jdk程式
uninstall(){
        # 刪除/etc/profile 環境變數
        sed -i "/export JAVA_HOME=/d" /etc/profile
        sed -i '/export JRE_HOME/d' /etc/profile
        sed -i '/export PATH=$JAVA_HOME/d' /etc/profile
         # 刪除檔案
        sudo rm -rf $Java_Home_App
        # 重新整理配置文
        source /etc/profile
}
###################################
#讀取指令碼的第一個引數($1),進行判斷
#引數取值範圍:{install|uninstall}
#如引數不在指定範圍之內,則列印幫助資訊
###################################
case "$1" in
        'install')
         install
         ;;
        'uninstall')
         uninstall
         ;;
         *)
        echo "Usage: $0 {install|uninstall}"
esac
  exit                

需要將指令碼變為可執行檔案
chmod +x java.sh

使用指令碼
./java.sh install 部署程式
./java.sh uninstall 解除安裝程式

程式完成功能
install功能:

  1. 解壓指令碼
  2. 當用戶和使用者組不存在時,新增使用者和使用者組
  3. 新增環境變數並重新整理配置檔案

uninstall功能:
1.刪除環境變數並重新整理配置檔案
2.刪除java檔案

注意: jdk-8u192-linux-x64.tar.gz檔案需要和java.sh放在一起,才能夠完成部署
jdk1.8.0_192是tar解壓之後的檔案,這個檔案解壓時可以指定,沒有指定,則使用預設檔案。

編輯指令碼思路

  1. 編輯該Java指令碼思路,首先是需要肯定是要部署一遍,知道部署的步驟,一上來就寫指令碼,是肯定不行的
  2. 理解指令碼的語法 : sed '/匹配內容/d' 檔名 表示刪除某行內容
    echo '內容' >> 檔名 表示向檔案追加內容