<代码> # !/bin/bash
路径=/应用程序/jdk/bin:/应用程序/jdk/jre/bin:/usr/地方/sbin:/usr/地方/bin:/usr/sbin:/usr/bin:/根/bin
远程=/home/qroot/shangxian
LOCAL_HOST=/home/qroot/shangxian
LOG_CDATE='日期”+ Y % - % - % d”的
LOG_CTIME='日期”+ H %: % M: % S”的
CDATE=$(日期”+ Y % - % - % d”)
CTIME=$(日期”+ % H - % - % S”)
SHELL_NAME=" deployment_bigdata.sh "
SHELL_DIR=?home/qroot”
SHELL_LOG=" $ {SHELL_DIR}/$ {SHELL_NAME} . log”
LOCK_FILE="/tmp/deploy_bigdata.lock "
# mkdir - p/home/qroot/shangxian/bigdata/{new_word old_word, tmp、正式、配置/{nginx,取代}}
使用(){
回声”用法:$ 0岁{bigdata [bigdata.tar.gz] | 10.28.53。{192223}]}”
}
shell_lock () {
触摸LOCK_FILE美元
}
shell_unlock () {
rm - f LOCK_FILE美元
}
writelog () {
LOGINFO=1美元
回声“$ {LOG_CDATE} $ {LOG_CTIME}: $ {SHELL_NAME}: $ {LOGINFO} "> $ {SHELL_LOG}
}
tq_tomcat_docker () {
sudo sh - x/应用程序/tomcat/bin/shutdown.sh
PD_1=$ (sudo ps ef | grep的tomcat/bin/应用程序/| grep - v的grep | wc - l)
睡眠30
如果($ {PD_1} gt 0]
然后
PID_1=$ (sudo ps ef | grep的tomcat/bin/应用程序/| grep - v的grep | awk的NR==1{打印$ 2}’)
sudo kill - 9 $ {PID_1}
fi
睡5
sudo mkdir - p/应用程序/tomcat/old_logs/logs_ $ {CDATE}
sudo mv/应用程序/tomcat/日志/*/应用程序/tomcat/old_logs/logs_ $ {CDATE}/cd/应用程序/tomcat/工作/卡特琳娜/& & sudo的rm - fr *
sudo su - tomcat - c“sh/应用程序/tomcat/bin/startup.sh”
}
docker_bigdata_scp () {
writelog“docker_bigdata_scp”
[!- d $ {LOCAL_HOST}/bigdata new_word] & & echo " $ {LOCAL_HOST}/bigdata new_word——-bucunzai”& &出口16
如果[- f " $ {LOCAL_HOST}/bigdata/new_word/$ {1} ")
然后
echo " $ ls ($ {LOCAL_HOST}/bigdata/new_word/$ {1})”
mv $ {LOCAL_HOST}/bigdata/new_word/$ {1} $ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争| |退出16
如果[- f " $ {LOCAL_HOST}/bigdata new_word/bigdata_”$ CDATE”——$ {CTIME}。战争”)
然后
echo " $ ls ($ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME} . war)”
其他的
echo $ CDATE“bigdata_ - $ {CTIME}。战争——文件不存在“& &退出11
fi
其他的
echo " ${1}——文件不存在“& &出口10
fi
}
docker_bigdata_tar () {
writelog“docker_bigdata_tar”
PD_1=$ (ls ${远程}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争2>/dev/null | wc - l)
如果($ {PD_1} - ne 0]
然后
cd/应用程序/tomcat/web_tmp/& & sudo的rm - fr *
sudo解压$ {LOCAL_HOST}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争- d/应用程序/tomcat/web_tmp/bigdata_“CDATE美元”——$ {CTIME}
mv ${远程}/bigdata/new_word/bigdata_“CDATE美元”——$ {CTIME}。战争${远程}/bigdata/old_word/cd ${远程}/bigdata/new_word/& & sudo的rm - fr *
cd/应用程序/tomcat/webapps/& & sudo的rm - fr *
sudo ln - s/应用程序/tomcat/web_tmp/bigdata_“CDATE美元”——$ {CTIME}/应用程序/tomcat/webapps/bigdata_new
sudo chmod - r + x/应用程序/tomcat/webapps/bigdata_new/*
sudo乔恩- r tomcat。tomcat/应用程序/tomcat
sudo乔恩- r tomcat。tomcat/应用程序/tomcat/*
sudo chmod - r + x/应用程序/tomcat/webapps/bigdata/web - inf/classes/com/*
其他的
echo $ {1} -bigdata_“CDATE美元”——$ {CTIME}。战争,文件不存在& &出口12
fi
}
replace_config () {
writelog“配置”
PD_2=$ ls(${远程}/bigdata/config/替换/bigdata/* 2>/dev/null | wc - l)
如果($ {PD_2} gt 0]
然后
sudo \ cp ${远程}/bigdata/config/替换/bigdata/*/应用程序/tomcat/webapps/bigdata_new/web - inf/classes/config/db/其他的
回声”取代美元===(ls ${远程}/bigdata/config/替换/* 2>/dev/null | wc - l)”
fi
}
huizong () {
如果(LOCK_FILE美元- f);
回声“部署运行”& &退出;
fi
TAR_NAME=$ {2}
例=$ {1}
“$ {}”
bigdata)
shell_lock
docker_bigdata_scp $ {TAR_NAME}
睡眠10
docker_bigdata_tar
睡眠10
replace_config
睡眠10
tq_tomcat_docker
shell_unlock
;;
*)
使用
退出3
esac
}
面(){
CMD_1=1美元
CMD_2=2美元
huizong CMD_1 CMD_2美元
}
面{1}{2}美元