#!/bin/bash
# vim:sw=4:ts=4:et
< AUTHOR:<郵箱號> DATE:2021-04-21 DESCRIBE:描述腳本主要功能 SYSTEM:CentOS7/RedHat7 WARNING:警告信息 MODIFY:記錄修改信息,方便查看和維護 INFO export LC_ALL="zh_CN.UTF-8" #支持中文 set -e #打開異常退出功能 # set -x #打開Debug功能 ######################定義變量###################### source /etc/profile #避免用ansible、Jenkins執(zhí)行shell腳本出現(xiàn)環(huán)境變量不對的問題 WORKDIR="$(cd $(dirname "$0") || exit 1;pwd)" #腳本所在路徑 echo "Current Excute: bash ${WORKDIR}/$0 $@" function_dir=${WORKDIR}/myfunction.lib #創(chuàng)建日志文件 if [[ ! -d ${WORKDIR}/logs ]];then mkdir -p ${WORKDIR}/logs else rm -f ${WORKDIR}/logs/*.log fi [[ $UID -ne 0 ]] && echo "[ERROR] Please Use root Excute......" && exit 1 #輸出信息 # ${FUNCNAME[0]代表當前函數(shù)名,$LINENO代表當前代碼行號 echo "$(date "+%Y-%m-%d %T.%N")[ERROR ${FUNCNAME[0]}:$LINENO] Invalid Param" echo "$(date "+%Y-%m-%d %T.%N")[INFO]:Install Success" #加載函數(shù)庫 if [[ -f "$function_dir" ]];then source $function_dir else echo -e "\033[31m函數(shù)庫不存在\033[0m" exit 71 fi ######################功能函數(shù)###################### #檢查環(huán)境 Check_Env() { echo "[INFO] Begin Check_Env..." [[ $UID -ne 0 ]] && echo "[ERROR] Please Use Admin(root) Excute......" && exit 1 #檢查命令是否存在 for cmd_bin in curl mvn do if ! command -v ${cmd_bin} &> /dev/null;then echo "[ERROR] ${cmd_bin} command Not Exist" && exit 1 fi done echo "[INFO] Check_Env Success" } #幫助信息 Help() { cat << EOF Usage: ======================================================== optional arguments: -h 提供幫助信息 -num 虛擬機編號 EXAMPLE: bash $0 -num 10 web1 eth0 192.168.4.1/24 EOF } #打印腳本說明 Print() { cat << EOF ########################################################## #1、AUTHOR: #2、DATE:2020-01-11 #3、功能:為ubuntu系統(tǒng)配置本地apt源和網(wǎng)絡(luò)apt源 #4、注意事項:配置本地apt源需確保該腳本的同級目錄下有正確的離線apt源 #5、制作離線apt源可參考:https://blog.csdn.net/anqixiang/article/details/100018413 ########################################################## EOF } #系統(tǒng)版本 System_Version() { cat << EOF 1.ubuntu14.04 2.ubuntu16.04 3.ubuntu18.04 EOF } #######################主函數(shù)####################### [[ $# -ne 1 ]] && echo "[ERROR] Invalid Param!!! eg:bash $0 ansible_path" && exit 1 [[ $# -le 5 ]] && echo "[ERROR] Invalid Param!!!,Please Excute:bash $0 -h" && exit 1 #主函數(shù) main() { Print cecho 32 "開始執(zhí)行......" echo "1.本地源" echo "2.網(wǎng)絡(luò)源" read -p "請選擇:" choice case ${choice} in 1) Conf_Apt;; 2) echo "1.ubuntu14.04" echo "2.ubuntu16.04" echo "3.ubuntu18.04" read -p "請選擇系統(tǒng)版本:" choice case ${choice} in 1) Conf_Ubuntu14.04;; 2) Conf_Ubuntu16.04;; 3) Conf_Ubuntu18.04;; *) cecho 31 "Invalid option!" esac ;; *) cecho 31 "Invalid option!" esac } main if [[ $# -eq 0 ]];then Excute_All elif [[ "x$1" == "x-c" -a "$#" -eq 2 ]];then case $2 in system) Init_System;; *) cecho 31 "Invalid option:bash `basename $0` [-h]" esac elif [[ "x$1" == "x-h" ]];then Help else Help && exit 1 fi [[ $# -eq 0 ]] && HELP while getopts :hnum::a: ARGS do case $ARGS in h) HELP;; nu|m) Name=rh7_node$OPTARG;; \?) cecho 31 "Invalid option:bash `basename $0` [-h]" esac done