Memcached 安装脚本(附服务器自启动)

2018-04-18 13:52:52 浏览数 (1)

一、目的

为简化Memcached快速安装部署,并添加至服务启动项,开机自启动。

二、脚本

2.1 github地址

github链接

2.2 脚本内容

代码语言:txt复制
#!/bin/bash

#mail:xuel@anchnet.com

#function:auto install memcached

clea

echo "##########################################"

echo "#       Auto Install Memcached-1.4                          ##"

echo "#       Press Ctrl   C to cancel                                 ##"

echo "#       Any key to continue                                       ##"

echo "##########################################"

read -n 1

softdir="/software"

memcached_url="http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz"

libevent_url="https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz"

sys_version=$(rpm -q centos-release|cut -d- -f3)



sys_init() {

[ -f /etc/init.d/functions ] && . /etc/init.d/functions

[ ${sys_version} != "6" ] && echo "Please use centos6.x" && exit 1

[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1

sed -i "s/SELINUX=enforcing/SELINUX=disabled/"  /etc/selinux/config

setenforce 0

yum install -y gcc gcc-c   wget

}



download_software() {

if [ ! -d ${softdir} ];then

    mkdir ${softdir} && cd ${softdir}

else

    cd ${softdir}

fi

for software_url in ${memcached_url} ${libevent_url}

do

    wget -c ${software_url}

    if [ $? -eq 0 ];then

        for software in `ls`

        do

            tar zxf $software -C /tmp

        done

    fi

done

}



install() {

cd /tmp/libevent-2.1.8-stable

./configure --prefix=/usr/local/libevent

make && make install

rm -rf /tmp/libevent-2.1.8-stable 

echo "/usr/local/libevent/lib">/etc/ld.so.conf.d/libevent.conf

ldconfig



cd /tmp/memcached-1.4.0

./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached

make && make install

rm -rf /tmp/memcached-1.4.0

echo "export PATH=$PATH:/usr/local/memcached/bin">/etc/profile.d/memcached.sh && source /etc/profile.d/memcached.sh

}



start_server() {

cat >/etc/init.d/memcached-server<<EOF

#!/bin/bash

#auth:kaliarch

# memcached    Startup script for memcached processes

#

# chkconfig: - 90 10

# description: Memcache provides fast memory based storage.

# processname: memcached



. /etc/rc.d/init.d/functions



memcached="/usr/local/memcached/bin/memcached"

prog="memcached"

port=11211

user=nobody

mem=20

lockfile=${LOCKFILE-/var/lock/subsys/memcached}

pidfile=${PIDFILE-/tmp/memcached.pid}

getpid=$(pidof memcached)

start() {

    action $"Starting $prog: " /bin/true

    # Starting memcached with 64MB memory on port 11211 as deamon and user nobody

    $memcached -d -m $mem -p $port -u $user -P ${pidfile}



    RETVAL=$?

    [ $RETVAL = 0 ] && touch ${lockfile}

    return $RETVAL

}



stop() {

    if test "x${getpid}" != x; then

        action $"Stopping $prog " /bin/true

        killall memcached

    fi

    RETVAL=$?

    [ $RETVAL = 0 ] && rm -rf ${lockfile} ${pidfile}

    return $RETVAL

}



case "$1" in

        start)

            start

            ;;



        stop)

            stop

            ;;



        status)

        status -p ${pidfile} ${memcached}

        RETVAL=$?

            ;;



        restart)

            stop

            start

            ;;

        condrestart)

            if test "x${getpid}" != x; then

                stop

                start

            fi

            ;;



        *)

            echo $"Usage: $0 {start|status|stop|restart|condrestart}"

            exit 1



esac



exit ${RETVAL}

EOF

cd /

chmod  x /etc/init.d/memcached-serve

chkconfig memcached-server on

service memcached-server start

}



main() {

sys_init

download_software

install

start_serve

}



main

三、测试

0 人点赞