shell脚本一键安装redis
最近打算把需要经常安装的东西都写成一键脚本安装,这样方便自己,也方便大家.
系统:centos 7.x(64位)
软件:redis 3.0.7
cat /root/soft_shell/auto_install_redis.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin
export PATH
# Check if user is root
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root to install"
exit 1
fi
# Check the network status
NET_NUM=`ping -c 4 www.baidu.com |awk '/packet loss/{print $6}' |sed -e 's/%//'`
if [ -z "$NET_NUM" ] || [ $NET_NUM -ne 0 ];then
echo "Please check your internet"
exit 1
fi
if [ -s redis-3.0.7.tar.gz ];then
echo -e "\033[40;31m redis-3.0.7.tar.gz [found]\033[40;37m"
else
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
#wget http://download.slogra.com/redis/redis-3.0.7.tar.gz
fi
yum -y install gcc gcc-c++ make
user_redis=`cat /etc/passwd|grep redis|awk -F : '{print $1}'`
if [ -z "$user_redis" ];then
useradd -s /bin/false -M redis
else
echo "user redis already exists!"
fi
read -p "Enter redis port:" redis_port
mkdir -p /data/redis/member-$redis_port/{conf,data,log,pid}
tar zxf redis-3.0.7.tar.gz -C /usr/local/
cd /usr/local/
mv redis-3.0.7 redis
cd /usr/local/redis/
make && make install
cp /usr/local/redis/redis.conf /data/redis/member-$redis_port/conf/
chown -R redis.redis /data/redis/member-$redis_port
cat >/data/redis/member-$redis_port/conf/redis.conf <<EOF
daemonize yes
pidfile /data/redis/member-$redis_port/pid/redis.pid
port $redis_port
tcp-backlog 65535
bind 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
logfile /data/redis/member-$redis_port/log/redis.log
databases 16
lua-time-limit 5000
maxclients 10000
#protected-mode yes
dir /data/redis/member-$redis_port/data
###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128
###内存参数###
maxmemory 8G
maxmemory-policy volatile-lru
###RDB持久化参数###
save 3600 1
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
###AOF持久化参数###
no-appendfsync-on-rewrite yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync no
auto-aof-rewrite-min-size 512mb
auto-aof-rewrite-percentage 100
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
###客户端Buffer参数###
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0
hz 10
EOF
echo 'export PATH=$PATH:/usr/local/bin' >>/etc/profile
source /etc/profile
sudo -u redis `which redis-server` /data/redis/member-$redis_port/conf/redis.conf


评论: