100 lines
2.7 KiB
Bash
100 lines
2.7 KiB
Bash
#!/bin/sh
|
|
device=lo
|
|
MASTER=/home/mesasoft/redis_master/
|
|
SLAVE_MASTER=/home/mesasoft/redis_global_slave_master/
|
|
SLAVE=/home/mesasoft/redis_global_slave/
|
|
|
|
|
|
function redis_master
|
|
{
|
|
cp -r redis_master /home/mesasoft/
|
|
cp redis-master-daemon.service /usr/lib/systemd/system/
|
|
cp redis-master.service /etc/systemd/system/
|
|
|
|
systemctl enable redis-master-daemon.service
|
|
systemctl enable redis-master.service
|
|
systemctl daemon-reload
|
|
|
|
sed -i "s/bind 127.0.0.1/bind `ifconfig $device | grep netmask | awk '{print $2}'`/g" $MASTER/redis_master.conf
|
|
sed -i "s/127.0.0.1/`ifconfig $device | grep netmask | awk '{print $2}'`/g" $MASTER/reset_redis4maat.sh
|
|
sed -i "s/logfile \"\"/logfile \"$1redis_master.log/g" $MASTER/redis_master.conf
|
|
|
|
systemctl start redis-master-daemon
|
|
sleep 5
|
|
chmod 777 $MASTER/reset_redis4maat.sh
|
|
cd $MASTER/; ./reset_redis4maat.sh; cd -
|
|
}
|
|
|
|
function redis_slave_master
|
|
{
|
|
cp -r redis_global_slave_master /home/mesasoft/
|
|
|
|
cp redis-global-slave-master-daemon.service /usr/lib/systemd/system/
|
|
cp redis-global-slave-master.service /etc/systemd/system/
|
|
|
|
sed -i "s/bind 127.0.0.1/bind `ifconfig $device | grep netmask | awk '{print $2}'`/g" $SLAVE_MASTER/redis_global_slave_master.conf
|
|
sed -i "s/slaveof 10.0.6.202 6379/slaveof $1 $2/g" $SLAVE_MASTER/redis_global_slave_master.conf
|
|
|
|
systemctl enable redis-global-slave-master-daemon.service
|
|
systemctl enable redis-global-slave-master.service
|
|
systemctl daemon-reload
|
|
|
|
systemctl start redis-global-slave-master-daemon
|
|
}
|
|
|
|
function redis_slave
|
|
{
|
|
cp -r redis_global_slave /home/mesasoft/
|
|
for((i=6380; i<=6389;i++))
|
|
do
|
|
mkdir $SLAVE$i/ -p
|
|
cp $SLAVE/redis_global_slave.conf $SLAVE$i/redis$i.conf
|
|
sed -i "s/bind 127.0.0.1/bind `ifconfig $device | grep netmask | awk '{print $2}'`/g" $SLAVE$i/redis$i.conf
|
|
sed -i "s/slaveof 127.0.0.1 6379/slaveof $1 $2/g" $SLAVE$i/redis$i.conf
|
|
sed -i "s/port 6379/port $i/g" $SLAVE$i/redis$i.conf
|
|
sed -i "s/redis_6379.pid/`echo "redis_$i.pid"`/g" $SLAVE$i/redis$i.conf
|
|
done
|
|
|
|
cd $SLAVE; ./r2; cd -
|
|
}
|
|
|
|
function redis_help
|
|
{
|
|
echo "mode: master/slave_master/slave"
|
|
echo "master ./install.sh eno1 master"
|
|
echo "slave_master ./install.sh eno1 slave_master redis_ip redis_port"
|
|
echo "slave ./install.sh eno1 slave redis_ip redis_port"
|
|
}
|
|
|
|
if [[ $# -lt 2 ]];then
|
|
redis_help
|
|
exit 0
|
|
else
|
|
device=$1
|
|
fi
|
|
|
|
if [[ `locate redis-server | grep /usr/local/bin/redis-server | wc -l` -lt 1 ]]; then
|
|
tar zxvf redis-3.2.9.tar.gz
|
|
cd redis-3.2.9/; make; make install; cd -
|
|
mkdir /home/mesasoft/ -p
|
|
fi
|
|
|
|
SLAVEOF_IP=$3
|
|
SLAVEOF_PORT=$4
|
|
case $2 in
|
|
master)
|
|
redis_master $MASTER
|
|
;;
|
|
slave_master)
|
|
redis_slave_master $SLAVEOF_IP $SLAVEOF_PORT
|
|
;;
|
|
slave)
|
|
redis_slave $SLAVEOF_IP $SLAVEOF_PORT
|
|
;;
|
|
*)
|
|
redis_help
|
|
;;
|
|
esac
|
|
|
|
rm -rf redis-3.2.9
|