一鍵編譯安裝redis5.0.9指令碼(shell)
阿新 • • 發佈:2020-10-22
#!/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; }