支持識別離線包和聯網安裝,自動修改使用后台運行模式,離線安裝的方法是,將離線包和腳本放在同一個文件夾, 它會先識別有沒有離線包, 有離線包就先安裝離線包, 沒有離線包就安裝進行判斷機器是否能聯網, 能聯網的情況下自動請求源安裝,一切自動化。下面演示一下
#!/bin/bash #------------------------------------------------------------------------------------------------------------------# #| Some people die at the age of 25 and don't bury themselves in the earth until they are 75 |# #------------------------------------------------------------------------------------------------------------------# #| $$$$ $$ $$ $$$$$$ $$ $$ $$$$$$ $$ $$$$$$ $$$$$$ |# #| $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ |# #| $$ $$$$$$$ $$$$$ $$ $$ $ $$ $$$$$$ $$ $$$$$ $$$$$ |# #| $$ $$ $$ $$ $$ $ $ $$ $$ $$ $$ $$ |# #| $$$$ $$ $$ $$$$$$ $$ $$ $$$$$ $$ $$$$$$ $$$$$$ $$$$$$ |# #------------------------------------------------------------------------------------------------------------------# onversion="4.0.3" offversion=`basename redis-*.tar.gz .tar.gz | awk -F '-' '{print$2}'` installdir=$(cd `dirname $0`; pwd) function initize(){ installdir=$(cd `dirname $0`; pwd) } function checkroot(){ if [ $UID -ne 0 ] then echo "|----------------------------------------------------------------------------------------------------------------|" echo "|------------------------------------------[權限不足...請切換至root用戶]-----------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" exit; fi } function judge(){ echo offfile=`ls | grep redis-*.tar.gz` if [[ "$offfile" != "" ]] then echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[發現離線包]---------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 3 offinstall else echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[未發現離線包]-------------------------------------------------|" echo "|--------------------------------------------[開始判斷是否連接外網安裝]------------------------------------------|" /usr/bin/sleep 3 network fi } function offinstall(){ echo "|----------------------------------------------------------------------------------------------------------------|" echo "|------------------------------------------------[離線包安裝中]--------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" tar -zxvf redis-${offversion}.tar.gz >/dev/null 2>&1 redis="redis-${offversion}" cd ${redis}/src && make >/dev/null 2>&1 if [[ $? -ne 0 ]]; then echo "編譯出錯" else echo "|----------------------------------------------------------------------------------------------------------------|" echo "|---------------------------------------------------[編譯完成]---------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 3 intend fi } function network(){ httpcode=`curl -I -m 10 -o /dev/null -s -w %{http_code}'\n' http://www.baidu.com` net1=$(echo $httpcode | grep "200") if [[ "$net1" != "" ]] then echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-----------------------------------------------------[聯網]-----------------------------------------------------|" echo "|-------------------------------------------------[准備聯網安裝]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 3 online else echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------[未聯網,無離線安裝包,准備退出]---------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 3 exit; fi } function online(){ wget_v=`which wget` wget_vv=$(echo $wget_v | grep wget) if [[ "$wget_vv" != "" ]] then echo "|----------------------------------------------------------------------------------------------------------------|" echo "|--------------------------------------`wget -V |head -n 1`---------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" wget http://download.redis.io/releases/redis-${onversion}.tar.gz installon else echo "|----------------------------------------------------------------------------------------------------------------|" echo "|----------------------------------------[檢測到wget沒有安裝, 准備安裝wget]---------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" yum install wget -y echo "|----------------------------------------------------------------------------------------------------------------|" echo "|--------------------------------------`wget -V |head -n 1`---------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" wget http://download.redis.io/releases/redis-${onversion}.tar.gz installon fi } function installon(){ echo "|----------------------------------------------------------------------------------------------------------------|" echo "|------------------------------------------------[在線包安裝中]--------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" tar -zxvf redis-${onversion}.tar.gz >/dev/null 2>&1 redis="redis-${onversion}" cd ${redis}/src && make >/dev/null 2>&1 if [[ $? -ne 0 ]]; then echo "編譯出錯" else echo "|----------------------------------------------------------------------------------------------------------------|" echo "|--------------------------------------------------[編譯完成]----------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 3 intend fi } function intend(){ echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[開始遷移文件]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" mkdir -p ${installdir}/redis/{logs,nodes,conf,bin} cp redis-cli redis-server ${installdir}/redis/bin cp redis-trib.rb ${installdir}/redis cp ../redis.conf ${installdir}/redis/conf echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[數據遷移完成]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" /usr/bin/sleep 2 echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[清理多余文件]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" finish /usr/bin/sleep 2 echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[配置快捷啟動]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" service /usr/bin/sleep 2 echo "|----------------------------------------------------------------------------------------------------------------|" echo "|-------------------------------------------------[修改配置文件]-------------------------------------------------|" echo "|----------------------------------------------------------------------------------------------------------------|" configfile /usr/bin/sleep 2 echo "|****************************************************************************************************************|" echo "| WW WW EEEEEEE LL CCCCC OOOOOO MM MM EEEEEEE |" echo "| WW WWWW WW EE LL CC OO OO MMMM MMMM EE |" echo "| WW WW WW WW EEEEE LL CC OO OO MM MM MM MM EEEEE |" echo "| WW W W WW EE LL CC OO OO MM M M MM EE |" echo "| WW WW EEEEEEE LLLLLL CCCCC OOOOOO MM MMM MM EEEEEEE |" echo "|****************************************************************************************************************|" } function finish(){ echo rm -rf ${installdir}/redis-* } function service(){ cd ${installdir}/redis && echo "./bin/redis-server conf/redis.conf" > start.sh chmod +x start.sh } function configfile(){ cd ${installdir}/redis/conf #后台 sed -i 's/daemonize no/daemonize yes/' redis.conf #端口 sed -i 's/port 6379/port 7000/' redis.conf #日志輸出文件 sed -i 's/logfile ""/logfile "\/usr\/local\/src\/redis\/logs\/redis.logs"/' redis.conf } function main(){ checkroot judge } main
離線安裝的效果
在線安裝的效果