#!/bin/bash
version=$1
serverurl='download.redis.io'
urlstatus=$(curl -s -m 5 -IL $serverurl|grep 200)
redis_home=/usr/local/redis
redis_log=/usr/local/redis/log
redis_dump=/usr/local/redis/dump
redis_conf=/usr/local/redis/etc
redis_pid=/usr/local/redis/run
redis_passwd=`date +%s |sha256sum |base64 |head -c 10 ;echo`
export PATH=$PATH:$redis_home/bin
if [ -z "$version" ]; then
echo "Please input version" && exit 1
fi
if [ "$urlstatus" == "" ];then
echo "urlstatus is OFF" && exit 1
fi
yum -y install gcc automake autoconf libtool make
cd /usr/local/src
if [ ! -f "redis-"$version".tar.gz" ];then
rm -rf redis-*.tar.gz
echo "Download redis from official website"
wget http://download.redis.io/releases/redis-"$version"'.tar.gz'
elif [ -f "redis-"$version".tar.gz" ];then
echo "redis-"$version".tar.gz is exsit!"
rm -rf redis-"$version"
else
echo "script exception" && exit 1
fi
tar xzf redis-"$version"'.tar.gz'
cd redis-"$version"
make && make PREFIX="$redis_home" install
echo "ADD script and configuration file"
mkdir -p $redis_log $redis_conf $redis_dump $redis_pid
cd $redis_conf && touch redis.conf
cat /dev/null >redis.conf
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p
echo "daemonize yes" >> redis.conf
echo "bind 0.0.0.0" >>redis.conf
echo "maxmemory 1024mb" >>redis.conf
echo "pidfile $redis_pid/redis.pid" >>redis.conf
echo "port 6379" >>redis.conf
echo "tcp-keepalive 0" >>redis.conf
echo "loglevel notice" >>redis.conf
echo "logfile "$redis_log"/redis.log" >>redis.conf
echo "databases 16" >>redis.conf
echo "rdbcompression yes" >>redis.conf
echo "dbfilename dump.rdb" >>redis.conf
echo "dir $redis_dump" >>redis.conf
echo "stop-writes-on-bgsave-error yes" >>redis.conf
echo "requirepass $redis_passwd" >>redis.conf
echo "save 60 1000" >>redis.conf
$redis_home/bin/redis-server $redis_conf/redis.conf
echo "Redis password is $redis_passwd"
echo "script to add a user to Linux system"
if [ $(id -u) -eq 0 ]; then
read -p "Enter username : " username
read -s -p "Enter password : " password
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
#exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi
echo "add centos7 boot startup service"
cd /usr/lib/systemd/system
touch redis.service
cat> redis.service <<EOF
[Unit]
Description=Redis Server Manager
After=syslog.target
After=network.target
[Service]
Type=simple
User=$username
Group=$username
PIDFile=$redis_pid/redis.pid
ExecStart=$redis_home/bin/redis-server $redis_conf/redis.conf
ExecStop=$redis_home/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
EOF
chown -R $username:$username $redis_home
echo "Check the startup redis.service status"
systemctl enable redis.service
systemctl start redis.service
systemctl status redis.service
echo "Check the startup firewalld.service status"
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service