1. 程式人生 > 實用技巧 >一鍵編譯安裝redis5.0.9指令碼(shell)

一鍵編譯安裝redis5.0.9指令碼(shell)

#!/bin/sh
#install redis
. /etc/init.d/functions 

#安裝依賴包
yum -y -q install gcc jemalloc-devel make wget || { action "安裝依賴包失敗,請檢查環境" false ;exit; }

#下載原始碼包並解壓
wget http://download.redis.io/releases/redis-5.0.9.tar.gz || { action "原始碼包下載失敗" false ;exit; }
tar xvf redis-5.0.9.tar.gz

#建立安裝目錄及使用者
mkdir /apps
id redis >& /dev/null
|| { useradd -r -s /sbin/nologin redis; action "redis使用者建立成功"; } #編譯安裝 cd redis-5.0.9/ make PREFIX=/apps/redis install >& /dev/null && action "redis編譯安裝完成" #配置環境變數 echo 'PATH=/apps/redis/bin:$PATH' > /etc/profile.d/redis.sh source /etc/profile.d/redis.sh ln -sv /apps/redis/bin/redis-* /usr/bin/ #準備相關目錄和配置檔案
mkdir -pv /apps/redis/{etc,log,data,run} cp /root/redis-5.0.9/redis.conf /apps/redis/etc/ #三個告警處理 cat > /etc/sysctl.conf <<EOF vm.overcommit_memory = 1 net.core.somaxconn = 1024 EOF sysctl -p echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local source
/etc/rc.d/rc.local #服務啟動檔案 cat > /usr/lib/systemd/system/redis.service <<EOF [Unit] Description=Redis persistent key-value database After=network.target [Service] ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd ExecStop=/bin/kill -s QUIT \$MAINPID Type=notify User=redis Group=redis RuntimeDirectory=redis RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable --now redis &> /dev/null && action "redis服務啟動成功" || { action "redis啟動失敗" false ;exit; }