linux redis安装脚本

it2022-05-05  152

下面是linux 安装redis的shell脚本,如果是从服务器把role改成2即可。 #!/usr/bin/env bash # ---------------------------------------- # Functions: onekey install redis sentinel # Auther: denglianyong # ---------------------------------------- # syntx check # define some variables #redis_sentinel_ip=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`

redis_sentinel_ip=192.168.210.3 sentinel_port=8001 redis_port=6379 redis_sentinel_dir=/data/redis-sentinel/$sentinel_port redis_dir=/usr/local/redis version=4.0.1 role=1  #1:master  2:slave master_ip=192.168.210.3 password="pfnl0bdh9wlhafpv"

install_redis(){     #redis_pid_dir=/var/run/redis     redis_log=/var/log/redis     #redis_rdb_aof_dir=/var/lib/redis     #     #[ -d $redis_pid_dir ] || mkdir $redis_pid_dir     [ -d $redis_log ] || mkdir $redis_log     [ -d $redis_sentinel_dir ] || mkdir -p $redis_sentinel_dir

    # upgrade os && install dev tools     #yum update -y && yum groupinstall -y "Development Tools" && yum -y install tcl

    # download latest redis     if [ ! -f /usr/local/src/redis-$version.tar.gz ]; then        wget http://download.redis.io/releases/redis-$version.tar.gz -P /usr/local/src     fi     cd /usr/local/src && tar zxvf redis-$version.tar.gz -C /usr/local/     cd /usr/local/ && ln -sv redis-$version redis && cd redis && make && taskset -c 1 sudo make test

    # config sysctl.conf     echo 512 > /proc/sys/net/core/somaxconn     sysctl vm.overcommit_memory=1

    # config three redis     #mkdir -pv $redis_sentinel_dir/     # copy excute command     \cp $redis_dir/src/{redis-server,redis-sentinel} $redis_sentinel_dir/

    # copy redis.conf & sentinel.conf     \cp $redis_dir/{redis.conf,sentinel.conf} $redis_sentinel_dir/

    # config redis.conf     # example by /data/redis-sentinel/9000/redis.conf     sed -i "s/bind 127.0.0.1/bind $redis_sentinel_ip/g" $redis_sentinel_dir/redis.conf     sed -i "s/port 6379/port $redis_port/g" $redis_sentinel_dir/redis.conf

    sed -i "s/# requirepass foobared/requirepass $password/g"  $redis_sentinel_dir/redis.conf     sed -i 's/protected-mode\ yes/protected-mode\ no/g' $redis_sentinel_dir/redis.conf     sed -i 's/daemonize no/daemonize yes/g' $redis_sentinel_dir/redis.conf     sed -i 's/appendonly no/appendonly yes/g' $redis_sentinel_dir/redis.conf     #sed -i 's/logfile ""/logfile \"\/data\/redis-sentinel\"/g' $redis_sentinel_dir/redis.conf     sed -i "s/logfile \"\"/logfile \/var\/log\/redis\/redis.log/g" $redis_sentinel_dir/redis.conf     #sed -i 's/dir \.\//dir \/data\/redis-sentinel\//g' $redis_sentinel_dir/redis.conf     #sed -i 's/appendonly.aof/\/data\/redis-sentinel\/appendonly.aof/g' $redis_sentinel_dir/redis.conf     # rename config for secuirty     #rename-command SHUTDOWN REDIS_SHUTDOWN     #rename-command FLUSHDB REDIS_FLUSHDB     #rename-command FLUSHALL REDIS_FLUSHALL     #rename-command KEYS REDIS_KEYS     echo 'rename-command CONFIG REDIS_CONFIG' >> $redis_sentinel_dir/redis.conf     echo 'rename-command FLUSHALL REDIS_FLUSHALL' >> $redis_sentinel_dir/redis.conf     echo 'rename-command FLUSHDB REDIS_FLUSHDB' >> $redis_sentinel_dir/redis.conf

    if [ $role -eq 2 ];then         echo "slaveof $master_ip  $redis_port" >> $redis_sentinel_dir/redis.conf     fi     # ln redis-server &  redis-sentinel     cp $redis_dir/src/{redis-server,redis-sentinel,redis-cli} /usr/local/sbin/

    # start redis     cd $redis_sentinel_dir/     ./redis-server redis.conf

    # watch redis master/slave status     ps -ef | grep redis     $redis_dir/src/redis-cli -h $redis_sentinel_ip -p $redis_port -a $password  info replication     sleep 5

    # config sentinel.conf & start sentinel 1     # example by /data/redis-sentinel/9000/sentinel.conf     sed -i 's/\# protected-mode no/protected-mode no/g' $redis_sentinel_dir/sentinel.conf     sed -i "s/port 26379/port $sentinel_port/g" $redis_sentinel_dir/sentinel.conf     sed -i "s#127.0.0.1 6379#$redis_sentinel_ip 6379#g" $redis_sentinel_dir/sentinel.conf          sed -i "s#dir /tmp#dir $redis_sentinel_dir#g" $redis_sentinel_dir/sentinel.conf     echo "daemonize yes" >> $redis_sentinel_dir/sentinel.conf

    # start sentinel     $redis_sentinel_dir/redis-sentinel $redis_sentinel_dir/sentinel.conf

    # watch sentinel status     ps -ef | grep redis     $redis_dir/src/redis-cli -h $redis_sentinel_ip -p $sentinel_port   sentinel masters }

start(){     cd $redis_sentinel_dir/     ./redis-server redis.conf

    # start sentinel     $redis_sentinel_dir/redis-sentinel $redis_sentinel_dir/sentinel.conf }

stop(){   ps aux| grep 'redis' |grep -v 'grep' |awk '{print $2}'|xargs kill -9     }

usage()  {      echo "Usage:  ./redis.sh [install|start|stop ]"     exit 1  }  if [ "$1" = "install" ]; then     install_redis  elif [ "$1" = "start" ]; then      start  elif [ "$1" = "stop" ]; then     stop else       usage fi  


最新回复(0)