memcached-1.4.13 + repcached 自动安装脚本
来源:互联网 发布:labview编程样式 编辑:程序博客网 时间:2024/05/16 23:03
#!/bin/bash# Author:Jian# Date:2017-11-16# Version:0.1# Description: 自动安装memcached-1.4.13并自动打上对应版本的repcached-1.4.13补丁,适用于CentOS64位系统,在CentOS6/7上通过测试url1="http://memcached.org/files/old/memcached-1.4.13.tar.gz"url2="http://mdounin.ru/files/repcached-2.3.1-1.4.13.patch.gz"url3="https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz"string=`cat /etc/redhat-release`vers=`echo ${string##*release}|sed 's/^[[:space:]]*//g'|awk -F"." '{print $1}'`download_dir=/usr/local/src/export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/sbin:/usr/local/memcached/binif which memcached &>/dev/null ; then echo -e "\033[31mYou have installed memcached on your system,please uninstall it first!\033[0m" exit 1ficheck_user() {if [ $UID -ne 0 ] ;then echo -e "\033[31mYou must be root to run this script!\033[0m" 1>&2 exit 1fi}install_progs() {for prog in `echo $@`doif ! which $prog &>/dev/null; then echo "Installing $prog ..." yum install $prog -y &>/dev/null if [ $? -eq 0 ];then echo "Install $prog OK" else echo "Download $prog failed,exit" exit 2 fifidone}download() { cd $download_dir for url in `echo $@` do if [ ! -e ${download_dir}${url##*/} ];then echo "Downloading ${url##*/} ..." if wget -q -t 8 -c -T 3 $url ;then echo "Download ${url##*/} OK." else echo -e "\033[31mDownload ${url##*/} failed.\033[0m" fi else echo "File ${download_dir}${url##*/} exists." fi done}# libevent-2.1.8-stable.tar.gzinstall_libevent() { cd $download_dir if [ -f /usr/local/libevent/lib/libevent-2.1.so.6 ];then echo "Libevent has installed on your system" else echo "Installing libevent..." tar xf ${url3##*/} &>/dev/null cd $(echo "${url3##*/}" |sed 's/\.tar\.gz//g') ./configure --prefix=/usr/local/libevent make && make install echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf ldconfig fi}install_memcached() {cd $download_dirtar xf ${url1##*/} &>/dev/nullgzip -d -c ${download_dir}${url2##*/} > ${download_dir}repcached-2.3.1-1.4.13.patchcd $(echo "${url1##*/}" |sed 's/\.tar\.gz//g')patch -p1 <../repcached-2.3.1-1.4.13.patch./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent --enable-replication --enable-64bitmake && make installecho 'export PATH=/usr/local/memcached/bin:$PATH' > /etc/profile.d/memcached.shsource /etc/profile.d/memcached.sh}check_userinstall_progs wget gccdownload $url1 $url2 $url3if [ -f ${download_dir}${url1##*/} ] && [ -f ${download_dir}${url2##*/} ] && [ -f ${download_dir}${url3##*/} ];then install_libevent install_memcachedelse echo "There is a lack of necessary installation packages,please check." echo "You can download the package manually and put the package into: /usr/local/src" exit 1fiif [ -f /usr/local/memcached/bin/memcached ];then echo -e "\033[32mCongratulations,you have successfuly installed memcached!\033[0m" cd $download_dir rm -rf ${download_dir}$(echo "${url1##*/}" |sed 's/\.tar\.gz//g') rm -rf ${download_dir}$(echo "${url3##*/}" |sed 's/\.tar\.gz//g')else echo -e "\033[31mInstalled memcached failed,please check!\033[0m"fi echo 'PORT="11211"' > /etc/sysconfig/memcachedecho 'MAXCONN="1024"' >> /etc/sysconfig/memcachedecho 'CACHESIZE="64"' >> /etc/sysconfig/memcachedecho 'OPTIONS=""' >> /etc/sysconfig/memcachedif id -u memcached &>/dev/null || id -g memcached &>/dev/null;then echo -e "\033[31mUser or group 'memcached' exists and now use 'nobody'as a user\033[0m" echo 'USER="nobody"' >> /etc/sysconfig/memcachedelse groupadd -r memcached useradd -r -s /sbin/nologin -g memcached memcached echo 'USER="memcached"' >> /etc/sysconfig/memcached chown -R memcached:memcached /usr/local/memcachedfiexit 0############################################################################## 下面分为CentOS6、CentOS7提供的服务脚本 #################################################################################centos6服务脚本,将其写入/etc/rc.d/init.d/memcached文件####!/bin/bash## Init file for memcached## chkconfig: - 86 14# description: Distributed memory caching daemon## processname: memcached# config: /etc/sysconfig/memcached. /etc/rc.d/init.d/functions. /etc/sysconfig/memcached## Default variablesRETVAL=0prog="/usr/local/memcached/bin/memcached"desc="Distributed memory caching"lockfile="/var/lock/subsys/memcached"start() { echo -n $"Starting $desc (memcached): " daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && success && touch $lockfile || failure echo return $RETVAL}stop() { echo -n $"Shutting down $desc (memcached): " killproc $prog RETVAL=$? [ $RETVAL -eq 0 ] && success && rm -f $lockfile || failure echo return $RETVAL}restart() { stop start}reload() { echo -n $"Reloading $desc ($prog): " killproc $prog -HUP RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo return $RETVAL}case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e $lockfile ] && restart RETVAL=$? ;; reload) reload ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1esacexit $RETVAL###centos7服务脚本,将其写入/usr/lib/systemd/system/memcached.service文件###[Unit]Description=MemcachedBefore=httpd.serviceAfter=network.target[Service]Type=simpleEnvironmentFile=-/etc/sysconfig/memcachedExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS[Install]WantedBy=multi-user.target
阅读全文
0 0
- memcached-1.4.13 + repcached 自动安装脚本
- memcached安装管理与repcached高可用性
- MemcacheD、Repcached在centos上的安装步骤
- 安装repcached
- memcached repcached 同步
- Memcached repcached同步
- 【memcached】repcached工具
- repcached实现memcached主备
- Memcached 高可用方案 Repcached
- Memcached-Repcached小小探测 memcached实现同步
- repcached安装和使用
- 安装repcached 出现错误
- repcached实现memcached的复制功能
- Memcached学习笔记 repcached高可用方案
- Centos 安装 memcached 完整脚本
- Memcached进程自动重启脚本
- Memcached实战之复制----基于repcached的主从
- repcached实现memcached内存复制+keepalived主备模式
- 通用组、全局组、本地域组的区别
- nodejs学习笔记-第一课
- C语言实验——打印菱形
- GIS结合BIM技术在数字城市中的应用
- POJ3468 线段树模板
- memcached-1.4.13 + repcached 自动安装脚本
- opencv学习笔记--使用opencv打开一张图片
- LightOJ
- ijkolayer
- 方差分析与R实现
- 第一篇Blog——结合博文经验分享对产品经理的感悟
- 简历,应该如何撰写,才会吸引面试官呢?(情景带入法)
- 实验二: 用户管理
- 2017-11-16总结