uninstall.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. #!/bin/bash
  2. # Author: yeho <lj2007331 AT gmail.com>
  3. # BLOG: https://blog.linuxeye.com
  4. #
  5. # Notes: OneinStack for CentOS/RadHat 6+ Debian 7+ and Ubuntu 12+
  6. #
  7. # Project home page:
  8. # https://oneinstack.com
  9. # https://github.com/lj2007331/oneinstack
  10. export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  11. clear
  12. printf "
  13. #######################################################################
  14. # OneinStack for CentOS/RadHat 6+ Debian 7+ and Ubuntu 12+ #
  15. # Uninstall OneinStack #
  16. # For more information please visit https://oneinstack.com #
  17. #######################################################################
  18. "
  19. . ./options.conf
  20. . ./include/color.sh
  21. . ./include/get_char.sh
  22. . ./include/check_dir.sh
  23. # Check if user is root
  24. [ $(id -u) != "0" ] && { echo "${CFAILURE}Error: You must be root to run this script${CEND}"; exit 1; }
  25. Usage(){
  26. printf "
  27. Usage: $0 [ ${CMSG}all${CEND} | ${CMSG}web${CEND} | ${CMSG}db${CEND} | ${CMSG}php${CEND} | ${CMSG}hhvm${CEND} | ${CMSG}pureftpd${CEND} | ${CMSG}redis${CEND} | ${CMSG}memcached${CEND} ]
  28. ${CMSG}all${CEND} --->Uninstall All
  29. ${CMSG}web${CEND} --->Uninstall Nginx/Tengine/Apache/Tomcat
  30. ${CMSG}db${CEND} --->Uninstall MySQL/MariaDB/Percona/AliSQL
  31. ${CMSG}php${CEND} --->Uninstall PHP
  32. ${CMSG}hhvm${CEND} --->Uninstall HHVM
  33. ${CMSG}pureftpd${CEND} --->Uninstall PureFtpd
  34. ${CMSG}redis${CEND} --->Uninstall Redis
  35. ${CMSG}memcached${CEND} --->Uninstall Memcached
  36. "
  37. }
  38. Uninstall_status() {
  39. while :; do echo
  40. read -p "Do you want to uninstall? [y/n]: " uninstall_yn
  41. echo
  42. if [[ ! ${uninstall_yn} =~ ^[y,n]$ ]]; then
  43. echo "${CWARNING}input error! Please only input 'y' or 'n'${CEND}"
  44. else
  45. break
  46. fi
  47. done
  48. }
  49. Print_Warn() {
  50. echo
  51. echo "${CWARNING}You will uninstall OneinStack, Please backup your configure files and DB data! ${CEND}"
  52. }
  53. Print_web() {
  54. [ -d "${nginx_install_dir}" ] && echo "${nginx_install_dir}"
  55. [ -d "${tengine_install_dir}" ] && echo "${tengine_install_dir}"
  56. [ -d "${openresty_install_dir}" ] && echo "${openresty_install_dir}"
  57. [ -e "/etc/init.d/nginx" ] && echo '/etc/init.d/nginx'
  58. [ -e "/etc/logrotate.d/nginx" ] && echo '/etc/logrotate.d/nginx'
  59. [ -d "${apache_install_dir}" ] && echo "${apache_install_dir}"
  60. [ -e "/etc/init.d/httpd" ] && echo "/etc/init.d/httpd"
  61. [ -e "/etc/logrotate.d/apache" ] && echo "/etc/logrotate.d/apache"
  62. [ -d "${tomcat_install_dir}" ] && echo "${tomcat_install_dir}"
  63. [ -e "/etc/init.d/tomcat" ] && echo "/etc/init.d/tomcat"
  64. [ -e "/etc/logrotate.d/tomcat" ] && echo "/etc/logrotate.d/tomcat"
  65. [ -d "/usr/java" ] && echo '/usr/java'
  66. [ -d "/usr/local/apr" ] && echo '/usr/local/apr'
  67. }
  68. Uninstall_Web() {
  69. [ -d "${nginx_install_dir}" ] && { killall nginx > /dev/null 2>&1; rm -rf ${nginx_install_dir} /etc/init.d/nginx /etc/logrotate.d/nginx; sed -i "s@${nginx_install_dir}/sbin:@@" /etc/profile; }
  70. [ -d "${tengine_install_dir}" ] && { killall nginx > /dev/null 2>&1; rm -rf ${tengine_install_dir} /etc/init.d/nginx /etc/logrotate.d/nginx; sed -i "s@${tengine_install_dir}/sbin:@@" /etc/profile; }
  71. [ -d "${openresty_install_dir}" ] && { killall nginx > /dev/null 2>&1; rm -rf ${openresty_install_dir} /etc/init.d/nginx /etc/logrotate.d/nginx; sed -i "s@${openresty_install_dir}/nginx/sbin:@@" /etc/profile; }
  72. [ -d "${apache_install_dir}" ] && { service httpd stop > /dev/null 2>&1; rm -rf ${apache_install_dir} /etc/init.d/httpd /etc/logrotate.d/apache; sed -i "s@${apache_install_dir}/bin:@@" /etc/profile; }
  73. [ -d "${tomcat_install_dir}" ] && { killall java > /dev/null 2>&1; chmod +x /etc/logrotate.d/tomcat; rm -rf ${tomcat_install_dir} /etc/init.d/tomcat /etc/logrotate.d/tomcat /usr/local/apr; }
  74. [ -d "/usr/java" ] && { rm -rf /usr/java; sed -i '/export JAVA_HOME=/d' /etc/profile; sed -i '/export CLASSPATH=/d' /etc/profile; sed -i 's@\$JAVA_HOME/bin:@@' /etc/profile; }
  75. [ -e "${wwwroot_dir}" ] && /bin/mv ${wwwroot_dir}{,$(date +%Y%m%d%H)}
  76. sed -i 's@^website_name=.*@website_name=@' ./options.conf
  77. sed -i 's@^local_bankup_yn=.*@local_bankup_yn=y@' ./options.conf
  78. sed -i 's@^remote_bankup_yn=.*@remote_bankup_yn=n@' ./options.conf
  79. echo "${CMSG}Web uninstall completed${CEND}"
  80. }
  81. Print_DB() {
  82. [ -e "${db_install_dir}" ] && echo "${db_install_dir}"
  83. [ -e "/etc/init.d/mysqld" ] && echo "/etc/init.d/mysqld"
  84. [ -e "/etc/my.cnf" ] && echo "/etc/my.cnf"
  85. }
  86. Uninstall_DB() {
  87. [ -e "${db_install_dir}" ] && { service mysqld stop > /dev/null 2>&1; rm -rf ${db_install_dir} /etc/init.d/mysqld /etc/my.cnf /etc/ld.so.conf.d/{mysql,mariadb,percona,alisql}*.conf; }
  88. id -u mysql >/dev/null 2>&1 ; [ $? -eq 0 ] && userdel mysql
  89. [ -e "${db_data_dir}" ] && /bin/mv ${db_data_dir}{,$(date +%Y%m%d%H)}
  90. sed -i 's@^dbrootpwd=.*@dbrootpwd=@' ./options.conf
  91. sed -i "s@${db_install_dir}/bin:@@" /etc/profile
  92. echo "${CMSG}DB uninstall completed${CEND}"
  93. }
  94. Print_PHP() {
  95. [ -e "${php_install_dir}" ] && echo "${php_install_dir}"
  96. [ -e "/etc/init.d/php-fpm" ] && echo "/etc/init.d/php-fpm"
  97. [ -e "/usr/local/imagemagick" ] && echo "/usr/local/imagemagick"
  98. [ -e "/usr/local/graphicsmagick" ] && echo '/usr/local/graphicsmagick'
  99. }
  100. Uninstall_PHP() {
  101. [ -e "${php_install_dir}/bin/phpize" -a -e "${php_install_dir}/etc/php-fpm.conf" ] && { service php-fpm stop > /dev/null 2>&1; rm -rf ${php_install_dir} /etc/init.d/php-fpm; }
  102. [ -e "${php_install_dir}/bin/phpize" -a ! -e "${php_install_dir}/etc/php-fpm.conf" ] && rm -rf ${php_install_dir}
  103. [ -e "/usr/local/imagemagick" ] && rm -rf /usr/local/imagemagick
  104. [ -e "/usr/local/graphicsmagick" ] && rm -rf /usr/local/graphicsmagick
  105. sed -i "s@${php_install_dir}/bin:@@" /etc/profile
  106. echo "${CMSG}PHP uninstall completed${CEND}"
  107. }
  108. Print_HHVM() {
  109. [ -e "/usr/bin/hhvm" ] && echo "/usr/bin/hhvm"
  110. [ -e "/etc/hhvm" ] && echo "/etc/hhvm"
  111. [ -e "/var/log/hhvm" ] && echo "/var/log/hhvm"
  112. [ -e "/etc/supervisord.conf" ] && echo "/etc/supervisord.conf"
  113. [ -e "/etc/init.d/supervisord" ] && echo "/etc/init.d/supervisord"
  114. }
  115. Uninstall_HHVM() {
  116. [ -e "/etc/init.d/supervisord" ] && { service supervisord stop > /dev/null 2>&1; rm -rf /etc/supervisord.conf /etc/init.d/supervisord; }
  117. [ -e "/usr/bin/hhvm" ] && { rpm -e hhvm; rm -rf /etc/hhvm /var/log/hhvm /usr/bin/hhvm; }
  118. echo "${CMSG}HHVM uninstall completed${CEND}"
  119. }
  120. Print_PureFtpd() {
  121. [ -e "$pureftpd_install_dir" ] && echo "$pureftpd_install_dir"
  122. [ -e "/etc/init.d/pureftpd" ] && echo "/etc/init.d/pureftpd"
  123. }
  124. Uninstall_PureFtpd() {
  125. [ -e "$pureftpd_install_dir" ] && { service pureftpd stop > /dev/null 2>&1; rm -rf $pureftpd_install_dir /etc/init.d/pureftpd; }
  126. echo "${CMSG}Pureftpd uninstall completed${CEND}"
  127. }
  128. Print_Redis() {
  129. [ -e "$redis_install_dir" ] && echo "$redis_install_dir"
  130. [ -e "/etc/init.d/redis-server" ] && echo "/etc/init.d/redis-server"
  131. }
  132. Uninstall_Redis() {
  133. [ -e "$redis_install_dir" ] && { service redis-server stop > /dev/null 2>&1; rm -rf $redis_install_dir /etc/init.d/redis-server /usr/local/bin/redis-*; }
  134. [ -e "${php_install_dir}/etc/php.d/ext-redis.ini" ] && rm -rf ${php_install_dir}/etc/php.d/ext-redis.ini
  135. echo "${CMSG}Redis uninstall completed${CEND}"
  136. }
  137. Print_Memcached() {
  138. [ -e "${memcached_install_dir}" ] && echo "${memcached_install_dir}"
  139. [ -e "/etc/init.d/memcached" ] && echo "/etc/init.d/memcached"
  140. [ -e "/usr/bin/memcached" ] && echo "/usr/bin/memcached"
  141. }
  142. Uninstall_Memcached() {
  143. [ -e "${memcached_install_dir}" ] && { service memcached stop > /dev/null 2>&1; rm -rf ${memcached_install_dir} /etc/init.d/memcached /usr/bin/memcached; }
  144. [ -e "${php_install_dir}/etc/php.d/ext-memcache.ini" ] && rm -rf ${php_install_dir}/etc/php.d/ext-memcache.ini
  145. [ -e "${php_install_dir}/etc/php.d/ext-memcached.ini" ] && rm -rf ${php_install_dir}/etc/php.d/ext-memcached.ini
  146. echo "${CMSG}Memcached uninstall completed${CEND}"
  147. }
  148. Print_curlopenssl() {
  149. [ -e "/usr/local/bin/curl" ] && echo "/usr/local/bin/curl"
  150. [ -d "${openssl_install_dir}" ] && echo "${openssl_install_dir}"
  151. }
  152. Uninstall_curlopenssl() {
  153. [ -e "/usr/local/bin/curl" ] && rm -rf /usr/local/lib/libcurl* /usr/local/bin/curl
  154. [ -d "${openssl_install_dir}" ] && { rm -rf ${openssl_install_dir} /etc/ld.so.conf.d/openssl.conf; ldconfig; }
  155. }
  156. Menu(){
  157. while :; do
  158. printf "
  159. What Are You Doing?
  160. \t${CMSG}0${CEND}. Uninstall All
  161. \t${CMSG}1${CEND}. Uninstall Nginx/Tengine/Apache/Tomcat
  162. \t${CMSG}2${CEND}. Uninstall MySQL/MariaDB/Percona/AliSQL
  163. \t${CMSG}3${CEND}. Uninstall PHP
  164. \t${CMSG}4${CEND}. Uninstall HHVM
  165. \t${CMSG}5${CEND}. Uninstall PureFtpd
  166. \t${CMSG}6${CEND}. Uninstall Redis
  167. \t${CMSG}7${CEND}. Uninstall Memcached
  168. \t${CMSG}q${CEND}. Exit
  169. "
  170. echo
  171. read -p "Please input the correct option: " Number
  172. if [[ ! $Number =~ ^[0-7,q]$ ]]; then
  173. echo "${CWARNING}input error! Please only input 0,1,2,3,4,5,6,7 and q${CEND}"
  174. else
  175. case "$Number" in
  176. 0)
  177. Print_Warn
  178. Print_web
  179. Print_DB
  180. Print_PHP
  181. Print_HHVM
  182. Print_PureFtpd
  183. Print_Redis
  184. Print_Memcached
  185. Print_curlopenssl
  186. Uninstall_status
  187. if [ "${uninstall_yn}" == 'y' ]; then
  188. Uninstall_Web
  189. Uninstall_DB
  190. Uninstall_PHP
  191. Uninstall_HHVM
  192. Uninstall_PureFtpd
  193. Uninstall_Redis
  194. Uninstall_Memcached
  195. Uninstall_curlopenssl
  196. else
  197. exit
  198. fi
  199. ;;
  200. 1)
  201. Print_Warn
  202. Print_web
  203. Uninstall_status
  204. [ "${uninstall_yn}" == 'y' ] && Uninstall_Web || exit
  205. ;;
  206. 2)
  207. Print_Warn
  208. Print_DB
  209. Uninstall_status
  210. [ "${uninstall_yn}" == 'y' ] && Uninstall_DB || exit
  211. ;;
  212. 3)
  213. Print_PHP
  214. Uninstall_status
  215. [ "${uninstall_yn}" == 'y' ] && Uninstall_PHP || exit
  216. ;;
  217. 4)
  218. Print_HHVM
  219. Uninstall_status
  220. [ "${uninstall_yn}" == 'y' ] && Uninstall_HHVM || exit
  221. ;;
  222. 5)
  223. Print_PureFtpd
  224. Uninstall_status
  225. [ "${uninstall_yn}" == 'y' ] && Uninstall_PureFtpd || exit
  226. ;;
  227. 6)
  228. Print_Redis
  229. Uninstall_status
  230. [ "${uninstall_yn}" == 'y' ] && Uninstall_Redis || exit
  231. ;;
  232. 7)
  233. Print_Memcached
  234. Uninstall_status
  235. [ "${uninstall_yn}" == 'y' ] && Uninstall_Memcached || exit
  236. ;;
  237. q)
  238. exit
  239. ;;
  240. esac
  241. fi
  242. done
  243. }
  244. if [ $# == 0 ]; then
  245. Menu
  246. elif [ $# == 1 ]; then
  247. case $1 in
  248. all)
  249. Print_Warn
  250. Print_web
  251. Print_DB
  252. Print_PHP
  253. Print_HHVM
  254. Print_PureFtpd
  255. Print_Redis
  256. Print_Memcached
  257. Print_curlopenssl
  258. Uninstall_status
  259. if [ "${uninstall_yn}" == 'y' ]; then
  260. Uninstall_Web
  261. Uninstall_DB
  262. Uninstall_PHP
  263. Uninstall_HHVM
  264. Uninstall_PureFtpd
  265. Uninstall_Redis
  266. Uninstall_Memcached
  267. Uninstall_curlopenssl
  268. else
  269. exit
  270. fi
  271. ;;
  272. web)
  273. Print_Warn
  274. Print_web
  275. Uninstall_status
  276. [ "${uninstall_yn}" == 'y' ] && Uninstall_Web || exit
  277. ;;
  278. db)
  279. Print_Warn
  280. Print_DB
  281. Uninstall_status
  282. [ "${uninstall_yn}" == 'y' ] && Uninstall_DB || exit
  283. ;;
  284. php)
  285. Print_PHP
  286. Uninstall_status
  287. [ "${uninstall_yn}" == 'y' ] && Uninstall_PHP || exit
  288. ;;
  289. hhvm)
  290. Print_HHVM
  291. Uninstall_status
  292. [ "${uninstall_yn}" == 'y' ] && Uninstall_HHVM || exit
  293. ;;
  294. pureftpd)
  295. Print_PureFtpd
  296. Uninstall_status
  297. [ "${uninstall_yn}" == 'y' ] && Uninstall_PureFtpd || exit
  298. ;;
  299. redis)
  300. Print_Redis
  301. Uninstall_status
  302. [ "${uninstall_yn}" == 'y' ] && Uninstall_Redis || exit
  303. ;;
  304. memcached)
  305. Print_Memcached
  306. Uninstall_status
  307. [ "${uninstall_yn}" == 'y' ] && Uninstall_Memcached || exit
  308. ;;
  309. *)
  310. Usage
  311. ;;
  312. esac
  313. else
  314. Usage
  315. fi