Pārlūkot izejas kodu

Add upgrade memcached

lj2007331 8 gadi atpakaļ
vecāks
revīzija
b79753a8db

+ 1 - 2
include/mariadb-10.0.sh

@@ -67,7 +67,6 @@ Install_MariaDB-10-0() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -194,7 +193,7 @@ EOF
   ${mariadb_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mariadb_install_dir} --datadir=${mariadb_data_dir}
 
   chown mysql.mysql -R ${mariadb_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mariadb_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mariadb_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mariadb_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/mariadb-10.1.sh

@@ -67,7 +67,6 @@ Install_MariaDB-10-1() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -194,7 +193,7 @@ EOF
   ${mariadb_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mariadb_install_dir} --datadir=${mariadb_data_dir}
 
   chown mysql.mysql -R ${mariadb_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mariadb_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mariadb_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mariadb_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/mariadb-5.5.sh

@@ -69,7 +69,6 @@ Install_MariaDB-5-5() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -197,7 +196,7 @@ EOF
   ${mariadb_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mariadb_install_dir} --datadir=${mariadb_data_dir}
 
   chown mysql.mysql -R ${mariadb_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mariadb_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mariadb_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mariadb_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/mysql-5.5.sh

@@ -69,7 +69,6 @@ Install_MySQL-5-5() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -200,7 +199,7 @@ EOF
   ${mysql_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}
 
   chown mysql.mysql -R ${mysql_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mysql_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mysql_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mysql_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/mysql-5.6.sh

@@ -67,7 +67,6 @@ Install_MySQL-5-6() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -199,7 +198,7 @@ EOF
   ${mysql_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}
 
   chown mysql.mysql -R ${mysql_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mysql_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mysql_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mysql_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/mysql-5.7.sh

@@ -67,7 +67,6 @@ Install_MySQL-5-7() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -200,7 +199,7 @@ EOF
   ${mysql_install_dir}/bin/mysqld --initialize-insecure --user=mysql --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}
 
   chown mysql.mysql -R ${mysql_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mysql_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mysql_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mysql_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/percona-5.5.sh

@@ -70,7 +70,6 @@ Install_Percona-5-5() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -201,7 +200,7 @@ EOF
   ${percona_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${percona_install_dir} --datadir=${percona_data_dir}
 
   chown mysql.mysql -R ${percona_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${percona_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${percona_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${percona_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/percona-5.6.sh

@@ -69,7 +69,6 @@ Install_Percona-5-6() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -201,7 +200,7 @@ EOF
   ${percona_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${percona_install_dir} --datadir=${percona_data_dir}
 
   chown mysql.mysql -R ${percona_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${percona_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${percona_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${percona_install_dir}/bin:\1@" /etc/profile

+ 1 - 2
include/percona-5.7.sh

@@ -69,7 +69,6 @@ Install_Percona-5-7() {
   popd
 
   # my.cnf
-  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   cat > /etc/my.cnf << EOF
 [client]
 port = 3306
@@ -201,7 +200,7 @@ EOF
   ${percona_install_dir}/bin/mysqld --initialize-insecure --user=mysql --basedir=${percona_install_dir} --datadir=${percona_data_dir}
 
   chown mysql.mysql -R ${percona_data_dir}
-  [ -d "/etc/mysql" ] && mv /etc/mysql{,_bk}
+  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
   service mysqld start
   [ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${percona_install_dir}/bin:\$PATH" >> /etc/profile
   [ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${percona_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${percona_install_dir}/bin:\1@" /etc/profile

+ 54 - 0
include/upgrade_memcached.sh

@@ -0,0 +1,54 @@
+#!/bin/bash
+# Author:  yeho <lj2007331 AT gmail.com>
+# BLOG:  https://blog.linuxeye.com
+#
+# Notes: OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+
+#
+# Project home page:
+#       https://oneinstack.com
+#       https://github.com/lj2007331/oneinstack
+
+Upgrade_Memcached() {
+  pushd ${oneinstack_dir}/src > /dev/null
+  [ ! -e "${memcached_install_dir}/bin/memcached" ] && echo "${CWARNING}Memcached is not installed on your system! ${CEND}" && exit 1
+  OLD_Memcached_version=`$memcached_install_dir/bin/memcached -V | awk '{print $2}'`
+  echo "Current Memcached Version: ${CMSG}$OLD_Memcached_version${CEND}"
+  while :; do echo
+    read -p "Please input upgrade Memcached Version(example: 1.4.39): " NEW_Memcached_version
+    if [ "${NEW_Memcached_version}" != "$OLD_Memcached_version" ]; then
+      [ ! -e "memcached-${NEW_Memcached_version}.tar.gz" ] && wget --no-check-certificate -c http://www.memcached.org/files/memcached-${NEW_Memcached_version}.tar.gz > /dev/null 2>&1
+      if [ -e "memcached-${NEW_Memcached_version}.tar.gz" ]; then
+        echo "Download [${CMSG}memcached-${NEW_Memcached_version}.tar.gz${CEND}] successfully! "
+        break
+      else
+        echo "${CWARNING}Memcached version does not exist! ${CEND}"
+      fi
+    else
+      echo "${CWARNING}input error! Upgrade Memcached version is the same as the old version${CEND}"
+    fi
+  done
+
+  if [ -e "memcached-${NEW_Memcached_version}.tar.gz" ]; then
+    echo "[${CMSG}memcached-${NEW_Memcached_version}.tar.gz${CEND}] found"
+    echo "Press Ctrl+c to cancel or Press any key to continue..."
+    char=`get_char`
+    tar xzf memcached-${NEW_Memcached_version}.tar.gz
+    pushd memcached-${NEW_Memcached_version}
+    make clean
+    ./configure --prefix=${memcached_install_dir}
+    make -j ${THREAD}
+
+    if [ -e "memcached" ]; then
+      echo "Restarting Memcached..."
+      service memcached stop
+      make install
+      service memcached start
+      popd > /dev/null
+      echo "You have ${CMSG}successfully${CEND} upgrade from ${CWARNING}$OLD_Memcached_version${CEND} to ${CWARNING}${NEW_Memcached_version}${CEND}"
+      rm -rf memcached-${NEW_Memcached_version}
+    else
+      echo "${CFAILURE}Upgrade Memcached failed! ${CEND}"
+    fi
+  fi
+  popd > /dev/null
+}

+ 26 - 17
include/upgrade_php.sh

@@ -10,16 +10,16 @@
 
 Upgrade_PHP() {
   pushd ${oneinstack_dir}/src > /dev/null
-  [ ! -e "$php_install_dir" ] && echo "${CWARNING}PHP is not installed on your system! ${CEND}" && exit 1
+  [ ! -e "${php_install_dir}" ] && echo "${CWARNING}PHP is not installed on your system! ${CEND}" && exit 1
   echo
-  OLD_PHP_version=`$php_install_dir/bin/php -r 'echo PHP_VERSION;'`
+  OLD_PHP_version=`${php_install_dir}/bin/php -r 'echo PHP_VERSION;'`
   echo "Current PHP Version: ${CMSG}$OLD_PHP_version${CEND}"
   while :; do echo
     read -p "Please input upgrade PHP Version: " NEW_PHP_version
     if [ "${NEW_PHP_version%.*}" == "${OLD_PHP_version%.*}" ]; then
-      [ ! -e "php-$NEW_PHP_version.tar.gz" ] && wget --no-check-certificate -c http://www.php.net/distributions/php-$NEW_PHP_version.tar.gz > /dev/null 2>&1
-      if [ -e "php-$NEW_PHP_version.tar.gz" ]; then
-        echo "Download [${CMSG}php-$NEW_PHP_version.tar.gz${CEND}] successfully! "
+      [ ! -e "php-${NEW_PHP_version}.tar.gz" ] && wget --no-check-certificate -c http://www.php.net/distributions/php-${NEW_PHP_version}.tar.gz > /dev/null 2>&1
+      if [ -e "php-${NEW_PHP_version}.tar.gz" ]; then
+        echo "Download [${CMSG}php-${NEW_PHP_version}.tar.gz${CEND}] successfully! "
       else
         echo "${CWARNING}PHP version does not exist! ${CEND}"
       fi
@@ -29,24 +29,33 @@ Upgrade_PHP() {
     fi
   done
 
-  if [ -e "php-$NEW_PHP_version.tar.gz" ]; then
-    echo "[${CMSG}php-$NEW_PHP_version.tar.gz${CEND}] found"
+  if [ -e "php-${NEW_PHP_version}.tar.gz" ]; then
+    echo "[${CMSG}php-${NEW_PHP_version}.tar.gz${CEND}] found"
     echo "Press Ctrl+c to cancel or Press any key to continue..."
     char=`get_char`
-    tar xzf php-$NEW_PHP_version.tar.gz
+    tar xzf php-${NEW_PHP_version}.tar.gz
     src_url=http://mirrors.linuxeye.com/oneinstack/src/fpm-race-condition.patch && Download_src
-    patch -d php-$NEW_PHP_version -p0 < fpm-race-condition.patch
-    pushd php-$NEW_PHP_version
+    patch -d php-${NEW_PHP_version} -p0 < fpm-race-condition.patch
+    pushd php-${NEW_PHP_version}
     make clean
-    $php_install_dir/bin/php -i |grep 'Configure Command' | awk -F'=>' '{print $2}' | bash
+    ${php_install_dir}/bin/php -i |grep 'Configure Command' | awk -F'=>' '{print $2}' | bash
     make ZEND_EXTRA_LIBS='-liconv'
-    echo "Stoping php-fpm..."
-    service php-fpm stop
-    make install
+    if [ -e "${apache_install_dir}/bin/apachectl" ]; then 
+      echo "Stoping apache..."
+      service httpd stop
+      make install
+      echo "Starting apache..."
+      service httpd start
+    else
+      echo "Stoping php-fpm..."
+      service php-fpm stop
+      make install
+      echo "Starting php-fpm..."
+      service php-fpm start
+    fi
     popd > /dev/null
-    echo "Starting php-fpm..."
-    service php-fpm start
-    echo "You have ${CMSG}successfully${CEND} upgrade from ${CWARNING}$OLD_PHP_version${CEND} to ${CWARNING}$NEW_PHP_version${CEND}"
+    echo "You have ${CMSG}successfully${CEND} upgrade from ${CWARNING}$OLD_PHP_version${CEND} to ${CWARNING}${NEW_PHP_version}${CEND}"
+    rm -rf php-${NEW_PHP_version}
   fi
   popd > /dev/null
 }

+ 1 - 1
include/upgrade_phpmyadmin.sh

@@ -44,5 +44,5 @@ Upgrade_phpMyAdmin() {
     chown -R ${run_user}.$run_user ${wwwroot_dir}/default/phpMyAdmin
     echo "You have ${CMSG}successfully${CEND} upgrade from ${CWARNING}$OLD_phpMyAdmin_version${CEND} to ${CWARNING}$NEW_phpMyAdmin_version${CEND}"
   fi
-  popd
+  popd > /dev/null
 }

+ 2 - 1
include/upgrade_redis.sh

@@ -47,11 +47,12 @@ Upgrade_Redis() {
       service redis-server stop
       /bin/cp src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-server} $redis_install_dir/bin/
       service redis-server start
+      popd > /dev/null
       echo "You have ${CMSG}successfully${CEND} upgrade from ${CWARNING}$OLD_Redis_version${CEND} to ${CWARNING}$NEW_Redis_version${CEND}"
+      rm -rf redis-$NEW_Redis_version
     else
       echo "${CFAILURE}Upgrade Redis failed! ${CEND}"
     fi
-    popd > /dev/null
   fi
   popd > /dev/null
 }

+ 13 - 4
upgrade.sh

@@ -31,6 +31,7 @@ sed -i "s@^oneinstack_dir.*@oneinstack_dir=`pwd`@" ./options.conf
 . ./include/upgrade_db.sh
 . ./include/upgrade_php.sh
 . ./include/upgrade_redis.sh
+. ./include/upgrade_memcached.sh
 . ./include/upgrade_phpmyadmin.sh
 
 # Check if user is root
@@ -42,11 +43,12 @@ IPADDR_COUNTRY=`./include/get_ipaddr_state.py $PUBLIC_IPADDR | awk '{print $1}'`
 
 Usage(){
   printf "
-Usage: $0 [ ${CMSG}web${CEND} | ${CMSG}db${CEND} | ${CMSG}php${CEND} | ${CMSG}redis${CEND} | ${CMSG}phpmyadmin${CEND} ]
+Usage: $0 [ ${CMSG}web${CEND} | ${CMSG}db${CEND} | ${CMSG}php${CEND} | ${CMSG}redis${CEND} | ${CMSG}memcached${CEND} | ${CMSG}phpmyadmin${CEND} ]
 ${CMSG}web${CEND}            --->Upgrade Nginx/Tengine/OpenResty
 ${CMSG}db${CEND}             --->Upgrade MySQL/MariaDB/Percona
 ${CMSG}php${CEND}            --->Upgrade PHP
 ${CMSG}redis${CEND}          --->Upgrade Redis
+${CMSG}memcached${CEND}      --->Upgrade Memcached 
 ${CMSG}phpmyadmin${CEND}     --->Upgrade phpMyAdmin
 
 "
@@ -60,13 +62,14 @@ What Are You Doing?
 \t${CMSG}2${CEND}. Upgrade MySQL/MariaDB/Percona
 \t${CMSG}3${CEND}. Upgrade PHP
 \t${CMSG}4${CEND}. Upgrade Redis
-\t${CMSG}5${CEND}. Upgrade phpMyAdmin
+\t${CMSG}5${CEND}. Upgrade Memcached 
+\t${CMSG}6${CEND}. Upgrade phpMyAdmin
 \t${CMSG}q${CEND}. Exit
 "
     echo
     read -p "Please input the correct option: " Number
-    if [[ ! $Number =~ ^[1-5,q]$ ]]; then
-      echo "${CWARNING}input error! Please only input 1,2,3,4,5 and q${CEND}"
+    if [[ ! $Number =~ ^[1-6,q]$ ]]; then
+      echo "${CWARNING}input error! Please only input 1,2,3,4,5,6 and q${CEND}"
     else
       case "$Number" in
       1)
@@ -88,6 +91,9 @@ What Are You Doing?
         Upgrade_Redis
         ;;
       5)
+        Upgrade_Memcached
+        ;;
+      6)
         Upgrade_phpMyAdmin
         ;;
       q)
@@ -120,6 +126,9 @@ elif [ $# == 1 ]; then
   redis)
     Upgrade_Redis
     ;;
+  memcached)
+    Upgrade_Memcached
+    ;;
   phpmyadmin)
     Upgrade_phpMyAdmin
     ;;

+ 1 - 1
versions.txt

@@ -68,7 +68,7 @@ redis_pecl_for_php7_version=3.0.0
 redis_pecl_version=2.2.8
 
 # Memcached
-memcached_version=1.4.32
+memcached_version=1.4.33
 libmemcached_version=1.0.18
 memcached_pecl_version=2.2.0
 memcache_pecl_version=3.0.8