一键脚本:宝塔LNMP环境一键部署并用TG通知消息

接触宝塔面板久了,总会好奇的问,为啥安装过程有终端和界面操作两部分?有没有在终端直接部署完成的呢?找了下,还真没有,目前已经做好的LNMP环境的,都是Docker版宝塔面板。因此,借鉴了Docker构建的过程后,我制作了如下脚本。可以在终端一键部署LNMP环境的宝塔面板,部署完毕,还可以在TG上通知你。已实测多次,暂无bug,如有问题,可以在后面留言评论。

项目地址:https://github.com/Baiyuetribe/baiyue_onekey

0.宝塔LNMP一键部署脚本

  1. bash <(curl -L -s https://raw.githubusercontent.com/Baiyuetribe/baiyue_onekey/master/btlnmp.sh)

具体环境:nginx1.17+mysql mariadb_10.3+php7.3+phpadmin4.9

系统要求:centos7.x

1.效果图(终端截图)

一键脚本:宝塔LNMP环境一键部署并用TG通知消息

2.效果图(TG截图)

一键脚本:宝塔LNMP环境一键部署并用TG通知消息

3.源码贴图

源码主要借鉴宝塔官方安装脚本和Docker版的安装脚本,外加一部分TG通用发消息接口。

  1. #!/bin/bash
  2. export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  3. #===================================================================#
  4. # System Required: CentOS 7 #
  5. # Author: Azure <2894049053@qq.com> TG:@Latte_Coffe #
  6. # github: @baiyutribe #
  7. # Blog: 佰阅部落 https://baiyue.one #
  8. #===================================================================#
  9. #///宝塔环境终端部署mysql mariadb_10.3+php7.3+nginx1.19+phpadmin4.9
  10. #
  11. #一键脚本
  12. #check root
  13. [ $(id -u) != "0" ] && { echo "错误: 您必须以root用户运行此脚本"; exit 1; }
  14. rm -rf all
  15. rm -rf $0
  16. init(){
  17. echo "懒人部署宝塔环境:一般耗时大约十几分钟"
  18. echo "开始安装宝塔命令"
  19. a=$(date "+%s")
  20. yum install -y wget &>/dev/null
  21. #脚本来源于宝塔官网
  22. wget -O install.sh http://download.bt.cn/install/install_6.0.sh &>/dev/null
  23. echo y | bash install.sh &>/dev/null
  24. b=$(date "+%s")
  25. echo "宝塔面板已完成安装 耗时:$(($b-$a))s"
  26. }
  27. init_env(){
  28. echo "开始安装NGINX1.17"
  29. bash /www/server/panel/install/install_soft.sh 1 install nginx 1.17 &>/dev/null
  30. c=$(date "+%s")
  31. echo "nginx安装完成,耗时:$(($c-$b))s"
  32. echo "开始安装php7.3"
  33. bash /www/server/panel/install/install_soft.sh 1 install php 7.3 &>/dev/null || echo 'Ignore Error' &>/dev/null
  34. d=$(date "+%s")
  35. echo "php安装完成,耗时:$(($d-$c))s"
  36. echo "开始安装mysql mariadb_10.3"
  37. bash /www/server/panel/install/install_soft.sh 1 install mysql mariadb_10.3 &>/dev/null
  38. e=$(date "+%s")
  39. echo "mysql安装完成,耗时:$(($e-$d))s"
  40. echo "开始安装phpadmin4.9"
  41. bash /www/server/panel/install/install_soft.sh 1 install phpmyadmin 4.9 &>/dev/null || echo 'Ignore Error' &>/dev/null
  42. f=$(date "+%s")
  43. echo "phpadmin安装完成,耗时:$(($f-$e))s"
  44. echo "所有软件已安装完毕"
  45. #添加软件到首页
  46. echo '["linuxsys", "webssh", "nginx", "php-7.3", "mysql", "phpmyadmin"]' > /www/server/panel/config/index.json
  47. echo "正在重启所有服务器组件"
  48. for file in `ls /etc/init.d`
  49. do if [ -x /etc/init.d/${file} ]; then
  50. /etc/init.d/$file restart
  51. fi done
  52. g=$(date "+%s")
  53. echo "重启各种服务组件完毕,耗时:$(($g-$f))s"
  54. }
  55. noticeTG(){
  56. TOKEN=XXXXX:XXXXXXXXXXXXXXXXXXX #TG机器人API—Token口令
  57. chat_ID=XXXXXXX #推送消息的ID(可以是个人、也可以是Group或Chanel)
  58. BtPanelURL=`echo 14 | bt |grep http`
  59. username=`echo 14 | bt |grep username`
  60. password=`echo 14 | bt |grep password`
  61. message_text="Boss,您的服务器搭建完毕了,请检阅${hour}:${min}:${sec}
  62. $BtPanelURL
  63. $username
  64. $password"
  65. #echo "$message_text"
  66. curl -s -X POST https://api.telegram.org/bot${TOKEN}/sendMessage -d chat_id=${chat_ID} -d text="${message_text}" > /dev/null
  67. }
  68. init
  69. init_env
  70. totaltime=$(($g-$a))
  71. hour=$(( $totaltime/3600 ))
  72. min=$(( ($totaltime-${hour}*3600)/60 ))
  73. sec=$(( $totaltime-${hour}*3600-${min}*60 ))
  74. echo ${hour}:${min}:${sec}
  75. noticeTG
  76. clear
  77. echo "=============安装概览================="
  78. echo "BT面板:$(($b-$a))s"
  79. echo "nginx:$(($c-$b))s"
  80. echo "php:$(($d-$c))s"
  81. echo "mysql:$(($e-$d))s"
  82. echo "phpadmin:$(($f-$e))s"
  83. echo "Total总耗时:${hour}时:${min}分:${sec}秒"
  84. echo "====================================="
  85. #显示宝塔面板信息
  86. bt 14

4.评语

该脚本可以在终端静默安装好基于宝塔面板的LNMP环境,一切结束后还可以及时通知到你的TG上,非常适合各种一键部署脚本搭配使用。也适合各类频繁搭建宝塔面板的人。值得收藏。

 原文:https://baiyue.one/archives/1511.html

邀请讨论 换一换
暂无数据
0 人关注