shell腳本一鍵在線安裝redis數據庫(使用函數實現)
前面的文章給出了有關手工編譯安裝redis的流程,並且在模擬搭建redis集羣時給出了在線安裝redis的過程,於是就想着自己寫好在線安裝的redis腳本,本文主要使用shell函數來實現並且驗證在線安裝的過程,執行無誤後就想着分享出來。
PS:系統環境爲Centos7.4
腳本如下:
#!/bin/bash
function checkroot(){
if [ $UID -ne 0 ]
then
echo "|----------------------------------------------------------------------------------------------------------------|"
echo "|------------------------------------------[權限不足..請切換至root用戶]-------------------------------------------|"
echo "|----------------------------------------------------------------------------------------------------------------|"
exit;
fi
}
function judge(){
echo
off_file=`ls | grep redis-*.tar.gz`
if [[ "$off_file" = "" ]]
then
echo "|----------------------------------------------------------------------------------------------------------------|"
echo "|-------------------------------------------------[未發現離線包]--------------------------------------------------|"
echo "|-------------------------------------------------[開始在線安裝]--------------------------------------------------|"
/usr/bin/sleep 3
network
else
exit;
fi
}
function network(){
yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc gcc-c++ make wget -y #安裝依賴庫
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
if [ -f /root/redis-5.0.7.tar.gz ];then
tar zxvf redis-5.0.7.tar.gz
mv redis-5.0.7 /usr/local/redis
cd /usr/local/redis
make
cd src/
make install
else
echo "文件不存在!"
exit;
fi
sed -i '136s/daemonize no/daemonize yes/' /usr/local/redis/redis.conf #(編輯redis服務配置文件,修改其中配置)
#設置開啓守護進程運行
sed -i '69s/127.0.0.1/0.0.0.0/' /usr/local/redis/redis.conf
#設置爲任意終端訪問
sed -i '88s/protected-mode yes/protected-mode no/' /usr/local/redis/redis.conf
#關閉受保護模式
sed -i '832s/#//' /usr/local/redis/redis.conf
#一下三行正則命令在部署集羣時使用,單一安裝時不要開啓,否則會出錯
#開啓集羣模式
#sed -i '840s/#//' /usr/local/redis/redis.conf
#集羣配置文件目錄
#sed -i '846s/#//' /usr/local/redis/redis.conf
#節點超時時間
#sed -i '699s/no/yes/' /usr/local/redis/redis.conf
#開啓aof持久化
mkdir -p /etc/redis
ln -s /usr/local/redis/redis.conf /etc/redis/6379.conf #(在默認的配置文件路勁中放置配置文件)
ln -s /usr/local/redis/utils/redis_init_script /etc/init.d/redisd #(將初始化文件配置到系統自啓動的文件夾內,redisd爲服務名,可自行修改)
service redisd start #(開啓redis服務,服務名爲:redisd)
#redis-cli
netstat -ntpl|grep redis
echo "Redis 部署完成!"
echo " "
echo "如果你的系統是Centos 7在安裝完畢後留意防火牆,可執行以下命令來放行redis 外部通信,若是沒有成功則關閉防火牆及SELinux功能。"
echo "firewall-cmd --zone=public --add-port=6379/tcp --permanent"
echo "firewall-cmd --reload"
echo "firewall-cmd --zone=public --query-port=6379/tcp"
}
function main(){
checkroot
judge
}
main