實現兩種登錄方式一鍵切換的腳本及相關知識點


公司測試環境有兩種登錄模式,未實現腳本一鍵切換之前,都需要手動修改網關配置、中間件域下的appr.properties文件、外網參數配置,且需去控制台重啟用戶登錄對接程序包,過程繁瑣;實現腳本切換后,可以快速切換。

一、執行outin.sh腳本

如下圖,執行.sh腳本后選擇切換的模式,則實現自動切換!!!

 對應的outin.sh腳本如下圖:

 1 #!/bin/bash
 2 echo -e "\033[33m 請輸入你需要的操作 \033[0m"                                              #輸出字符串
 3 echo -e "\033[33m 1.切換成本地登錄     2.切換成統一認證\033[0m" 
 4 echo -e "\033[33m ------------------------------------------- \033[0m" 
 5 read type                                                                               #讀取鍵盤輸入的變量
 6 if [ $type == 2 ] ; then                                                                #根據鍵盤輸入的值來執行腳本
 7         echo "開始切換統一認證"                                                            
 8         cd $(pwd)/login                                                                 #切換到路徑
 9         ./out.sh                                                                        #執行out.sh腳本
10         echo "數據庫修改完成"
11         cd /u01/ZWWG                                                       
12          sed -i 's/local-login: 1/local-login: 0/g' application.yml                     #使用sed命令直接修改application.yml文件,將local-login的值由1改為0
13         ./restart.sh                                                                    #執行網關的重啟腳本
14         echo "網關配置修改並重啟完成"
15         cd /u01/weblogic/Middleware/user_projects/domains/base_domain
16         sed -i 's/OPEN_LOCAL_LOGIN=1/OPEN_LOCAL_LOGIN=0/g' appr.properties
17         echo "appr.properties配置文件修改完成,請自行重啟ApprUAuth包"
18 else
19         echo "開始切換本地登錄"
20         cd $(pwd)/login
21         ./local.sh
22         echo "數據庫修改完成"
23         cd /u01/ZWWG
24         sed -i 's/local-login: 0/local-login: 1/g' application.yml
25         ./restart.sh
26         echo "網關配置修改並重啟完成"
27         cd /u01/weblogic/Middleware/user_projects/domains/base_domain
28         sed -i 's/OPEN_LOCAL_LOGIN=0/OPEN_LOCAL_LOGIN=1/g' appr.properties
29         echo "appr.properties配置文件修改完成,請自行重啟ApprUAuth包"
30 fi
31 ~                    
 1 相關知識點:  2 
 3 echo命令        用於字符串的輸出,使用“-e”參數進行換行
 4 read命令        用於讀取從鍵盤的輸入
 5 流程控制        if else 語法格式:
 6                if condition
 7                then
 8                    command1 
 9                    command2
10                    ...
11                    commandN
12                else
13                    command
14                fi
15 變量 示例中的type。使用變量時需在變量名前面加美元符號“$”。若想定義只讀變量,可使用readonly命令,如readonly type。 16 sed命令 行編輯器。sed 的 -i 選項可以直接修改文件內容。語法格式為: 17 sed -i 's/原字符串/新字符串/' 文件 #只修改第一個匹配內容 18 sed -i 's/原字符串/新字符串/g' 文件 #修改所有匹配內容
二、執行login目錄下的out.sh腳本

 1 #!/usr/bin/expect               
 2 
 3 set timeout 1                   #設置超時時間,單位為秒
 4 set host "192.168.110.520"      #設置變量服務器地址
 5 set username "abc"              #設置變量服務器賬號
 6 set password "123456"           #設置變量服務器賬號密碼
 7 
 8 spawn ssh $username@$host       #使用spawn命令啟動新的進程,使用變量username和host
 9 expect "*password*"             #判斷上次輸出結果里是否包含“password”的字符串,有則立即返回,否則就等待一段時間后返回;
10 send "${password}\r"            #當匹配到對應的輸出結果包含“password”時,就發送密碼到打開的ssh進程
11 expect "*]#*"                   #判斷上次輸出結果里是否包含“]#”的字符串,有則立即返回,否則就等待一段時間后返回;
12 send "sh out.sh\r"              #當匹配到對應的輸出結果包含“]#”時,就執行out.sh腳本
13 send "exit\r"                   #退出命令
14 expect eof
15 ~               
1 相關知識點: 2 
3 expext命令   使用expect命令來實現自動的交互式任務,根據程序的提示,模擬標准輸入提供給程序。使用expect時的相關命令:
4                send    用於向進程發送字符串
5                expect  從進程接收字符串
6                spawn   啟動新的進程,spawn后的send和expect命令都是和使用spawn打開的進程進行交互
三、執行520服務器上的out.sh腳本

腳本中連接上數據庫並執行update語句然后斷開連接並退出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM